Spring Cloud高可用集羣搭建

一.集羣搭建思路
每個區域一個Eureka集羣區域,負責該區域內的服務實例。每個區域至少有一臺Eureka服務器來處理區域故障
在這裏插入圖片描述
Eureka分爲Eureka Server和Eureka Client及服務端和客戶端。Eureka Server爲註冊中心,是服務端,而服務提供者和消費者爲客戶端,消費者也可以是服務者,服務者也可以是消費者。同時Eureka Server在啓動時默認會註冊自己,成爲一個服務,所以Eureka Server也是一個客戶端,這是搭建Eureka集羣的基礎。

服務提供者向註冊中心註冊服務,並每隔30s發送一次心跳,如果Eureka在90s後還未收到服務提供者發來的心跳,那麼它會認爲該服務已經死亡就會註銷這個服務。這個註銷並不是立即註銷,而是會在60s以後對在這個時間段內“死亡”的服務集中註銷。如果立即註銷的話,會給Eureka服務器造成巨大的壓力

Eureka還具有自我保護機制,如果在15分鐘內超過85%的節點都沒有了心跳,那麼Eureka就認爲客戶端於註冊中心認爲出了網絡故障,所以不會再接收心跳,也不會刪除服務。

客戶端消費者會向註冊中心拉取服務列表,因爲每個服務器的承載量是有限的,所以同一個服務器會部署在多個服務器上,每個服務器上的服務都會去註冊中心註冊服務,他們會有相同的服務器名稱但有不同的實例id,所以拉取的是服務列表。我們最終通過負載均衡來獲取一個服務,這樣可以均衡各個服務器上的服務。

二.Eureka集羣的實現
1.修改配置文件Server-1

server:
  port: 8761
spring:
  application:
    name: eureka-server
eureka:  # 該項目向那個註冊中心註冊自己
  client:
    serviceUrl:
     defaultZone: http://localhost:8762/eureka/,http://localhost:8763/eureka/

2.1.修改配置文件Server-2

server:
  port: 8762
spring:
  application:
    name: eureka-server
eureka:  # 該項目向那個註冊中心註冊自己
  client:
    serviceUrl:
     defaultZone: http://localhost:8761/eureka/,http://localhost:8763/eureka/

3.修改配置文件Server-3

server:
  port: 8763
spring:
  application:
    name: eureka-server
eureka:  # 該項目向那個註冊中心註冊自己
  client:
    serviceUrl:
     defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/

三.修改host文件
修改hosts文件:
在hosts 裏面添加在這裏插入圖片描述
修改配置文件
把本機地址修改爲peer1,peer2,peer3
在這裏插入圖片描述
四.最終配置文件
在這裏插入圖片描述
5.集羣搭建完成
在這裏插入圖片描述
六.測試

不管使用的是哪個註冊中心,它都註冊成功了

隨便掛掉一臺, Eureka server的集羣裏面,沒有主機和從機的概念,節點都是對等的,只有集羣裏面有一個集羣存活,就能保證服務的可用性
在這裏插入圖片描述
只要有一臺存活,服務就能註冊和調用。

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