第一步:咱們新建兩個註冊中心工程一個叫eureka_register_service_master、另一個叫eureka_register_service_backupjava
eureka_register_service_master的application.properties配置 spring
server.port=7998app
eureka.client.register-with-eureka=falsefetch
eureka.client.fetch-registry=falsespa
spring.application.name=eureka-servercode
eureka.instance.hostname=masterserver
eureka.client.serviceUrl.defaultZone=http://backup:7999/eureka/blog
eureka_register_service_backup的application.properties配置以下同步
server.port=7999 eureka.client.register-with-eureka=false eureka.client.fetch-registry=false spring.application.name=eureka-server eureka.instance.hostname=backup #這裏配置的是master的地址 eureka.client.serviceUrl.defaultZone=http://master:7998/eureka/
上面的配置端口分別是it
master端口是7998
backupr端口是7999
因爲我用的是同一臺機器因此須要綁定下host
127.0.0.1 master
127.0.0.1 backup
第二步:添加啓動文件分別是ApplicationMaster.java,ApplicationBackUp.java
裏面代碼內容是同樣的
@EnableEurekaServer @SpringBootApplication public class ApplicationMaster { public static void main(String[] args) { SpringApplication.run(ApplicationMaster.class, args); } } @EnableEurekaServer @SpringBootApplication public class ApplicationBackUp { public static void main(String[] args) { SpringApplication.run(ApplicationBackUp.class, args); } }
設置了多個註冊中心後,咱們的服務配置不須要太多改動只需將工程的application.properties的serviceUrl修改下
eureka.client.serviceUrl.defaultZone=http://master:7998/eureka/,http://backup:7999/eureka/,
固然也能夠綁定一個地址,eureka.client.serviceUrl.defaultZone=http://master:7998/eureka/ 這兩種綁定均可以,綁定一個時,也會註冊到兩個eureka上。可是若是隻寫一個時,假如http://master:7998/eureka/這個掛掉了,另外一個eureka的結點信息會消失。
分別打開http://127.0.0.1:7998/ 和 http://127.0.0.1:7999/ 以下圖
經過上圖能夠看
端口7998是matser它的registered-replicas指向了http://backup:7999/eureka/
端口7999是backup它的registered-replicas指向了http://master:7999/eureka/
Eureka Server的同步遵循着一個很是簡單的原則:只要有一條邊將節點鏈接,就能夠進行信息傳播與同步
假設咱們有3個註冊中心,咱們將peer一、peer二、peer3各自都將serviceUrl指向另外兩個節點。換言之,peer一、peer二、peer3是兩兩互相註冊的。啓動三個服務註冊中心,並將compute-service的serviceUrl指向peer1並啓動,能夠得到以下圖所示的集羣效果。
訪問http://localhost:1112/
,能夠看到3個註冊中心組成了集羣,compute-service服務經過peer1同步給了與之互相註冊的peer2和peer3