在微服務的架構中,我們考慮發生故障的情況,所以在生產環境中我們需要對服務中各個組件進行高可用部署。
Eureka Server 的高可用實際上就是將自己作為服務想其它服務注冊中心注冊自己,這樣就形成了一組互相注冊的服務中心,
以實現服務清單 的互相同步,達到高可用的效果。
1. 創建 application-peer1.properties ,作為peer1服務中心的配置,並將serviceUrl 指向 peer2
spring.application.name=eureka-server server.port=1111 eureka.instance.hostname=peer1 eureka.client.serviceUrl.defaultZone=http://peer2:1112/eureka/
2. 創建 application-pee2.properties , 作為peer2服務中心的配置,比將serviceUrl 指向 peer1
spring.application.name=eureka-server server.port=1112 eureka.instance.hostname=peer2 eureka.client.serviceUrl.defaultZone=http://peer1:1111/eureka/
3. 在本地HOST文件中添加配置,讓上面配置的host形式的serviceUrl能在本地正確訪問到
127.0.0.1 peer1
127.0.0.1 peer2
4. 通過spring.profiles.active 屬性來分別啟動peer1, peer2
java -jar eureka-server-0.0.1.jar --spring.profiles.active=peer1
java -jar eureka-server-0.0.1.jar --spring.profiles.active=peer2
5. 啟動完成
6. 訪問 http://peer1:1111/ 截圖如下:
7. 訪問 http://peer2:1112/ 截圖如下:
8. 如果我們停掉一個服務,我們會發現這個服務會變成這個狀態 unavailable-replicas 狀態
9. 向服務中心注冊服務,我們使用之前/hello 程序,改造一下,並向我們搭建的高可用服務注冊中心注冊服務,修改application.properties 文件,如下:
# 指定應用名稱 spring.application.name= hello-service # 構建服務中心的地址 eureka.client.serviceUrl.defaultZone= http://peer1:1111/eureka/,http://peer2:1112/eureka/
10. 啟動之后,就可以在服務注冊中心看到我們注冊上的服務了,截圖如下:
http://peer1:1111 結果:
http://peer2:1112結果: