解決高可用問題
思路:大搭建多個eureka服務端,相互註冊,相互監督.
搭建集羣不同的是配置文件如下:
eureka7001
server:
port: 7001
eureka:
instance:
hostname: eureka7001.com #eureka服務端的實例名稱
client:
# false表示不向註冊中心註冊自己
register-with-eureka: false
# false表示自己端就是註冊中心,我的職責就是維護服務實例,並不需要檢索服務
fetch-registry: false
service-url:
# 設置與Eureka Server交互的地址查詢服務和註冊服務都需要依賴這個地址
#defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
# 相互註冊
defaultZone: http://eureka7002.com:7002/eureka/
#defaultZone: http://eureka7001.com:7001/eureka/
server:
#關閉自我保護模式,保證不可用服務被及時刪除
enable-self-preservation: false
eviction-interval-timer-in-ms: 2000
eureka7002
server:
port: 7002
eureka:
instance:
hostname: eureka7002.com #eureka服務端的實例名稱
client:
# false表示不向註冊中心註冊自己
register-with-eureka: false
# false表示自己端就是註冊中心,我的職責就是維護服務實例,並不需要檢索服務
fetch-registry: false
service-url:
# 設置與Eureka Server交互的地址查詢服務和註冊服務都需要依賴這個地址
#defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
# 相互註冊
#defaultZone: http://eureka7002.com:7002/eureka/
defaultZone: http://eureka7001.com:7001/eureka/
server:
#關閉自我保護模式,保證不可用服務被及時刪除
enable-self-preservation: false
eviction-interval-timer-in-ms: 2000
服務註冊
eureka:
client:
#表示是否將自己註冊進EurekaServer默認爲true
register-with-eureka: true
#是否從EurekaServer抓取已有的註冊消息,默認爲true,單節點無所謂,集羣必須設置爲true才能配合ribbon使用負載均衡
fetch-registry: true
service-url:
#集羣版
defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/
#單機版
#defaultZone: http://localhost:7001/eureka/
同理也許到搭建多個相同的服務構成服務集羣,然後註冊到eureka中,
但是由於,多個相同的服務名
消費者eureka無法分清需要將請求分發到哪一個服務中,因此需要給
- RestTemplate配置類添加一個負載均衡註解
- 修改消費者controller層中的請求主機名和端口號.
這裏的主機名與端口號要和eureka中註冊的服務名相同