spring cloud 搭建注冊中心Eureka(集群模式)


集群

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

新建3個配置文件

application-peer1.yml

spring:
  application:
   name: Service     #應用名稱,也是服務注冊的名稱

server:
  port: 8000 #開啟端口

eureka:
  instance:
    hostname: peer1     #主機名
  client:
    serviceUrl:
      defaultZone: http://peer2:8001/eureka/,http://peer3:8002/eureka/    #與Eureka Server交互的地址,查詢服務和服務注冊都需要依賴這個地址
     #默認為http://localhost:8761/eureka,  多個地址用","分割
    fetch-registry: false #是否將自己注冊到Eureka Server 默認為true
    register-with-eureka: true #是否從Eureka Server查詢注冊信息
  server:
    enable-self-preservation: false #關閉自我保護模式
    eviction-interval-timer-in-ms: 4000         #清理服務間隔4s,默認60*10000

 

application-peer2.yml

spring:
  application:
    name: Service     #應用名稱,也是服務注冊的名稱

server:
  port: 8001 #開啟端口

eureka:
  instance:
    hostname: peer2     #主機名
  client:
    serviceUrl:
      defaultZone: http://peer1:8000/eureka/,http://peer3:8002/eureka/   #與Eureka Server交互的地址,查詢服務和服務注冊都需要依賴這個地址
      #默認為http://localhost:8761/eureka,  多個地址用","分割
    fetch-registry: false #是否將自己注冊到Eureka Server 默認為true
    register-with-eureka: true #是否從Eureka Server查詢注冊信息
  server:
    enable-self-preservation: false #關閉自我保護模式
    eviction-interval-timer-in-ms: 4000         #清理服務間隔4s,默認60*10000

application-peer3.yml

spring:
  application:
    name: Service     #應用名稱,也是服務注冊的名稱

server:
  port: 8002 #開啟端口

eureka:
  instance:
    hostname: peer3     #主機名
  client:
    serviceUrl:
      defaultZone: http://peer1:8000/eureka/,http://peer2:8001/eureka/    #與Eureka Server交互的地址,查詢服務和服務注冊都需要依賴這個地址
      #默認為http://localhost:8761/eureka,  多個地址用","分割
    fetch-registry: false #是否將自己注冊到Eureka Server 默認為true
    register-with-eureka: true #是否從Eureka Server查詢注冊信息
  server:
    enable-self-preservation: false #關閉自我保護模式
    eviction-interval-timer-in-ms: 4000         #清理服務間隔4s,默認60*10000

注意:

1.register-with-eureka 需要設置為true,或者不設置,默認為true

2.hostname和defaultZone的域名不要設置為localhost,應設置為別名,並在操作系統的host文件中添加映射,

127.0.0.1        peer1
127.0.0.1        peer2
127.0.0.1        peer3

   否則后台會出現registered-replicas為空的情況

3.enable-self-preservation 設置為false 關閉自我保護模式,否則一個節點掛掉之后,不會在unavailable-replicas中出現

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

 

 

 

 

 

 3個同時啟動,分別訪問 localhost:8000, localhost:8001, localhost:8002 

 

 

 關閉節點peer1,一段時間后,peer1節點信息將出現在 unavailable-replicas 中,如果不關閉自我保護模式,則不會出現。

 再次啟動peer1,又會恢復正常

 

 

 以jar包形式啟動3個應用,

java -jar -Dspring.profiles.active=peer1 Service.jar
java -jar -Dspring.profiles.active=peer2 Service.jar
java -jar -Dspring.profiles.active=peer3 Service.jar

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM