Eureka實現服務注冊與發現,在Spring Cloud微服務中起着關鍵性的作用,必須保障其高可用,常規方案無非通過集群實現。這里在本地機器搭建一個偽集群環境,通過兩個節點實現相互注冊,並通過主備數據同步實現高可用,實際生產環境可能有多個節點,原理一樣。簡單步驟如下:
【step1】:eureka配置文件如下
spring: application: name: eureka-cluster --- spring: profiles: master server: port: 8761 eureka: instance: hostname: master client: registerWithEureka: false fetchRegistry: false serviceUrl: defaultZone: http://backup:8762/eureka
--- spring: profiles: backup server: port: 8762 eureka: instance: hostname: backup client: registerWithEureka: false fetchRegistry: false serviceUrl: defaultZone: http://master:8761/eureka
注意:這里通過端口不同實現模擬,並且需要配置機器host信息:
192.168.31.11 master
192.168.31.11 backup
【step2】:打包部署,並啟動
通過mvn install打包,然后分別啟動,
java -jar eureka.jar --spring.profiles.active=master
java -jar eureka.jar --spring.profiles.active=backup
啟動時指定spring.profiles.active實現主備模擬。
【step3】:訪問測試
訪問http://192.168.31.11:8761/ 詳情如下:
訪問http://192.168.31.11:8762/ 詳情如下:
【step4】:修改客戶端,啟動客戶端測試
客戶端修改Eureka的注冊地址:eureka.client.serviceUrl.defaultZone: http://master:8761/eureka/,http://backup:8762/eureka/,啟動客戶端,然后分別訪問Eureka查看,已經注冊到了各個節點。
停掉其中某個Eureka節點,然后再次啟動查看,會發現服務信息從可用的節點同步到了當前節點。