Dubbo 进行微服务调用的时序图
Author:Jessie
Date:2020/8/10
根据微服务框架 Dubbo 的架构图,画出 Dubbo 进行一次微服务调用的时序图
Dubbo架构的背景
随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。
而巨无霸应用系统打包构建、代码分支管理、数据库连接、新增业务都是非常纠缠、复杂的工作。
为了降低系统的耦合性,就是根据业务进行拆解。而早期的Web Service 利用WSDL(Web Services Description Language)注册、发布服务,SOAP进行通信,因为其臃肿的注册和发现机制、低效的序列化手段和开销高的HTTP通信手段,不适合大型网站。
利用微服务的架构设计分布式服务架构。
Dubbo架构的设计
Dubbo 是 基于 Java 的RPC 框架。Dubbo 工作分为 4 个角色,分别是服务提供者、服务消费者、注册中心、和监控中心。
节点角色说明
架构需要满足失效转移、负载均衡、高效远程通信、版本管理、应用最少侵入管理等需求。Dubbo分布式服务框架以及SOA治理方案。其功能主要包括:高性能NIO通讯及多协议集成,服务动态寻址与路由,软负载均衡与容错,依赖分析与降级等。
一次Dubbo微服务调用的时序
1. 服务容器负责启动,加载,运行服务提供者。
2. 服务提供者在启动时,向注册中心注册自己提供的服务。
3. 服务消费者在启动时,向注册中心订阅自己所需的服务。
4. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
5. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
6. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
参考文献
http://dubbo.apache.org/zh-cn/docs/user/preface/background.html
版权声明: 本文为 InfoQ 作者【架构5班杨娟Jessie】的原创文章。
原文链接:【http://xie.infoq.cn/article/2e1bb67f318d9edbcd2417e15】。文章转载请联系作者。
评论