Nacos和Eureka的区别
联系
Nacos和Eureka整体结构类似
: 都支持服务注册, 服务拉取, 采用心跳方式对服务提供者做健康监测的功能
区别
Nacos支持服务端主动检测服务提供者状态: 临时实例采用心跳模式,非临时实例采用主动检测模式但对服务器压力比较大(不推荐)
心跳模式
: 服务提供者会每隔一段时间(默认30秒)向Eureka/Nacos服务端发送心跳请求用来报告自己的健康状态主动检测模式
: Nacos服务端支持主动检测服务提供者判断是否宕机
Nacos支持服务列表变更的消息推送模式
可以让缓存的服务列表更新更及时
- Nacos集群默认采用AP方式, 当集群中存在非临时实例时采用CP模式, 而Eureka一直采用AP方式
服务注册到Nacos时,可以通过在配置文件添加spring.cloud.nacos.discovery.ephemeral
配置选择将服务实例注册为临时或非临时实例
临时实例(默认的类型)
: 采用心跳检测判断是否宕机,如果该实例宕机超过一定时间就会从服务列表剔除非临时实例(永久实例)
: Nacos主动询问判断是否宕机,即使该实例宕机也不会从服务列表剔除,只会把其标记为不健康状态
# 在oreder-service模块的applicaition.yml配置文件中将oreder-service服务注册为永久实例
spring:cloud:nacos:discovery:ephemeral: false # 设置为非临时实例(永久实例)