閱讀967 返回首頁    go 阿裏雲 go 技術社區[雲棲]


《Spring Cloud Netflix》-- 服務注冊和服務發現-Eureka的服務認證和集群

一、 Eureka的服務認證

1、 服務端添加依賴

<dependency>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-security</artifactId>
</dependency>

2、 服務端添加配置

  服務認證
security.basic.enabled=true
security.user.name=roncoo
security.user.password=123456

3、 修改服務端和客戶端的配置

eureka.client.serviceUrl.defaultZone=https://roncoo:123456@localhost:8761/eureka/

建議:
能在內網的,盡量在內網,這樣既可以保障安全,也能降低複雜度。

二、 Eureka的集群


說明:啟動3個注冊中心,我們將roncoo1、roncoo2、roncoo3各自都將serviceUrl指向另外兩個節點,即是roncoo1、roncoo2、roncoo3是兩兩互相注冊的。

步驟:
1、設置hosts:C:\Windows\System32\drivers\etc\hosts;

# Cluster hosts
127.0.0.1roncoo1
127.0.0.1roncoo2
127.0.0.1roncoo3

2、修改配置
每個服務都需要相應的修改,服務-01

spring.application.name=spring-cloud-server-01
eureka.instance.hostname=roncoo1
eureka.client.serviceUrl.defaultZone=https://roncoo:123456@roncoo2:8762/eureka/,https://roncoo:123456@roncoo3:8763/eureka/

同理:服務-02,服務-03都做相對應的修改

3、配置修改
這裏是為了測試,生產應該保持默認值:30s

eureka.instance.lease-renewal-interval-in-seconds=5

剔除失效服務的檢測時間,默認值:60000,即60s

eureka.server.eviction-interval-timer-in-ms=5000

另一種集群方式(不可用):

說明:注冊中心1指向注冊中心2, 注冊中心2指向注冊中心3,那麼當服務向注冊中心1注冊時,注冊中心2中會有該服務的注冊信息,但是注冊中心3中沒有。

結論:服務注冊信息不會被二次傳播。

證實:PeerAwareInstanceRegistryImpl類

// If it is a replication already, do not replicate again as this will create a poison replication
如果該注冊信息是其它Eureka同步過的則不會再繼續傳播給自己的peer節點
// If the url represents this host, do not replicate to yourself.
如果是本機的,不要向自己發同步請求

參考內容:Spring Cloud 第一季

最後更新:2017-08-13 22:25:01

  上一篇:go  8月10日雲棲精選夜讀:雲數據庫HBase版重磅商業化上線
  下一篇:go  雲服務器 ECS 建站教程:ECS搭建Microsoft SharePoint 2016