分布式服務之服務注冊與發現組件


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、上手:極易,中文文檔,案例,社區活躍


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM