架构训练营第十周作业
根据微服务框架 Dubbo 的架构图,画出 Dubbo 进行一次微服务调用的时序图。
dubbo中三个系统角色:服务调用者、服务提供者、服务注册中心。服务提供者启动时,把自己的服务metadata注册到注册中心中,包括服务名称、参数描述、服务版本、服务端超时时间、权重等。服务调用者启动时,去注册中心找到对应的服务,根据版本,服务名称和参数和路由信息,获取当前可用服务列表。服务列表存储本地,防止注册中心crash后无法感知当前服务提供者列表。
服务调用者在本地执行负载均衡算法(RoundRobin算法、带权重的RoundRobin等),调用者计算得到要调用的server的地址,直连server。dubbo通讯协议有多种,dubbo提供了http、dubbo、thrift、hession等(一般这些通讯协议也包含了序列化协议过程)。
当server不可用时,注册中心感知服务已经下线(比如使用zk的临时节点来做服务发现),注册中心通知client服务列表变更。client更新本地服务列表,并重新执行负载均衡算法算出新的server地址。
评论