文章出處

上節繼續,注冊中心單點肯定是不牢靠的,可以參考下面的方案做成注冊中心集群:

弄成3個節點,每個節點向其它節點注冊,這樣只要集群中有一個節點正常工作即可。為了方便在本機弄出這種效果,我們先修改下host文件

127.0.0.1  localhost server1 server2 server3

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

application.yml:

spring:
  application:
    name: eureka-server-cluster
  profiles:
    active: server1

application-server1.yml:

server:
  port: 8100

eureka:
  instance:
    hostname: server1
    instance-id: ${spring.application.name}:${server.port}
  client:
    service-url:
      defaultZone: http://server2:8200/eureka,http://server3:8300/eureka

application-server2.yml:

server:
  port: 8200

eureka:
  instance:
    hostname: server2
    instance-id: ${spring.application.name}:${server.port}
  client:
    service-url:
      defaultZone: http://server1:8100/eureka,http://server3:8300/eureka

application-server3.yml:

server:
  port: 8300

eureka:
  instance:
    hostname: server3
    instance-id: ${spring.application.name}:${server.port}
  client:
    service-url:
      defaultZone: http://server1:8100/eureka,http://server2:8200/eureka  

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

啟用3個實例,分別應對server1,server2,server3 這三個profile后,看下UI

可以看到,每個eureka server都向其它節點注冊了。

其它服務向eureka server集群注冊時,參考下面的配置:

server:
  port: 8001

spring:
  application:
    name: "service-provider-demo"
eureka:
  instance:
    prefer-ip-address: true
  client:
    service-url:
      defaultZone: http://localhost:8100/eureka/,http://localhost:8200/eureka/,http://localhost:8300/eureka/

 

再來看另一個問題:

注冊中心的管理界面以及服務注冊時,沒有任何認證機制,安全性比較差,如果其它服務惡意注冊一個同名服務,但是實現不同,可能就有風險了,可以參考下面的配置改進:

先添加:compile 'org.springframework.boot:spring-boot-starter-security' 依賴,然后在eureka server的application.yml中增加

security:
  basic:
    enabled: true
  user:
    name: yjmyzz #用戶名
    password: 123456 #密碼

這樣就添加了1個用戶名及密碼(注:其原理就是spring-security,熟悉spring-security的朋友,也可以改成把用戶名/密碼存儲在數據庫中)

啟動后,再瀏覽eureka server就用輸入用戶名,密碼了。

 

然后其它服務注冊時,相應的defautZone也要改成類似:

defaultZone: http://yjmyzz:123456@server1:8100/eureka,http://yjmyzz:123456@server2:8200/eureka 這種格式。  


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()