springcloud 之 EurekaServer 服务注册集群
在之前一篇文章(https://blog.csdn.net/zwx19921215/article/details/79800409)中我們已經搭建了一個EurekaServer,
至于它的功能我已經不再贅述,但是很明顯這是一個單點服務,而我們都知道,服務注冊中心是整個分布式系統的核心,我們所有的微服務實例都注冊在其中,一旦該服務注冊中心宕機,則可能導致整個服務集群癱瘓,所以很明顯在真實的生產環境中,我們必須將注冊中心進行集群化部署(至少2個節點),那么接下來我們來搭建一個簡單的2個節點的集群吧.
1.環境準備
我準備了2臺機器,因為我打算在2臺機器上部署2個實例;其實也可以一臺機器上部署,但是我是為了更好的模擬真實環境
2.準備好工程,我沿用了之前的工程(discover-server)
3.配置更改
第一份配置如下:
#端口 server.port=8761 spring.application.name=x-discover-server eureka.instance.hostname=10.0.2.23 #配置另一個服務注冊中心實例的host和port eureka.server.host=10.0.2.24 eureka.server.port=8762 #通過eureka.client.registerWithEureka:false和fetchRegistry:false來表明自己是一個eureka server. #register-with-eureka:表示是否將自己注冊到eureka server,因為要構建集群環境,需要將自己注冊到集群中,所以應該開啟。默認為true,可不顯式設置。 eureka.client.register-with-eureka=true #fetch-registry:表示是否從eureka server獲取注冊信息,如果是單一節點,不需要同步其他eureka server節點,則可以設置為false,但此處為集群,應該設置為true,默認為true,可不設置。 eureka.client.fetch-registry=true eureka.client.serviceUrl.defaultZone=http://${eureka.server.host}:${eureka.server.port}/eureka/ #-----------------------------------關閉eureka自我保護--------------------------------------- #注意:更改Eureka更新頻率將打破服務器的自我保護功能,生產環境下不建議自定義這些配置。 #Eureka Server端:配置關閉自我保護,并按需配置Eureka Server清理無效節點的時間間隔 #設為false,關閉自我保護 eureka.server.enable-self-preservation=false #清理間隔(單位毫秒,默認是60*1000) eureka.server.eviction-interval-timer-in-ms=4000第二份配置如下:
#端口 server.port=8762 spring.application.name=x-discover-server #eureka 實例名 eureka.instance.hostname=10.0.2.24 #配置另一個服務注冊中心實例的host和port eureka.server.host=10.0.2.23 eureka.server.port=8761 #通過eureka.client.registerWithEureka:false和fetchRegistry:false來表明自己是一個eureka server. #register-with-eureka:表示是否將自己注冊到eureka server,因為要構建集群環境,需要將自己注冊到及群眾,所以應該開啟。默認為true,可不顯式設置。 eureka.client.register-with-eureka=true #fetch-registry:表示是否從eureka server獲取注冊信息,如果是單一節點,不需要同步其他eureka server節點,則可以設置為false,但此處為集群,應該設置為true,默認為true,可不設置。 eureka.client.fetch-registry=true eureka.client.serviceUrl.defaultZone=http://${eureka.server.host}:${eureka.server.port}/eureka/ #-----------------------------------關閉eureka自我保護--------------------------------------- #注意:更改Eureka更新頻率將打破服務器的自我保護功能,生產環境下不建議自定義這些配置。 #Eureka Server端:配置關閉自我保護,并按需配置Eureka Server清理無效節點的時間間隔 #設為false,關閉自我保護 eureka.server.enable-self-preservation=false #清理間隔(單位毫秒,默認是60*1000) eureka.server.eviction-interval-timer-in-ms=4000配置具體說明見內容
分別打包2份配置,并將2個jar部署到對應的機器,訪問10.0.2.23:8761
如圖,x-discover-server已經啟動了2個實例,10.0.23機器中的8761端口,10.0.2.24中的8762端口,
訪問10.0.2.24:8762
由上圖可以看出2個實例都已經相互注冊了,形成了一個2個服務的小集群。
4.接下來我們注冊一個客戶端服務到其中,沿用之前的項目demo-springboot
5.更改demo-springboot中的相應配置
#端口 server.port=8889 #實例名 spring.application.name=demo-springboot #注冊中心 eureka.server.host1=10.0.2.23 eureka.server.host2=10.0.2.24 eureka.server.port1=8761 eureka.server.port2=8762 eureka.client.service-url.defaultZone=http://${eureka.server.host1}:${eureka.server.port1}/eureka/,http://${eureka.server.host2}:${eureka.server.port2}/eureka/ #feign read timeout(10s) hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=10000 #feign read timout disable #hystrix.command.default.execution.timeout.enabled=false #開啟eureka client健康檢查 eureka.client.healthcheck=true # 續約到期時間(默認90秒) eureka.instance.lease-expiration-duration-in-seconds=30 # 續約更新時間間隔(默認30秒) eureka.instance.lease-renewal-interval-in-seconds=10將demo-springboot向2個實例同時注冊(只向其中一個實例注冊也是可以的,會自動發現)啟動demo-springboot查看效果
ok,至此我們的服務注冊與發現集群就已經搭建成功了!
總結
以上是生活随笔為你收集整理的springcloud 之 EurekaServer 服务注册集群的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 免费主机租用要注意哪些问题
- 下一篇: springcloud 之 配置中心服务