真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

SpringCloud高可用的EurekaServer集群

一:為什么要搭建Eureka Server 集群

在一個分布式系統(tǒng)中,服務注冊中心是最重要的基礎部分,如果是單點話,遇到故障就是毀滅性的,理應隨時處于可以提供服務的狀態(tài)。為了維持其可用性,使用集群是很好的解決方案。Eureka通過互相注冊的方式來實現(xiàn)高可用的部署,所以我們只需要將Eureke Server配置其他可用的serviceUrl就能實現(xiàn)高可用部署。 Eureka集群框架圖如下: 

從網(wǎng)站建設到定制行業(yè)解決方案,為提供成都網(wǎng)站建設、成都做網(wǎng)站服務體系,各種行業(yè)企業(yè)客戶提供網(wǎng)站建設解決方案,助力業(yè)務快速發(fā)展。創(chuàng)新互聯(lián)公司將不斷加快創(chuàng)新步伐,提供優(yōu)質的建站服務。

SpringCloud 高可用的 Eureka Server 集群

二:搭建Eureka Server

上一篇 我們 搭建了一個單機版的Eureka Server ,在這個基礎上我們進行改造。

2.1 首先更改eureka-server 的配置文件 application.yml,我采用的是多profile的格式。

創(chuàng)建3個application.yml文件,分別為 applicatiom-peer1.yml ,applicatiom-peer2.yml ,applicatiom-peer3.yml

SpringCloud 高可用的 Eureka Server 集群

applicatiom-peer1.yml 的 配置內容如下:

#高可用的Eureka-Server 集群 peer1spring:  application:    name: Eureka-Server-peer  #應用名稱,也是服務注冊的名稱server:  port: 8001  #開啟端口eureka:  instance:    prefer-ip-address: true #提交ip信息    status-page-url-path: /actuator/info #信息查詢的url link    health-check-url-path: /actuator/health #健康檢查的url    hostname: peer1    #主機名  client:
    #在默認情況下,Eureka servce 會向自己注冊,這時需要設置registerWithEureka和fetchRegistry 為false,防止自己注冊自己
    #在Eureka集群中,允許注冊中心自己作為服務向其他注冊中心注冊自己,這樣就可以形成一組相互注冊的注冊中心,他們互相同步服務清單,做到了我們要的高可用
    #是否將自己注冊到Eureka Server 默認為true    registerWithEureka: true
    #是否從Eureka Server查詢注冊信息    fetchRegistry: true
    #服務注冊地址    serviceUrl:
      #與Eureka Server交互的地址,查詢服務和服務注冊都需要依賴這個地址,
      #默認為http://localhost:8761/eureka,  多個地址用","分割      defaultZone: http://peer2:8002/eureka/,http://peer3:8003/eureka/  server:
    #enable-self-preservation: true        #開啟自我保護模式
    #eviction-interval-timer-in-ms: 4000    #清理服務間隔4s,默認60*10000 復制代碼

applicatiom-peer2.yml 的 配置內容如下:

#高可用的Eureka-Server 集群 peer2spring:  application:    name: Eureka-Server-peer  #應用名稱,也是服務注冊的名稱server:  port: 8002  #開啟端口eureka:  instance:    prefer-ip-address: true #提交ip信息    status-page-url-path: /actuator/info #信息查詢的url link    health-check-url-path: /actuator/health #健康檢查的url    hostname: peer2    #主機名  client:
    #在默認情況下,Eureka servce 會向自己注冊,這時需要設置registerWithEureka和fetchRegistry 為false,防止自己注冊自己
    #在Eureka集群中,允許注冊中心自己作為服務向其他注冊中心注冊自己,這樣就可以形成一組相互注冊的注冊中心,他們互相同步服務清單,做到了我們要的高可用
    #是否將自己注冊到Eureka Server 默認為true    registerWithEureka: true
    #是否從Eureka Server查詢注冊信息    fetchRegistry: true
    #服務注冊地址    serviceUrl:
      #與Eureka Server交互的地址,查詢服務和服務注冊都需要依賴這個地址,
      #默認為http://localhost:8761/eureka,  多個地址用","分割      defaultZone: http://peer1:8001/eureka/,http://peer3:8003/eureka/  server:
    #enable-self-preservation: true        #開啟自我保護模式
    #eviction-interval-timer-in-ms: 4000    #清理服務間隔4s,默認60*10000 復制代碼

applicatiom-peer3.yml 的 配置內容如下:

