在微服務(wù)架構(gòu)中,注冊中心是一個必不可少的組件
前面我們搭建的注冊中心只適合本地開發(fā)使用,在生產(chǎn)環(huán)境必須搭建一個集群來保證高可用
Eureka的集群搭建很簡單,每一臺Eureka都需要在配置中指定另外N個Eureka的地址就可以
下面我們以2個節(jié)點來說明
我們有master和slaveone 2臺機器,需要做的就是:
- master注冊到slaveone上面
- slaveone注冊到master上面即可
如果是3臺機器,那么以此類推:
master注冊到slaveone,slavetwo上面
slaveone注冊到master,slavetwo上面
slavetwo注冊到master,slaveone上面
首先我們需要增加2個屬性文件,通過不同的環(huán)境來啟動不同的實例
增加applicaTIon-master.properTIes
server.port=8761
#指向你的從節(jié)點的Eureka
eureka.client.serviceUrl.defaultZone=http://用戶名:密碼@slaveone:8762/eureka/
增加applicaTIon-slaveone.properTIes
server.port=8762
#指向你的主節(jié)點的Eureka
eureka.client.serviceUrl.defaultZone=http://用戶名:密碼@master:8761/eureka/
master 和 slaveone是hostname, 可以在hosts文件中添加,直接寫IP也行
application.properties中添加下面的內(nèi)容
spring.application.name=fangjia-eureka
eureka.instance.hostname=localhost
# 由于該應(yīng)用為注冊中心,所以設(shè)置為false,代表不向注冊中心注冊自己
eureka.client.register-with-eureka=false
# 由于注冊中心的職責(zé)就是維護服務(wù)實例,他并不需要去檢索服務(wù),所以也設(shè)置為false
eureka.client.fetch-registry=false
# 關(guān)閉自我保護
eureka.server.enableSelfPreservation=false
security.basic.enabled=true
security.user.name=用戶名
security.user.password=密碼
# 指定不同的環(huán)境
spring.profiles.active=master
在A機器上啟動默認用master啟動即可,然后在B機器上加上–spring.profiles.active=slaveone啟動即可
這樣master注冊到了slaveone中,slaveone注冊到了master中,2邊的配置信息是同步的,無論誰掛掉了,應(yīng)用都能繼續(xù)使用存活的這個注冊中心。