服务发现Nacos和Eureka的区别


 转载:https://blog.csdn.net/weixin_41692833/article/details/118958117

Nacos和Eureka的区别

1、ACP原则

nacos支持AP(可用性 | 分区容错性) 和 CP(一致性 | 分区容错性)两种,默认AP
eureka只支持 AP (可用性 | 分区容错性)

CAP原则又称CAP定理,指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼。
一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值。(等同于所有节点访问同一份最新的数据副本)
可用性(A):保证每个请求不管成功或者失败都有响应。
分区容忍性(P):系统中任意信息的丢失或失败不会影响系统的继续运作。
CAP原则的精髓就是要么AP,要么CP,要么AC,但是不存在CAP。
如果在某个分布式系统中数据无副本, 那么系统必然满足强一致性条件, 因为只有独一数据,不会出现数据不一致的情况,此时C和P两要素具备,
但是如果系统发生了网络分区状况或者宕机,必然导致某些数据不可以访问,此时可用性条件就不能被满足,即在此情况下获得了CP系统,但是CAP不可同时满足。

 

2、配置中心

nacos有自己的配置中心,提供管理界面
eureka需要配合config实现配置中心,且不提供管理界面

3、连接方式

nacos支持动态刷新,在控制器(controller)上加 @RefreshScope 注解即可,采用Netty连接,是长连接
eureka本身不支持动态刷新,需要配合MQ完成动态刷新,且是短连接,是定时发送

4、应对高并发 

nacos没有使用synchronized和加锁,而是使用copyOnWrite思想
nacos这个更新注册表内存方法里,为了防止读写并发冲突,大量采用了copyOnWrite思想,防止读写并发冲突,
具体做法就是把原内存结构复制一份,操作完后再替换进真正的注册表内存中去。

eureka方式读写并发冲突用的是注册表的多级缓存结构,只读缓存,读写缓存,内存注册表,
各级缓存之间定时同步,缓存都存在EurekaServer中,客户端的感知和及时性不如nacos。

 

 


 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM