天天看點

spring cloud 學習(2) - eureka server注冊中心高可用及安全認證

spring cloud 學習(2) - eureka server注冊中心高可用及安全認證

弄成3個節點,每個節點向其它節點注冊,這樣隻要叢集中有一個節點正常工作即可。為了友善在本機弄出這種效果,我們先修改下host檔案

127.0.0.1  localhost server1 server2 server3

相當于給本機ip綁了3個hostname。然後在項目中,建立3個profile,參考下圖:

spring cloud 學習(2) - eureka server注冊中心高可用及安全認證

application.yml:

application-server1.yml:

application-server2.yml:

application-server3.yml:

其它不用改,idea中啟用時,指定3個不同的profile,參考下圖:

spring cloud 學習(2) - eureka server注冊中心高可用及安全認證

啟用3個執行個體,分别應對server1,server2,server3 這三個profile後,看下UI

spring cloud 學習(2) - eureka server注冊中心高可用及安全認證

可以看到,每個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 這種格式。