服務註冊與發現組件比較

原文地址

Eureka 是 Netflix 開源的一款提供服務註冊和發現的產品,已閉源,提供了完整的服務註冊和發現,springcloud中最核心的組件之一,需要手動配置 Eureka Server 服務器。
服務器端:pom.xml 中引入spring-cloud-starter-netflix-eureka-server,啓動類添加@EnableDiscoveryClient 或@EnableEurekaServer註解,配置文件添加相關配置
客戶端:pom.xml 中引入spring-cloud-starter-netflix-eureka-client,啓動類添加@EnableEurekaClient註解,配置文件添加相關配置;

Consul是一個分佈式高可用的系統,是爲基礎設施提供服務發現和服務配置的工具
服務器端:使用 consul 服務器;
客戶端:pom.xml 中引入spring-cloud-starter-consul-discovery,啓動類添加 @EnableDiscoveryClient註解,配置文件添加相關配置;

Nacos 是 Alibaba 開源的一款專注於動態服務發現,配置和服務管理的組件
服務器端:使用 Nacos 作爲服務註冊中心
客戶端:pom.xml 中引入spring-cloud-starter-alibaba-nacos-discovery,啓動類添加 @EnableDiscoveryClient註解,配置文件添加相關配置;



一、配置中心:
1.eureka 不支持
2.consul 支持 但用起來偏麻煩,不太符合springBoot框架的命名風格,支持動態刷新
3.nacos 支持 用起來簡單,符合springBoot的命名風格,支持動態刷新
二、註冊中心:
1、eureka
1.1、依賴:依賴ZooKeeper
1.2、應用內/外:直接集成到應用中,依賴於應用自身完成服務的註冊與發現,
1.3、ACP原則:遵循AP(可用性+分離容忍)原則,有較強的可用性,服務註冊快,但犧牲了一定的一致性。
1.4、版本迭代:目前已經不進行升級
1.5、集成支持:只支持SpringCloud集成
1.6、訪問協議:HTTP
1.7、雪崩保護:支持雪崩保護
1.8、界面:英文界面,不符合國人習慣
1.9、上手:容易
2、consul
2.1、依賴:不依賴其他組件
2.1、應用內/外:屬於外部應用,侵入性小
2.3、ACP原則:遵循CP原則(一致性+分離容忍) 服務註冊稍慢,由於其一致性導致了在Leader掛掉時重新選舉期間真個consul不可用。
2.4、版本迭代:目前仍然進行版本迭代
2.5、集成支持:支持SpringCloud K8S集成
2.6、訪問協議:HTTP/DNS
2.7、雪崩保護:不支持雪崩保護
2.8、界面:英文界面,不符合國人習慣
2.9、上手:複雜一點
3、nacos
3.1、依賴:不依賴其他組件
3.2、應用內/外:屬於外部應用,侵入性小
3.3、ACP原則:通知遵循CP原則(一致性+分離容忍) 和AP原則(可用性+分離容忍)
3.4、版本迭代:目前仍然進行版本迭代
3.5、集成支持:支持Dubbo 、SpringCloud、K8S集成
3.6、訪問協議:HTTP/動態DNS/UDP
3.7、雪崩保護:支持雪崩保護
3.8、界面:中文界面,符合國人習慣
3.9、上手:極易,中文文檔,案例,社區活躍

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章