上文 創(chuàng)建壁畸、配置Eureka Server 和 Client
下文 使用RestTemplate進(jìn)行應(yīng)用間通信
通過不同的配置文件 application.yml 啟動(dòng)多個(gè)實(shí)例來實(shí)現(xiàn)
#Server 1
server:
port: 8761
eureka:
server:
enable-self-preservation: false
client:
service-url:
defaultZone: http://localhost:8762/eureka/ #兩個(gè)server相互注冊(cè)
register-with-eureka: false
spring:
application:
name: eureka-demo
#Server 2
server:
port: 8762
eureka:
server:
enable-self-preservation: false
client:
service-url:
defaultZone: http://localhost:8761/eureka/ #兩個(gè)server相互注冊(cè)
register-with-eureka: false
spring:
application:
name: eureka-demo
這樣 在 idea 或者 Eclipse 中我們需要啟動(dòng)一個(gè)實(shí)例杠河,然后修改配置再啟動(dòng)一個(gè)實(shí)例,有點(diǎn)亂苍匆。
可以把 application.yml 定義為下面的形式:
# 無參數(shù)啟動(dòng)
spring:
application:
name: eureka-demo
server:
port: 8761
eureka:
server:
enable-self-preservation: false #防止由于eureka的機(jī)制導(dǎo)致 client 被錯(cuò)誤顯示在線 在開發(fā)環(huán)境使用
client:
service-url:
defaultZone: http://localhost:8761/eureka/
---
# 啟動(dòng)參數(shù) --spring.profiles.active=server1
spring:
profiles: server1
server:
port: 8761
eureka:
client:
service-url:
defaultZone: http://localhost:8762/eureka/
---
# 啟動(dòng)參數(shù) --spring.profiles.active=server2
spring:
profiles: server2
server:
port: 8762
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
運(yùn)行方式
- 在idea中運(yùn)行
新建2個(gè)運(yùn)行配置 server1 server2,按圖片所示分別添加參數(shù)
--spring.profiles.active=server1
--spring.profiles.active=server2
- 打包運(yùn)行
啟動(dòng)兩個(gè)cmd窗口棚菊,切換到項(xiàng)目目錄下浸踩,分別運(yùn)行
java -jar target/eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=server1
java -jar target/eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=server2
我們同時(shí)運(yùn)行剛才創(chuàng)建的 Client,注意我們只把 Client 注冊(cè)到了http://localhost:8761/eureka/
也就是server1中
此時(shí)统求,localhost:8761,localhost:8762的Eureka Server 均顯示如下检碗,即只在server1中注冊(cè)的Client也被注冊(cè)到了server2
雖然,Client被自動(dòng)注冊(cè)到了server2码邻,但是如果server1不啟動(dòng)折剃,server2無法得到Client的注冊(cè)(Client在server2注冊(cè)后,server1變成不可用并不影響)像屋。所以我們?cè)贑lient中做修改,配置2個(gè)defaultZone
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/
當(dāng)有3個(gè)Eureka Server時(shí)怕犁,以此類推,三個(gè)Server相互配置另外2個(gè)地址己莺,Client 配置 3個(gè)地址