![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcucjZ5kTM2UTZxMTO5YjZyMzY3cTN2kTOlZzN0gjMhRWOfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)
弄成3個節點,每個節點向其它節點注冊,這樣隻要叢集中有一個節點正常工作即可。為了友善在本機弄出這種效果,我們先修改下host檔案
127.0.0.1 localhost server1 server2 server3
相當于給本機ip綁了3個hostname。然後在項目中,建立3個profile,參考下圖:
application.yml:
application-server1.yml:
application-server2.yml:
application-server3.yml:
其它不用改,idea中啟用時,指定3個不同的profile,參考下圖:
啟用3個執行個體,分别應對server1,server2,server3 這三個profile後,看下UI
可以看到,每個eureka server都向其它節點注冊了。
其它服務向eureka server叢集注冊時,參考下面的配置:
再來看另一個問題:
注冊中心的管理界面以及服務注冊時,沒有任何認證機制,安全性比較差,如果其它服務惡意注冊一個同名服務,但是實作不同,可能就有風險了,可以參考下面的配置改進:
先添加:compile 'org.springframework.boot:spring-boot-starter-security' 依賴,然後在eureka server的application.yml中增加
這樣就添加了1個使用者名及密碼(注:其原理就是spring-security,熟悉spring-security的朋友,也可以改成把使用者名/密碼存儲在資料庫中)
啟動後,再浏覽eureka server就用輸入使用者名,密碼了。
然後其它服務注冊時,相應的defautZone也要改成類似:
defaultZone: http://yjmyzz:123456@server1:8100/eureka,http://yjmyzz:123456@server2:8200/eureka 這種格式。