筆記:Spring Cloud Eureka 高可用注冊中心


在微服務架構這樣的分布式環境中,我們需要充分考慮發生故障的情況,所以在生產環境中必須對各個組件進行高可用部署,對與微服務和服務注冊中心都需要高可用部署,Eureka 高可用實際上就是將自己作為服務向其他服務注冊中心注冊自己,這樣就可以形成一組互相注冊的服務注冊中心,已實現服務清單的互相同步,達到高可用效果,下面的示例構建一個服務注冊中心集群,在配置單個服務注冊中心的基礎上進行擴展,示例代碼如下:

  • 創建 application-server1.properties 作為服務注冊中心集合的 server1 注冊中心,並將 serviceUrl 指向 server2 注冊中心,配置如下:

    server.port=1111

    spring.application.name=eureka-server

       

    eureka.instance.hostname=eurekaserver1

    eureka.client.service-url.defaultZone=http://eurekaserver2:1112/eureka

  • 創建 application-server2.properties 作為服務注冊中心集合的server2 注冊中心,並將serviceUrl指向server1 注冊中心,配置如下:

    server.port=1112

    spring.application.name=eureka-server

       

    eureka.instance.hostname=eurekaserver2

    eureka.client.service-url.defaultZone=http://eurekaserver1:1111/eureka

  • /etc/hosts 文件中添加對 eurekaserver1 eurekaserver2 的域名解析,代碼如下:

    127.0.0.1 eurekaserver1

    127.0.0.1 eurekaserver2

  • 通過 spring.profiles.active 屬性來分別啟動 eurekaserver1 eurekaserver2

    java -jar eureka-server-1.0.0.jar --spring.profiles.active=server1

    java -jar eureka-server-1.0.0.jar --spring.profiles.active=server2

    啟動之后訪問 http://localhost:1111 ,可以看到 registered-replicas 中已經有 eurekaserver2 的注冊中心,如下圖所示:

  • 在設置了多節點的服務注冊中心之后,服務提供方還需要做一些簡單的配置才能將服務注冊到 Eureka Server 集群中,在前面的 hello-service 為例,修改 application.properties 配置文件,如下所示:

    spring.application.name=hello-service

    eureka.client.service-url.defaultZone=http://eurekaserver1:1111/eureka/,http://eurekaserver2:1112/eureka

    上面的配置主要對 eureka.client.service-url.defaultZone 屬性進行了修改,將注冊中心指向了之前我們搭建的服務注冊中心集群,啟動服務后,可以看到在 eurekaserver1 eurekaserver2 都進行了注冊。


免責聲明!

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



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