目標:搭建出三個節點的服務註冊中心集羣,並實現一個服務的註冊。java
目錄:git
一、註冊中心集羣配置(代碼裏都有關鍵註釋,可自行查看);github
二、運行集羣;spring
三、hello-server服務註冊;瀏覽器
1、註冊中心集羣配置springboot
跟上一篇文章的單個服務註冊中心同樣,首先建立一個springboot項目eureka-server-cluster,而後在pom.xml文件中添加spring cloud的版本依賴和Eureka的服務端依賴(請查看上一篇文章的pom.xml配置,事實是兩個項目pom內容同樣),而後進行下面配置:app
一、首先在項目的resource下建立三個節點的配置文件-目的爲了後面啓動集羣不一樣節點加載不一樣配置文件,服務註冊中心節點1的主機名爲: eurekaserverone、服務註冊中心節點2的主機名爲: eurekaservertwo、服務註冊中心節點3的主機名爲: eurekaserverthree(由於這裏我是在本機器環境下搭建的集羣,因此三個節點的IP都是127.0.0.1,只是端口不一樣-具體端口見下面的配置文件,爲了主機名能映射到IP地址,因此咱們須要在系統的host文件中配置對應的映射以下圖示)。三個配置文件分別爲:application-serverone.yml,application-servertow.yml,applicatioin-serverthree.yml 具體配置分別以下:spa
1) application-serverone.yml配置,這裏服務註冊中心節點eurekaserverone註冊到服務註冊中心節點eurekaservertwo和服務註冊中心節點eurekaserverthree.net
# 配置服務名稱(由於這裏做爲服務中心集羣,因此將本身做爲服務向其它服務中心註冊本身,造成互相註冊的服務註冊中心) spring: application: name: eureka-server-cluster # 配置端口 server: port: 1111 eureka: # 配置本註冊中心的hostname instance: hostname: eurekaserverone # 本Eureka服務端將本身做爲服務將要註冊的註冊中心的地址 client: serviceUrl: defaultZone: http://eurekaservertwo:1112/eureka/,http://eurekaserverthree:1113/eureka/
2) application-servertwo.yml配置,這裏服務註冊中心節點eurekaservertwo註冊到服務註冊中心節點eurekaserverone和服務註冊中心節點eurekaserverthree命令行
# 配置服務名稱(由於這裏做爲服務中心集羣,因此將本身做爲服務向其它服務中心註冊本身,造成互相註冊的服務註冊中心) spring: application: name: eureka-server-cluster # 配置端口 server: port: 1112 eureka: # 配置本註冊中心的hostname instance: hostname: eurekaservertwo # 本Eureka服務端將本身做爲服務將要註冊的註冊中心的地址 client: serviceUrl: defaultZone: http://eurekaserverone:1111/eureka/,http://eurekaserverthree:1113/eureka/
3) application-serverthree.yml配置,這裏服務註冊中心節點eurekaserverthree註冊到服務註冊中心節點eurekaserverone和服務註冊中心節點eurekaservertwo
# 配置服務名稱(由於這裏做爲服務中心集羣,因此將本身做爲服務向其它服務中心註冊本身,造成互相註冊的服務註冊中心) spring: application: name: eureka-server-cluster # 配置端口 server: port: 1113 eureka: # 配置本註冊中心的hostname instance: hostname: eurekaserverthree # 本Eureka服務端將本身做爲服務將要註冊的註冊中心的地址 client: serviceUrl: defaultZone: http://eurekaserverone:1111/eureka/,http://eurekaservertwo:1112/eureka/
二、在EurekaServerClusterApplication.java中即項目的啓動類中添加開啓此段爲服務註冊中心註解@EnableEurekaServer,代碼以下:
package com.lyq.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer; /** * @description : @EnableEurekaServer開啓此端爲服務註冊中心 * @author : lyq * @date : 2018/01/10 */ @EnableEurekaServer @SpringBootApplication public class EurekaServerClusterApplication { public static void main(String[] args) { SpringApplication.run(EurekaServerClusterApplication.class, args); } }
2、運行集羣
一、將上面項目進行編譯打包後,如今到命令行環境去針對不一樣節點加載不一樣配置文件運行,具體命令以下
1)啓動服務中心節點eurekaserverone,命令以下:
java -jar eureka-server-cluster-0.0.1-SNAPSHOT.jar --spring.profiles.active=serverone
2)啓動服務中心節點eurekaservertwo,命令以下:
java -jar eureka-server-cluster-0.0.1-SNAPSHOT.jar --spring.profiles.active=servertwo
3)啓動服務中心節點eurekaserverthree,命令以下:
java -jar eureka-server-cluster-0.0.1-SNAPSHOT.jar --spring.profiles.active=serverthree
我這啓動成功後界面,這裏也能夠看註冊的信息(本身去看吧,這裏我就再也不敘述了)
二、三個命令窗口啓動成功後,能夠在瀏覽器中輸入以下地址便可看到集羣各節點的註冊信息:
http://eurekaserverone:1111/
http://eurekaservertwo:1112/
http://eurekaserverthree:1113/
其中一個界面的信息爲(這裏能夠看到節點2和節點3都註冊到節點1上了,其餘節點相似):
3、hello-server服務註冊
一、這裏我直接使用的上一篇文章裏面的eureka-clientone項目做爲服務註冊到服務註冊中心集羣中;
二、對項目eureka-clientone只對application.yml文件進行了以下修改:
# 配置註冊到註冊中心的服務名稱 spring: application: name: hello-service ## 配置服務註冊中心的地址(實踐單節點服務註冊中心案例時,放開此註釋,而且註釋下面的代碼) #eureka: # client: # serviceUrl: # defaultZone: http://eurekaserverone:1111/eureka/ # 配置服務註冊中心的地址(實踐服務註冊中心集羣案例時,放開此註釋,而且註釋上面的代碼) eureka: client: serviceUrl: defaultZone: http://eurekaserverone:1111/eureka/
三、運行此項目後,再在瀏覽器輸入上述地址中的一個,例如我這輸入的是:
http://eurekaserverone:1111/
能夠在註冊中心界面看到,此服務hello-service已經註冊進去了(注意:其它服務註冊中心節點eurekaservertwo、eurekaserverthree也都註冊了此服務),以下圖所示:
到這裏集羣服務註冊中心代碼已經完成,若有建議或疑問敬請在博客留言。接下來文章會對服務註冊中心集羣的詳細配置一一進行分解。
服務註冊中心服務端代碼地址:https://github.com/camel-luo/eureka-server-cluster
服務註冊中心被註冊服務代碼:https://github.com/camel-luo/eureka-clientone