Nacos与Eureka的区别

背景和价值

Nacos核心概念:
Nacos的服务实例分为两种类型:
临时实例:如果实例宕机超过一定时间,会从服务列表剔除,默认的类型。

  • 临时实例,可以自定义 深度健康检查码
  • 可以快速自动将其从服务列表中剔除
    非临时实例:如果实例宕机,不会从服务列表剔除,也可以叫永久实例。
  • 非临时实例的核心特点是 “注册后状态稳定,Nacos 不会主动剔除(除非手动操作或实例主动注销)”,这就导致它的实例数量需要你手动控制,比如:

Nacos 支持在同一集群中混合部署不同实例类型的服务 —— 即支付服务作为非临时实例,订单服务作为临时实例,两者可以共存且互不影响。

Nacos与Eureka的区别
1:健康检查。Nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式。
深度健康检查:主动检测模式对于非临时实例能够进行更深入的健康检查。服务端主动检测可以包括对服务的功能完整性、性能指标等多方面的检查。例如,对于一个提供数据查询服务的非临时实例,服务端可以主动发送查询请求来检查其返回数据的准确性和及时性,同时还可以监测其响应时间等性能指标。这种深度检查有助于确保核心服务的高质量运行。
2:Nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式;Eureka采用AP方式
Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性)

分区容错性(Partition Tolerance)是分布式系统的一个重要特性。在分布式系统中,由于网络故障、节点故障等原因,系统可能会被分割成多个分区(Partition),这些分区内部可以正常通信,但分区之间无法通信或者通信受到严重限制。分区容错性就是指系统在这种分区情况下,依然能够继续提供服务或者保持一定的功能完整性的能力。

深度健康检查 策略

核心链路接口失败率
数据库 (MySQL/PostgreSQL)、缓存 (Redis)、消息队列 (Kafka/RocketMQ) 等。在接口中调用这些依赖,但不进行耗时操作,仅测试连接和基础读写。
线程池饱和度
内存与 GC 状态 :检查堆内存使用率和 Full GC 频率。

参考资料

https://cloud.tencent.com/developer/article/2000199

posted @ 2025-03-11 15:34  向着朝阳  阅读(124)  评论(0)    收藏  举报