Spring Cloud Eureka 叢集高可用

NO IMAGE
1 Star2 Stars3 Stars4 Stars5 Stars 給文章打分!
Loading...

在微服務架構中,註冊中心是一個必不可少的元件

前面我們搭建的註冊中心只適合本地開發使用,在生產環境必須搭建一個叢集來保證高可用

Eureka的叢集搭建很簡單,每一臺Eureka都需要在配置中指定另外N個Eureka的地址就可以

下面我們以2個節點來說明

我們有master和slaveone 2臺機器,需要做的就是:

master註冊到slaveone上面
slaveone註冊到master上面即可

如果是3臺機器,那麼以此類推:

master註冊到slaveone,slavetwo上面
slaveone註冊到master,slavetwo上面
slavetwo註冊到master,slaveone上面

首先我們需要增加2個屬性檔案,通過不同的環境來啟動不同的例項

增加application-master.properties

server.port=8761
#指向你的從節點的Eureka
eureka.client.serviceUrl.defaultZone=http://使用者名稱:密碼@slaveone:8762/eureka/

增加application-slaveone.properties

server.port=8762
#指向你的主節點的Eureka
eureka.client.serviceUrl.defaultZone=http://使用者名稱:密碼@master:8761/eureka/

master 和 slaveone是hostname, 可以在hosts檔案中新增,直接寫IP也行

application.properties中新增下面的內容

spring.application.name=fangjia-eureka
eureka.instance.hostname=localhost
# 由於該應用為註冊中心,所以設定為false,代表不向註冊中心註冊自己
eureka.client.register-with-eureka=false
# 由於註冊中心的職責就是維護服務例項,他並不需要去檢索服務,所以也設定為false
eureka.client.fetch-registry=false
# 關閉自我保護
eureka.server.enableSelfPreservation=false
security.basic.enabled=true
security.user.name=使用者名稱
security.user.password=密碼
# 指定不同的環境
spring.profiles.active=master

在A機器上啟動預設用master啟動即可,然後在B機器上加上–spring.profiles.active=slaveone啟動即可

這樣master註冊到了slaveone中,slaveone註冊到了master中,2邊的配置資訊是同步的,無論誰掛掉了,應用都能繼續使用存活的這個註冊中心。

具體程式碼可以參考我的github:

https://github.com/yinjihuan/spring-cloud

相關文章

程式語言 最新文章