#高可用的Eureka-Server 集群 peer2spring:  application:    name: Eureka-Server-peer  #應用名稱,也是服務注冊的名稱server:  port: 8003  #開啟端口eureka:  instance:    prefer-ip-address: true #提交ip信息    status-page-url-path: /actuator/info #信息查詢的url link    health-check-url-path: /actuator/health #健康檢查的url    hostname: peer3    #主機名  client:
    #在默認情況下,Eureka servce 會向自己注冊,這時需要設置registerWithEureka和fetchRegistry 為false,防止自己注冊自己
    #在Eureka集群中,允許注冊中心自己作為服務向其他注冊中心注冊自己,這樣就可以形成一組相互注冊的注冊中心,他們互相同步服務清單,做到了我們要的高可用
    #是否將自己注冊到Eureka Server 默認為true    registerWithEureka: true
    #是否從Eureka Server查詢注冊信息    fetchRegistry: true
    #服務注冊地址    serviceUrl:
      #與Eureka Server交互的地址,查詢服務和服務注冊都需要依賴這個地址,
      #默認為http://localhost:8761/eureka,  多個地址用","分割
      #defaultZone: http://peer1:8001/eureka/,http://peer2:8002/eureka/  server:
    #enable-self-preservation: true        #開啟自我保護模式    eviction-interval-timer-in-ms: 4000    #清理服務間隔4s,默認60*10000 復制代碼

其中:設置 enable-self-preservation: true #開啟自我保護模式在默認配置中,Eureka Server在默認90s沒有得到客戶端的心跳,則注銷該實例,但是往往因為微服務跨進程調用,網(wǎng)絡通信往往會面臨著各種問題,比如微服務狀態(tài)正常,但是因為網(wǎng)絡分區(qū)故障時,Eureka Server注銷服務實例則會讓大部分微服務不可用,這很危險,因為服務明明沒有問題。為了解決這個問題,Eureka 有自我保護機制,通過在Eureka Server配置如下參數(shù),可啟動保護機制。 

enable-self-preservation: true

它的原理是,當Eureka Server節(jié)點在短時間內丟失過多的客戶端時(可能發(fā)送了網(wǎng)絡故障),那么這個節(jié)點將進入自我保護模式,不再注銷任何微服務,當網(wǎng)絡故障回復后,該節(jié)點會自動退出自我保護模式。

(在開發(fā)中 可以不設置,方便開發(fā)) 

2.2 修改 application.yml 的內容:

#高可用的Eureka-Server 集群spring:  profiles:    active: peer1 復制代碼

2.3 因為我們是在windows 上 搭建的,只要一臺機器,要構建集群,需要修改HOSTS文件,添加主機名映射。

修改C:\Windows\System32\drivers\etc\HOSTS文件

127.0.0.1 localhost127.0.0.1 peer1127.0.0.1 peer2127.0.0.1 peer3 復制代碼

2.4 在idea中設置3個啟動方式,并分別設置啟動時應用的配置文件名,springboot中約定 配置文件以application-{profiles}.xxx的方式命名

SpringCloud 高可用的 Eureka Server 集群
SpringCloud 高可用的 Eureka Server 集群

3個同時啟動,分別訪問 localhost:8001, localhost:8002, localhost:8003得到的結果如下:

SpringCloud 高可用的 Eureka Server 集群
SpringCloud 高可用的 Eureka Server 集群
SpringCloud 高可用的 Eureka Server 集群

三:修改eureka-client 客戶端項目 的配置文件

代碼如下:

server:  port: 8762spring:
  #配置程序名為eureka-client  application:    name: eureka-clienteureka:  client:
    #服務注冊地址    serviceUrl:
      #注意: Eureka Server 的注冊地址
      #將服務提供者注冊到三個Eureka Server中去      defaultZone: http://peer1:8001/eureka/,http://peer2:8002/eureka/,http://peer3:8003/eureka/
      #http://localhost:8761/eureka/  復制代碼

啟動 eureka-client 項目,結果如下:

SpringCloud 高可用的 Eureka Server 集群
SpringCloud 高可用的 Eureka Server 集群
SpringCloud 高可用的 Eureka Server 集群

原文鏈接:https://juejin.im/post/5dfcbc1e6fb9a016230acf8d

關注我了解更多程序員資訊技術,領取豐富架構資料


新聞標題:SpringCloud高可用的EurekaServer集群
網(wǎng)站URL:http://weahome.cn/article/igosjs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部