Spring Cloud:使用Eureka叢集搭建高可用服務註冊中心
這一篇主要介紹一下如何搭建一個高可用的 Eureka 叢集。
1. 分散式和叢集有啥區別?
可能有很多人對分散式和叢集這兩個概念有點混淆。我先用通俗易懂的話給大家解釋下:
分散式:一個業務分拆多個子業務,部署在不同的伺服器上
叢集:同一個業務,分別部署在不同的伺服器上
所以分散式的每一個節點,完成的是不同的業務,一個節點掛了,那麼這個業務功能就無法訪問了,甚至可能會影響到其他業務。而叢集是一個比較有組織的架構,正因為有組織性,一個服務節點掛了,其他服務節點可以頂上來,從而保證了服務的健壯性。
所以說,叢集可以理解為:你中有我,我中有你,手拉手肩並肩,一起保證服務的健壯性。
2. Eureka叢集邏輯
在搭建 Eureka 叢集之前,先來回顧一下前面搭建的單個 Eureka 服務,看下 yml 配置檔案:
server:
port: 7001
eureka:
instance:
#eureka服務端的例項名稱
hostname: eureka01
client:
# false表示不向註冊中心註冊自己
register-with-eureka: false
# false表示自己端就是註冊中心,我的職責就是維護服務例項,並不需要去檢索服務
fetch-registry: false
service-url:
#設定與Eureka Server互動的地址查詢服務和註冊服務都需要依賴這個地址(單機)。
defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
這是一個 Eureka 服務,名稱是 eureka7001, 註冊中心是它自己的。那麼我們如何去搭建一個 Eureka 叢集呢?假設現在有三個 Eureka 服務:eureka7001、eureka7002 和 eureka7003。
為了體現出叢集的你中有我,我中有你,不難想象,eureka7001 中應該掛上 eureka7002 和 eureka7003;eureka7002 中應該掛上 eureka7001 和 eureka7003;eureka7003 中應該掛上 eureka7001 和 eureka7002。如下圖所示:
這樣就搭建好了一個 Eureka 叢集了,那麼我們如何去實現呢?接下來就落實到具體實現方式。
3. Eureka7001的改造
由上面的分析可知,Eureka7001 需要掛上 Eureka7002 和 Eureka7003,所以在 Eureka7001 的配置檔案中需要重新配置一下 defaultZone,如下:
server:
port: 7001
eureka:
instance:
#eureka服務端的例項名稱
hostname: eureka01
client:
# false表示不向註冊中心註冊自己
register-with-eureka: false
# false表示自己端就是註冊中心,我的職責就是維護服務例項,並不需要去檢索服務
fetch-registry: false
service-url:
defaultZone: http://eureka02.com:7002/eureka/,
OK,defaultZone 配置好了 eureka7002 和 eureka 7003。
4. 搭建Eureka7002
以同樣的方式,複製一份 Eureka7001 的工程,修改其配置檔案:
server:
port: 7002
eureka:
instance:
#eureka服務端的例項名稱
hostname: eureka02
client:
# false表示不向註冊中心註冊自己
register-with-eureka: false
# false表示自己端就是註冊中心,我的職責就是維護服務例項,並不需要去檢索服務
fetch-registry: false
service-url:
defaultZone: http://eureka01.com:7001/eureka/,
可以看出,在 eureka7002 中,把 eureka7001 和 eureka7003 掛進來。
5. 搭建Eureka7003
以相同的方式,把 eureka7003 也搭建好。
server:
port: 7003
eureka:
instance:
#eureka服務端的例項名稱
hostname: eureka03
client:
# false表示不向註冊中心註冊自己
register-with-eureka: false
# false表示自己端就是註冊中心,我的職責就是維護服務例項,並不需要去檢索服務
fetch-registry: false
service-url:
defaultZone: http://eureka01.com:7001/eureka/,
ok,現在三個 eureka 註冊中心都搭建好了,最後別忘了在本地 hosts 檔案中將 eureka7001、eureka7002 和 eureka7003 對映到 127.0.0.1。
6. 修改訂單服務
我們首先來回憶下,之前的訂單服務提供方的配置檔案是怎麼寫的:
# 客戶端註冊進eureka服務列表裡
eureka:
client:
service-url:
defaultZone: http://eureka01:7001/eureka/
instance:
instance-id: 書籍訂單服務-8001 # 人性化顯示出服務的資訊
prefer-ip-address: true # 訪問路徑可顯示ip地址
是將訂單服務註冊到 eureka7001 中,因為之前就這一個 eureka 註冊中心,那麼現在有三個了,我們需要修改下配置,將訂單服務註冊到三個 eureka 中。
# 客戶端註冊進eureka服務列表裡
eureka:
client:
service-url:
defaultZone: http://eureka01:7001/eureka/,http://eureka02:7002/eureka/,http://eureka03:7003/eureka/
instance:
instance-id: 書籍訂單服務-8001 # 人性化顯示出服務的資訊
prefer-ip-address: true # 訪問路徑可顯示ip地址
7. 測試效果
OK,所有搭建步驟都完成了,接下來分別啟動一下 eureka7001、eureka7002 和 eureka7003,再啟動下訂單提供服務。然後我們可以分別訪問下三個 eureka 註冊中心,看一下結果。我以訪問 eureka7001 為例,可以看到該服務中心掛著 eureka7002 和 eureka7003,而且訂單服務也成功註冊到該註冊中心。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31558358/viewspace-2375380/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Spring Cloud Eureka 實現高可用服務發現註冊中心SpringCloud
- Spring Cloud 系列(二)Eureka 高可用註冊中心SpringCloud
- Spring Cloud Eureka 註冊中心叢集搭建,Greenwich 最新版!SpringCloud
- 服務治理->搭建服務註冊中心: Spring Cloud EurSpringCloud
- Spring Cloud— 五、註冊中心EurekaSpringCloud
- Spring Cloud(九)高可用的分散式配置中心 Spring Cloud Config 整合 Eureka 服務SpringCloud分散式
- 服務註冊中心之Eureka使用
- Spring Cloud Alibaba 使用Nacos作為服務註冊中心SpringCloud
- Spring Cloud 實戰一:服務註冊中心SpringCloud
- Spring Cloud Alibaba Nacos搭建服務註冊發現和配置中心SpringCloud
- Spring Cloud 系列(一)Eureka 服務註冊與發現SpringCloud
- Spring Cloud Eureka 實現服務註冊與發現SpringCloud
- (13) SpringCloud-使用Eureka叢集搭建實現高可用SpringGCCloud
- (15) SpringCloud-使用Eureka叢集搭建實現高可用SpringGCCloud
- Spring Cloud 微服務實戰——nacos 服務註冊中心搭建(附原始碼)SpringCloud微服務原始碼
- SpringCloud實踐(三) 高可用的Eureka註冊中心SpringGCCloud
- Spring Cloud 入門教程 – Eureka服務註冊與發現SpringCloud
- Spring Cloud Eureka原理分析(一):註冊過程-服務端SpringCloud服務端
- Spring Cloud 入門教程 - Eureka服務註冊與發現SpringCloud
- 普通springcloud eureka 和 spring cloud Alibaba nacos 註冊中心SpringGCCloud
- Eureka高可用叢集服務端和客戶端配置服務端客戶端
- SpringCloud學習系列之一 ----- 搭建一個高可用的註冊中心(Eureka)SpringGCCloud
- spring cloud構建網際網路分散式微服務雲平臺-高可用的服務註冊中心SpringCloud分散式微服務
- Eureka服務註冊不可用問題
- Spring Cloud實戰系列(一) - 服務註冊與發現EurekaSpringCloud
- WEB叢集- 高可用服務Web
- 服務註冊-Eureka
- Spring Cloud Eureka原理分析(三):註冊資訊讀取(服務端)SpringCloud服務端
- 整合spring cloud雲架構 --註冊中心搭建SpringCloud架構
- 介紹如何在Spring Cloud中使用Zookeeper作為服務註冊中心SpringCloud
- [SpringCloud教程]3. Eureka服務註冊中心整合SpringGCCloud
- Java Spring Cloud 與響應式微服務(一)服務註冊中心JavaSpringCloud微服務
- Spring Cloud Alibaba---服務註冊、發現、管理中心NacosSpringCloud
- 使用Kubeadm搭建高可用Kubernetes叢集
- 簡單使用spring cloud 服務註冊做一個請求轉發中心SpringCloud
- Spring Cloud 升級之路 - 2020.0.x - 4. 使用 Eureka 作為註冊中心SpringCloud
- Eureka註冊中心
- 微服務之Eureka(二)服務中心互相註冊-Ribbon的結合使用微服務