SpringBoot2.0 + SpringCloud Eureka搭建高可用注冊中心(Eureka之三)


上一篇中提到用SpringBoot2.0+Eureka搭建服務注冊中心和服務提供者,詳情參考:

https://www.cnblogs.com/SysoCjs/p/10127448.html

        現在講一下SpringCloud+Eureka搭建高可用注冊中心。在微服務架構的分布式環境中,必須充分考慮可能會發生的故障情況,所以生產環境必須對各個組件進行高可用部署,對於微服務也是一樣,Eureka的服務治理設計中,所有的節點既是服務提供者,也是服務消費者,服務中心也不例外。

        Eureka服務的高可用實際上就是向別的服務注冊中心注冊自己,形成一個各個注冊中心相互注冊的閉環鏈。下面是項目的搭建:

一、根據上面鏈接新建一個項目,除了application.properties之外,所有信息一樣。

        這時,我們將application.properties文件刪掉,新建兩個properties文件(有些人喜歡用yaml),分別命名為application-peer1.properties和application-peer2.properties。

①application-peer1.properties文件配置如下:

spring.application.name=eureka-server
server.port=1111

eureka.instance.hostname=peer1
eureka.client.service-url.defaultZone=http://peer2:1112/eureka/

②application-peer2.properties文件配置如下:

spring.application.name=eureka-server
server.port=1112

eureka.instance.hostname=peer2
eureka.client.service-url.defaultZone=http://peer1:1111/eureka/

可以看到,定義了兩個服務端口,分別是1111和1112,他們的名字是一樣,而且分別向對方注冊自己。

二、在IDEA中創建兩個服務啟動項,分別根據peer1和peer2文件來啟動服務。

1、在點擊run那里,選擇edit configurations...,

2、選中剛才創建的項目,會看到只有App這個啟動項(我的項目是已經新建了peer1和peer2),

  • 選中App,去掉“Single Instance only”的勾,這樣子才能創建多例,(新建的也要去掉勾)
  • 點擊“+”,填寫自定義的Name,
  • 選擇“Main Class”,作為這個properties的啟動類,這個項目只有一個啟動類,所以都選App啟動類,
  • 填寫Program argument:--spring.profiles.active=peer1(--spring.profiles.active=peer2),表示當前服務是根據哪個properties文件進行加載配置,有不少人是喜歡用cmd窗口打包啟動的。

​       

當新建好了peer1和peer2,依然要點一下run那里,這時會多出來剛才新建的名字為peer1和peer2的選擇,那么現在可以依次選擇,並啟動peer1和peer2服務,當啟動第一個服務時會報錯,這沒關系,當啟動第二個時,就正常,然后回去重啟第一個服務,就正常了。這是因為啟動第一個服務時,它會向第二個服務請求注冊,而第二個服務還沒有啟動,會有connect refuse。

        這個時候可以訪問一下Spring Eureka,輸入127.0.0.1:1111

在peer1服務注冊中心里有兩個服務,peer2和它自己,registered-replicas那里也顯示了向它注冊的服務中心信息。

        輸入127.0.0.1:1112,得到類似的效果:

 

        至此,SpringBoot2.0+Eureka搭建高可用注冊中心已經成功。


免責聲明!

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



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