dubbo和spring cloud区别

2020-10-14 10:40:20 评论 15,433
摘要

SpringCloud和Dubbo都是当下流行的RPC框架,各自都集成了服务发现和治理组件。SpringCloud用Eureka,Dubbo用Zookeeper。

dubbo和spring cloud区别

一、注册的服务的区别

Dubbo是基于java接口及Hession2序列化的来实现传输的,Provider对外暴露接口,Consumer根据接口的规则调用。也就是Provider向Zookeeper注册的是接口信息,Consumer从Zookeeper发现的是接口的信息,通过接口的name,group,version来匹配调用。Consumer只关注接口是否匹配,而对此接口属于什么应用不关心。当然接口的注册信息里会包含应用的ip,hostname等。

二、Server集群服务信息同步的区别

Dubbo使用Zookeeper做服务发现和治理,Zookeeper是一个分布式协调框架,其有很多很实用的功能,服务发现仅仅是其中的一个。Zookeeper基于著名的CAP理论中的C(一致性),P(分区可用性)实现,它的ZAB(zookeeper atomic broadcast protocol)协议,保证了集群里状态的一致性。Client的每一个事务操作都由Leader广播给所有Follower,当超过半数的Follower都返回执行成功后,才执行事务的ack。对于因网络崩溃或者宕机等问题而执行失败的zookeeper节点,zookeeper会基于zab的崩溃恢复机制来处理,这里不再讲述。每一个操作都需要过半数的zookeeper节点执行成功才确认成功,那么当zookeeper集群过半数节点出现问题时,服务发现功能就不可用。

三、 服务更新机制的区别

Dubbo使用Zookeeper做服务发现和治理,订阅Zookeeper下相应的znode。当节点发生变化,比如有新的元素增加,或者旧的元素移除,Zookeeper会通知所有订阅此节点的Client,将当前的全量数据同步给各Client,Dubbo里根据最新的数据来做相应处理,移除下线的,初始化新增的。每次更新都同步全量数据。

相关文章

AliceABC線上英文補習,適合香港兒童~ 英语问答

AliceABC線上英文補習,適合香港兒童~

AliceABC 簡介 作為一家成立最早的全球化“互聯網+”教育企業之一,AliceABC始終專註於在線外教1對1英文教育,憑借多年的實力累積和過硬的服務質量,目前擁有數萬名全職外教,學員人數達xx,...
i has 还是have 英语问答

i has 还是have

i has 还是have:have和has的用法是靠主语人称来决定的,不是时态。过去完成用had done,现在完成用 have done ,将来完成用will have done...