eureka做爲註冊中心,其充當着服務註冊與發現功能,加載負載均衡;若在項目運行中eureka掛了,那麼整個服務總體都會暫停,因此爲服務運行的安全性,有必要搭建eureka集羣;當其中一個eureka節點掛了,咱們還有另外的節點可用;本篇文章的核心是如何在idea上運行eureka集羣,和項目部署;需注意的jdk版本是1.8,高於jdk1.8打包部署會出問題,須要引入其餘依賴;html
以前的配置文件以下,這是單個eureka-server的配置,並不能知足於咱們實際項目需求,咱們要將其改形成高可用的集羣節點模式;java
server: port: 10086 eureka: instance: hostname: localhost client: # 做爲server,表示禁止向本身註冊 register-with-eureka: false fetch-registry: false service-url: defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
改造配置文件以下,以前的文章中咱們瞭解了eureka的peer to peer 交流機制,咱們如今就根據這個原理搭建高可用的eureka集羣,在配置文件中能夠看見知識追尋者配置了3個peer(peer1,peer2,peer3); 它們的端口分別是10081,10082,10083; peer1,分別向 peer2,peer3註冊,peer2則向 peer1,peer3註冊,peer3同理;這樣就構成了eureka簡單的3個節點集羣;spring
spring: application: name: eureka-server-cluster --- spring: profiles: peer1 server: port: 10081 eureka: instance: hostname: peer1 client: service-url: # 向peer2 peer3節點註冊本身 defaultZone: http://peer2:10082/eureka,http://peer3:10083/eureka --- spring: profiles: peer2 server: port: 10082 eureka: instance: hostname: peer2 client: service-url: # 向peer1 pee3節點註冊本身 defaultZone: http://peer1:10081/eureka,http://peer3:10083/eureka --- spring: profiles: peer3 server: port: 10083 eureka: instance: hostname: peer3 client: service-url: # 向peer1 peer2節點註冊本身 defaultZone: http://peer1:10081/eureka,http://peer2:10082/eureka
在以前的基礎上多添加了註冊server節點 peer2,peer3瀏覽器
server: port: 8090 spring: application: name: eureka-client # 應用名稱 eureka: client: service-url: # 服務註冊地址 defaultZone: http://peer1:10081/eureka/,http://peer2:10082/eureka/,http://peer3:10083/eureka/
修改host文件目的是peer對應ip地址,實際項目中 每一個peer節點都是一個ip地址;安全
192.168.0.101 peer1 192.168.0.101 peer2 192.168.0.101 peer3
複製配置以下:點擊 cpoy configuration 選項; app
進入編輯狀態,修改 name 爲 EurekaServer(1), 激活的配置文件選項 填 peer1;以此類推,咱們複製三個實例; 分別是 EurekaServer(1),EurekaServer(2),EurekaServer(3);分別激活配置 peer2,peer2,peer3; 負載均衡
分別啓動三個配置實例,圖以下;ide
瀏覽器輸入 http://localhost:10083/ 或者 http://localhost:10082/ 或者 http://localhost:10081/;結果以下,知識追尋者在瀏覽器輸入的 peer3地址,那麼 對應的複製的Node 是 peer2,peer1;server有三個;spring-boot
啓動eureka client 圖以下 刷新瀏覽器界面,能夠看見 client 已經註冊到 server;fetch
進入 eureka-server 工程目錄 執行 打包命令 mvn clean package
打開三個命令行分別執行對應的命令,一個cmd一條;
java -jar eureka-server-1.0.0-SNAPSHOT.jar --spring.profiles.active=peer1 java -jar eureka-server-1.0.0-SNAPSHOT.jar --spring.profiles.active=peer2 java -jar eureka-server-1.0.0-SNAPSHOT.jar --spring.profiles.active=peer3
pee3 以下
瀏覽器頁面以下:
以下 配置文件 不寫在src/main/resources一個 application 中,而是分爲 application-peer1.yml, application-peer2.yml, application-peer3.yml ; 在 idea 的虛擬機參數(VM Options)配置 是 -Dspring.profiles.active=peer1 , -Dspring.profiles.active=peer2 ,-Dspring.profiles.active=peer3;部署方式相同;也能夠經過 mvn spring-boot:run -Dspring.profiles.active=peer1 的形式運行;
原文出處:https://www.cnblogs.com/zszxz/p/12079051.html