Nacos注册中心原理以及Eureka和Nacos的区别与联系
nacos注册中心:
服务提供者在注册中心注册服务信息
服务消费者从注册中心定时拉取服务。【服务列表缓存,每隔30拉取更新列表】
消费者远程调用服务提供者。
服务注册到Nacos时,可以选择注册为临时或非临时实例,默认是临时实例采用心跳检测,每隔30s向注册中心发送心跳检测,当nacos发现30未收到心跳,则主动在服务列表中剔除该服务信息。非临时实例由nacos主动发请求询问,若没有响应,nacos会等待服务重新上线或手动停止该服务。
通过下面的配置来设置非临时实例:
【默认是临时实例】:
临时实例宕机时,会从nacos的服务列表中剔除,而非临时实例则不会。
cloud:
nacos:
server-addr: localhost:8848 # nacos服务地址
discovery:
cluster-name: HZ #集群名称
# namespace: 2a7bec46-bae0-4d09-b5b1-858ed2273e51 #dev环境
ephemeral: false # 是否是临时实例
Nacos与eureka的共同点
1、都支持服务注册和服务拉取
2、都支持服务提供者心跳方式做健康检测
Nacos与Eureka的区别
1、Nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式
2、临时实例心跳不正常会被剔除,非临时实例则不会被剔除
3、Nacos支持服务列表变更的消息推送模式,服务列表更新更及时,而Eureka只支持定时拉取
4、Nacos集群默认采用AP[可用性]方式,当集群中存在非临时实例时,采用CP[一致性]模式;Eureka采用AP方式