如何将单机版的Eureka服务改为集群版Eureka服务
Eureka 集群原理
基本原理
上圖是來自eureka的官方架構圖,這是基于集群配置的eureka;
- 處于不同節點的eureka通過Replicate進行數據同步
- Application Service為服務提供者
- Application Client為服務消費者
- Make Remote Call完成一次服務調用
服務啟動后向Eureka注冊,Eureka Server會將注冊信息向其他Eureka Server進行同步,當服務消費者要調用服務提供者,則向服務注冊中心獲取服務提供者地址,然后會將服務提供者地址緩存在本地,下次再調用時,則直接從本地緩存中取,完成一次調用。
當服務注冊中心Eureka Server檢測到服務提供者因為宕機、網絡原因不可用時,則在服務注冊中心將服務置為DOWN狀態,并把當前服務提供者狀態向訂閱者發布,訂閱過的服務消費者更新本地緩存。
Eureka 單機版到集群的改造過程
新建 兩個Eureka模塊項目
新建模塊(springcloudDemo-Eureka-7002和 springcloudDemo-Eureka-7003),至于如何在父項目下新建模塊請參考Eclipse構建Maven分包項目并構建服務端
注: 截圖中對應的Eureka 即三個Eureka服務構成Eureka集群
復制 springcloudDemo-Eureka-7001 中的內容
由于是學習SpringCloud Eureka 所以Eureka服務沒有太多操作,所以將之前的設置的單機版Eureka 內容復制過來
下的內容,分別拷貝到對應的其他Eureka集群成員中
特別注意:請不要為了方便直接拷貝Eclipse中springcloudDemo-Eureka-7001中的內容,直接到其他的項目中,這樣做是會報錯的。。。 所以別偷懶!!!
修改新建的兩個模塊的啟動類名稱
這個也可以不修改,沒有啥太大的影響
修改hosts中的映射
Windows 位置: C:\Windows\System32\drivers\etc
127.0.0.1 eureka7001.com 127.0.0.1 eureka7002.com 127.0.0.1 eureka7003.com修改三個Eureka服務的配置文件
下面針對三個服務的配置文件進行相應的說明:
- springcloudDemo-Eureka-7001
需要和另外兩個服務的路由地址相連接
- springcloudDemo-Eureka-7002
- springcloudDemo-Eureka-7003
服務提供者將配置文件從單機版修改為集群
原理: 服務注冊的時候,從注冊到一臺修改為注冊到多臺
#單機版#defaultZone: http://localhost:7001/eurekadefaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/測試
分別啟動三個Eureka服務,形成Eureka集群,之后在啟動服務提供者
打開瀏覽器分別輸入:
- http://eureka7001.com:7001/
- http://eureka7002.com:7002/
- http://eureka7003.com:7003/
可以查看 服務8001,已經注冊到三臺Eureka集群中,Eureka集群正常啟動。
注: 為什么 http://eureka7003.com:7003/ 界面會報錯,這是因為Eureka 保護機制導致,并不影響。
至此,從上一篇單機版到集群Eureka的改造完成。 至于服務消費者訪問,由于現在只有一個生產者,所以目前不是很明顯,之后會構建服務生產者集群,然后在測試服務消費者,這樣會比較好比較。
總結
以上是生活随笔為你收集整理的如何将单机版的Eureka服务改为集群版Eureka服务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第四范式入围Forrester Wave
- 下一篇: 杰尼亚签约第四范式 开启奢侈品行业智慧零