- 微服務從小白到專家:Spring Cloud和Kubernetes實戰
- 姚秋辰 張昕 卿睿
- 906字
- 2021-10-29 12:24:36
5.2 Spring Cloud中常用的注冊中心
1. Eureka
Eureka是Netflix公司開發的一款基于HTTP的服務治理框架,它是目前Spring Cloud體系中資歷最老且應用最為廣泛的服務治理方案。Spring Cloud中的其他核心組件(比如Gateway、OpenFeign、Zuul等)都提供了對Eureka的支持,可以通過Eureka搭建的注冊中心來獲取服務信息。
Eureka和大部分注冊中心一樣,它的基礎架構包含三個角色:注冊中心、服務提供者和服務消費者。Eureka和服務提供者及服務消費者之間的關系如圖5-3所示。

圖5-3 Eureka和服務提供者與服務消費者之間的關系
下面具體介紹一下Eureka Server、Service Provider和Service Consumer這三個角色的功能。
(1)Eureka Server
支持高可用架構的注冊中心,它提供了服務注冊、服務發現、服務續約和服務剔除等服務治理領域的基本功能。
(2)Service Provider
服務提供者,在應用啟動階段向Eureka Server發起注冊請求,并在運行階段通過心跳包持續向Eureka Server發送服務續約請求,使當前服務提供者在注冊中心中被標記為“可用”狀態。在服務關停下線時主動向注冊中心發起下線指令。
(3)Service Consumer
服務調用者(也被稱為服務消費者),在應用運行階段,從Eureka Server里定時拉取已注冊的服務列表,通過負載均衡策略發起遠程服務調用。
2. Consul
Consul是HashiCorp公司開發的一款開源工具,它的底層是使用Go語言開發的,得益于Go語言在跨平臺方面的優勢,Consul的安裝部署過程非常簡單。此外,Consul還支持開箱即用的多數據中心(由多個注冊中心組成一個數據中心集群,多個數據中心之間可以互相同步數據),可以很方便地搭建一套高可用的架構方案。Consul依賴于Gossip一致性協議傳播信息,這意味著注冊中心節點的添加和刪除并不會影響集群內各節點的消息傳播。
Consul的特性總結如下:
? 支持以DNS和HTTP接口的方式來完成服務注冊和服務發現。
? 支持Healthcheck健康檢查功能,用以監視集群健康情況。
? 同時支持DNS和HTTP接口。
? 采用Key/Value存儲結構。
? 支持開箱即用的多數據中心。
3. Nacos
Nacos是阿里研發的服務治理框架,它不僅可以和Spring Cloud中的組件搭配工作,還可以作為Dubbo生態系統的注冊中心來使用。
Nacos的特性總結如下:
? 支持基于DNS和RPC的服務發現和服務治理。
? 支持動態配置服務,可以作為配置中心為應用提供配置管理功能。
? 支持權重路由,可以實現中間層負載均衡和靈活的路由策略。
? 支持限流、異地多活和流量調度等多種應用場景。
? 支持多種云原生技術和主流的RPC框架,如Kubernetes、Istio、gRPC、Dubbo RPC和Spring Cloud RESTful API。