写点什么

架构训练营第十周作业

用户头像
张锐
关注
发布于: 2020 年 08 月 12 日

根据微服务框架 Dubbo 的架构图,画出 Dubbo 进行一次微服务调用的时序图。

dubbo中三个系统角色:服务调用者、服务提供者、服务注册中心。服务提供者启动时,把自己的服务metadata注册到注册中心中,包括服务名称、参数描述、服务版本、服务端超时时间、权重等。服务调用者启动时,去注册中心找到对应的服务,根据版本,服务名称和参数和路由信息,获取当前可用服务列表。服务列表存储本地,防止注册中心crash后无法感知当前服务提供者列表。

服务调用者在本地执行负载均衡算法(RoundRobin算法、带权重的RoundRobin等),调用者计算得到要调用的server的地址,直连server。dubbo通讯协议有多种,dubbo提供了http、dubbo、thrift、hession等(一般这些通讯协议也包含了序列化协议过程)。

当server不可用时,注册中心感知服务已经下线(比如使用zk的临时节点来做服务发现),注册中心通知client服务列表变更。client更新本地服务列表,并重新执行负载均衡算法算出新的server地址。



用户头像

张锐

关注

还未添加个人签名 2018.08.07 加入

还未添加个人简介

评论

发布
暂无评论
架构训练营第十周作业