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 # 設置為非臨時實例(永久實例)