数据库:阿里巴巴为什么能够抗住90秒100亿?看完我哭了。( 三 )
NoSql
第十次演变 , 大应用拆分为小应用 , 按照业务板块来划分应用代码 , 使单个应用的职责更清晰 , 相互之间可以做到独立升级迭代 。 这时候应用之间可能会涉及到一些公共配置 , 可以通过分布式配置中心Zookeeper来解决 。 架构瓶颈:不同应用之间存在共用的模块 , 由应用单独管理会导致相同代码存在多份 , 导致公共功能升级时全部应用代码都要跟着升级
第十一次演变 , 复用的功能抽离成微服务 , 如用户管理、订单、支付、鉴权等功能在多个应用中都存在 , 那么可以把这些功能的代码单独抽取出来形成一个单独的服务来管理这样的服务就是所谓的微服务 , 应用和服务之间通过HTTP、TCP或RPC请求等多种方式来访问公共服务 , 每个单独的服务都可以由单独的团队来管理 。 此外 , 可以通过Dubbo、SpringCloud等框架实现服务治理、限流、熔断、降级等功能 , 提高服务的稳定性和可用性 。 架构瓶颈:不同服务的接口访问方式不同 , 应用代码需要适配多种访问方式才能使用服务 , 此外 , 应用访问服务 , 服务之间也可能相互访问 , 调用链将会变得非常复杂 , 逻辑变得混乱 。
微服务拆分
第十二次演进 , 引入企业服务总线ESB屏蔽服务接口的访问差异 , 通过ESB统一进行访问协议转换 , 应用统一通过ESB来访问后端服务 , 服务与服务之间也通过ESB来相互调用 , 以此降低系统的耦合程度 。 这种单个应用拆分为多个应用 , 公共服务单独抽取出来来管理 , 并使用企业消息总线来解除服务之间耦合问题的架构 , 就是所谓的SOA(面向服务)架构 , 这种架构与微服务架构容易混淆 , 因为表现形式十分相似 。 架构瓶颈:业务不断发展 , 应用和服务都会不断变多 , 应用和服务的部署变得复杂 , 同一台服务器上部署多个服务还要解决运行环境冲突的问题此外 , 对于如大促这类需要动态扩缩容的场景 , 需要水平扩展服务的性能 , 就需要在新增的服务上准备运行环境 , 部署服务等 , 运维将变得十分困难
第十三次演进 , 引入容器化技术实现运行环境隔离与动态服务管理目前最流行的容器化技术是Docker , 最流行的容器管理服务是Kubernetes(K8S) , 应用/服务可以打包为Docker镜像 , 通过K8S来动态分发和部署镜像 。 Docker镜像可理解为一个能运行你的应用/服务的最小的操作系统 , 里面放着应用/服务的运行代码 , 运行环境根据实际的需要设置好 。 把整个“操作系统”打包为一个镜像后 , 就可以分发到需要部署相关服务的机器上 , 直接启动Docker镜像就可以把服务起起来 , 使服务的部署和运维变得简单 。
【数据库:阿里巴巴为什么能够抗住90秒100亿?看完我哭了。】第十四次演进 , 以云平台承载系统系统可部署到公有云上 , 利用公有云的海量机器资源 , 解决动态硬件资源的问题在大促的时间段里 , 在云平台中临时申请更多的资源 , 结合Docker和K8S来快速部署服务 , 在大促结束后释放资源 , 真正做到按需付费 , 资源利用率大大提高 , 同时大大降低了运维成本 。 所谓的云平台 , 就是把海量机器资源 , 通过统一的资源管理 , 抽象为一个资源整体在云平台上可按需动态申请硬件资源(如CPU、内存、网络等) , 并且之上提供通用的操作系统 , 提供常用的技术组件(如Hadoop技术栈 , MPP数据库等)供用户使用 , 甚至提供开发好的应用用户不需要关心应用内部使用了什么技术 , 就能够解决需求(如音视频转码服务、邮件服务、个人博客等) 。
云平台系统
至此以上所提到的从单体系统到高并发访问 , 到服务的架构和系统实施的层面都有了各自的解决方案 。
推荐阅读
- 『软件』明知有的副业是骗人的,为什么还是有很多人去做呢?
- 阿里巴巴▲三国志战略版什么来路?为何频频刷屏各大软件?
- 阿里巴巴■公有云竞争格局:阿里云一枝独秀,华为实现弯道超车
- 『阿里巴巴』雷军喜提“100亿”!问题来了,雷军还能超过马云马化腾吗?
- 火星:明明距离地球最近的行星是金星,为什么全世界却都赶着去探测火星?
- 5g手机@5G手机出来许久,为什么大家都不买?这4个原因足以说明!
- 阿里巴巴@阿里巴巴淘小铺到底是不是“天时地利人和”的赚钱机会
- [阿里巴巴]阿里找台积电代工,中芯国际“失败了”?网友:不要忘记华为经历
- 「」9个出人意料的事物,能让你,变成十万个为什么!
- 高通骁龙▲为什么懂手机的人建议选择麒麟820手机,而不是骁龙765G?
