Dubbo与SpringCloud简单区别:(4.25-5.1)

主要是七个区别:

1.注册服务的不同:
dubbo是基于Java接口和Hession2的序列化来进行传输的,一般搭建在zookeeper服务上的;provider向外暴露的是接口,consumer只需要关注是否能匹配
接口就可以了;
SpringCloud的服务发现是基于Http协议来实现的,Provider对外暴露的是应用信息,比如应用名称,ip地址等等,Consumer关注的是应用名称来进行匹配选择的;

2.Server集群服务信息同步的区别:
Dubbo使用Zookeeper做服务发现和治理,Zookeeper是一个分布式协调框架,其有很多很实用的功能,服务发现仅仅是其中的一个。Zookeeper基于著名的CAP理论中的C(一致性),P(分区可用性)实现,它的ZAB(zookeeper atomic broadcast protocol)协议,保证了集群里状态的一致性。满足CP的条件下,宕机的时候会使用ZAB的极致恢复可用;
SpringCloud使用Eureka做服务发现和治理,它是一个专门用于服务发现和治理的框架,其基于CAP理论中的A(可用性),P(分区可用性)实现。内部数据传输封装到Task内,保证一致性的时候使用特定机制从Task中实现数据同步;

3.服务更新机制的区别
Dubbo使用Zookeeper做服务发现和治理,每次更新都同步全量数据。
Eureka在启动时向Server进行一次全量拉取,获取所有的可用服务信息,之后默认情况下都是进行增量拉取。每次更新仅同步增量数据,也就是更新的数据。

4.服务更新反馈机制的区别
Dubbo订阅Zookeeper下相应的节点,当节点的状态发生改变时,Zookeeper会立即反馈订阅的Client,实时性很高。
Eureka Server在接收到Client的更新操作,仅仅会将更新消息存放入recentlyChangedQueue中,不会主动的反馈其他Client。

5.服务信息回收机制的区别
Dubbo里面的Provider和Consumer中都建立了一个与zookeeper集群交互的长连接,定时维护心跳的,连接下面节点断了,会将当前信息传输到其他节点保持下去;SpringCloud只跟心跳有关,超时断掉之后信息传递下一个Server节点上;

6.节点性质的区别
Dubbo只有Consumer订阅Provider节点,也就是Consumer发现Provider节点信息
Eureka不区分Consumer或者Provider,两者都统称为Client,一个Client内可能同时含有Provider,Consumer,通过服务发现组件获取的是其他所有的Client节点信息,在调用时根据应用名称来筛选节点

7.使用方式的区别
Dubbo使用Zookeeper作为服务发现和治理的组件,所以需要搭建Zookeeper集群作为依赖。
SpringCloud使用Eureka作为服务发现和治理组件,在Spring应用中整合Eureka还是很简单的,引入依赖,加个注解,指定集群Server的serviceUrl,其他的都可以使用默认配置即可,启动应用,Eureka集群就搭建好了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值