架构师训练营 - 作业 - 第十周
根据微服务框架 Dubbo 的架构图,画出 Dubbo 进行一次微服务调用的时序图。
Dubbo 微服务调用过程:
服务提供者程序启动服务,向服务注册中心注册它(服务提供者)提供的服务。
服务消费者程序通过服务接口调用,访问接口访问代理,然后传入到服务框架客户端。
服务框架客户端查找服务提供者列表,如果服务提供者列表中没有,那么框架就会到服务注册中心去查找,注册中心返回服务提供者服务器列表。
服务框架客户端根据负载均衡策略,从服务提供者列表中根据算法选择一台。
服务框架客户端与远程服务提供器建立远程通信。
服务提供者查找所调用的服务,处理、计算结果并返回。
时序图:
关于微服务架构(中台架构、领域驱动设计、组件设计原则), 你有什么样的思考和认知?
微服务:传统的单体应用存在很多问题,把单体应用功能做横向或纵向的切分,部署为可独立运行的微服务,使得业务复用、开发边界清晰、分布式集群性能提升。但同时微服务也会引入新的问题,调用关系复杂、服务间通信、服务治理、服务维护和发布等也越来越棘手,docker 和 k8s 应运而生,解决了大部分问题。
中台架构:微服务的进化,确切的说它应该是一种思想方法。其思想是提炼各个子系统微服务的公共服务、技术中间件,形成一个业务中台。使得新业务依赖于中台的服务、技术组件进行快速开发、定制,实现业务重用及数据共享。中台架构与微服务架构不同,微服务致力于将业务系统进行拆分,而中台架构则致力于将服务聚合。
领域驱动设计:是一种基于领域(业务)的软件设计方法,DDD 提出了领域模型的概念,统一了分析和设计编程,使得软件能够更灵活快速地跟随需求的变化。
DDD 更强调的是“业务域”,强调对业务规则、业务边界、职责、业务术语的梳理和理解(DDD 战略设计,领域建模),然后再进行技术框架选型与落地方案验证、任务分解与持续重构(DDD 战术设计,样例代码)。
组件设计原则:从技术上指导软件开发和设计,提高软件质量,它更侧重于“技术域”。
主要核心理念为“高内聚,低耦合”,"SOLID", 对扩展开放,对修改关闭,为软件组件的设计与实现提供指导方向。
参考链接
https://xie.infoq.cn/article/798fd13278d0632300b012a98
https://xie.infoq.cn/article/a1bd166cf63f45affda7a4ba7
https://xie.infoq.cn/article/4a9f358df51112891de214fd2
https://xie.infoq.cn/article/1794d29e2a912089d986e13d7
https://xie.infoq.cn/article/5d26c61e669424d970a4a0cf1
https://xie.infoq.cn/article/99abf5677b692f2845c9d1a37
https://www.zhihu.com/topic/19826540/hot
评论