架构师训练营第 10 周——练习
根据微服务框架 Dubbo 的架构图,画出 Dubbo 进行一次微服务调用的时序图。
关于微服务架构(中台架构、领域驱动设计、组件设计原则),你有什么样的思考和认识?
1、微服务架构产生的原因
个人能力有限,能够掌握的系统内容有限。因此当系统达到一定规模后,不宜管理。为了解决这个问题,才将大的系统进行拆分,便于人来掌握
单台电脑提供的资源有限,为了便于水平伸缩,将系统进行拆分,方便根据需要部署。例如电商系统,对于用户注册模块的性能要求要远低于购物模块,因此可以考虑将购物模块部署多台服务器,注册模块部署少量服务器(能够保证高可用即可)
2、领域驱动设计
既然有了拆分的需求,那如何拆分便成为需要解决的问题。领域驱动设计理论正好适用于微服务的拆分。
3、微服务的主要模块
网关
服务注册发现
配置中心
熔断限流
实时监控
4、新引入的问题
高可用:以前只需要保证一个程序高可用,现在需要保证各个微服务模块高可用
资源:由于各个微服务模块使用的资源相对较少,可以使用docker来配置
通信:各个微服务模块之间网络通信属于新增开销,需要优化以提升性能
随着微服务模块数量的增加,例如为了保证高可用,一个微服务至少部署2次,配置、管理和监控已经超出人的能力范畴,因此需要引入自动化的配置管理和实时监控工具
由于微服务模块数量众多,即可能发生故障的点很多,因此需要提供熔断措施,防止因为单个模块的故障,影响整体服务。
评论