参考文章
1.CSDN : 详解Nacos和Eureka的区别-CSDN博客
2.知乎:《跟二师兄学Nacos》02篇 Nacos的临时与持久化实例,傻傻分不清? - 知乎 (zhihu.com)
1.连接方式
- nacos使用的是netty(一个基于Java的高性能网络编程框架)和实例的服务直接进行连接,属于长连接
- eureka是自身定时发送请求和实例的服务进行联系,属于短连接
2.操作实例方式
nacos:提供了nacos console可视化控制话界面,可以对实例列表进行监听,对实例进行上下线,权重的配置,并且config server提供了对服务实例提供配置中心,且可以对配置进行CRUD,版本管理
eureka:仅提供了实例列表,实例的状态,错误信息,相比于nacos过于简单
3.针对异常的实例的检测和剔除
nacos:
检测:对临时实例采用心跳机制(实例服务主动报告自身状态是否正常) , 对永久实例采用主动发送请求询问状态的机制
剔除:
eureka:
检测: 对所有实例采用心跳机制
剔除
4.对实例的保护方式
nacos:
当服务有100个 只有2个是健康状态 其他98个为不健康状态 那么这个比例就超过了阈值 此时就会触发保护机制
那么接下来nacos将每次返回所有服务列表 而不关心他们的健康状态 (触发保护机制之前是只返回健康的服务列表) 这么做 是为了保护剩余的2个健康的服务 避免所有请求打垮它们 最终这样做会导致一些请求失败 损失一些流量 但是整体的服务仍然是可用的
eureka:
当在短时间内,统计续约失败的比例,如果达到一定阈值 此时就会触发保护机制 ...
(这里处理就和nacos一样了)
5.对CAP理论的践行
nacos:
对于在它这里注册的实例的集群默认采取ap模式 优先保证可用性 而如果集群中有1个是非临时实例 那么采用cp模式 优先保证数据一致性 比如order服务有2台 然后2台都是临时实例 那么对这个集群就会采取ap模式 反之如果有1个order是非临时实例 那么就采用cp模式
eureka:对于在它这里注册的实例的集群 只有默认ap模式采取 没有其他的