dubbo总结

dubbo是阿里巴巴开发的分布式服务治理框架。dubbo服务治理体系中一般存在以下几种角色:消费者(Consumer)、服务提供者(Provider)、注册中心(Registry)和监控中心(Monitor)。如果Provider在容器中启动则还有一个角色:服务运行容器(Container)。

dubbo应用调用过程如下:

1、Provider启动后通过http连接向 Registry  注册服务。(以zookeper 作为Registry)

tips:provider可以通过发布到web容器启动,并且也jdk工程启动方式。这里推荐使用第二种方式启动。阿里官方说明提到使用jdk启动时provider可以实现shutdown hook(优雅停机),记录provider关闭时的关键信息,而以容器方式启动则不能做到这一点。

2、 Consumer  启动后向Registry订阅服务。

3、 Registry  返回 Provider  地址列表给 Consumer  ,如果有变更, Registry  将基于长连接推送变更数据给 Consumer  。

4、 Consumer  ,从 Provider  地址列表中,基于软负载均衡算法,选一台 Provider  进行调用,如果调用失败,再选另一台调用

5、 Provider  和 Consumer  ,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到 Monitor  。

说明:

1、Provider - Registry、Consumer - Registry、Provider - Consumer 之间均为长连接。Registry 负责维护与查询服务列表并不负责服务的转发。当Provider宕机时Registry可以基于长连接发现并更新服务列表然后基于长连接将新的服务列表推送到Consumer。

2、如果Registry宕机,不影响已运行的提供者和消费者,消费者在本地缓存了提供者列表。

你可能感兴趣的:(dubbo总结)