單實例的服務注冊中心一旦崩潰的時候吠撮,所有依賴的服務都會gg缔杉,所以Spring Cloud就提供了注冊中心高可用的方案
一蛹锰,準備工作
按之前Spring Cloud(一)創(chuàng)建服務注冊中心的方式來搭建高可用的注冊中心
二掌猛,eureka-server
主要是配置文件的改動宫盔,新創(chuàng)建application-peer1.yml和application-peer2.yml
application-peer1.yml
server:
port: 8761
spring:
profiles: peer1
eureka:
instance:
hostname: peer1
client:
serviceUrl:
defaultZone: http://peer2:8762/eureka/
application-peer2.yml
server:
port: 8762
spring:
profiles: peer2
eureka:
instance:
hostname: peer2
client:
serviceUrl:
defaultZone: http://peer1:8761/eureka/
application.yml
spring:
application:
name: eureka-server
profiles: peer1
三融虽,service-hi
主要是配置文件的修改
application.yml
eureka:
instance:
hostname: service-hi
client:
serviceUrl:
defaultZone: http://peer1:8761/eureka/
server:
port: 8763
spring:
application:
name: service-hi
四,啟動服務
在啟動前灼芭,按照官方文檔的指示有额,需要改變etc/hosts,linux系統(tǒng)通過vim /etc/hosts ,windows電腦彼绷,在c:/windows/systems/drivers/etc/hosts 修改巍佑。
127.0.0.1 peer1
127.0.0.1 peer2
EurekaServerApplication1
EurekaServerApplication2
依次啟動EurekaServerApplication1,EurekaServerApplication2寄悯,service-hi
訪問http://localhost:8761/
8761
訪問http://localhost:8762/
8762
你會發(fā)現(xiàn)注冊了service-hi萤衰,并且有個peer2節(jié)點,同理訪問localhost:8769你會發(fā)現(xiàn)有個peer1節(jié)點猜旬。
client只向8761注冊脆栋,但是你打開8769,你也會發(fā)現(xiàn)洒擦,8769也有 client的注冊信息椿争。
此時的架構圖:
peer1和peer2相互注冊
Eureka-eserver peer1 8761,Eureka-eserver peer2 8769相互感應,當有服務注冊時熟嫩,兩個Eureka-eserver是對等的秦踪,它們都存有相同的信息,這就是通過服務器的冗余來增加可靠性掸茅,當有一臺服務器宕機了椅邓,服務并不會終止,因為另一臺服務存有相同的數(shù)據(jù)昧狮。
五希坚,參考資料
https://blog.csdn.net/forezp/article/details/81041101#commentBox