一、前言
在上一篇部落格中,小編向大家介紹了springcloud的注冊中心——Eureka,在微服務這種分布式架構下,我們需要充分考慮故障的發生,是以要保證每個節點都要是高可用的。對微服務是這樣的,同樣注冊中心也不能是單節點的。要保證高可用,是以也要對注冊中心搭建叢集。
二、高可用Eureka
Eureka的高可用其實就是将自己作為服務向其他注冊中心注冊自己,這樣形成一個互相注冊的注冊中心叢集,達到高可用。
下面我們搭建兩台互相注冊的注冊中心叢集。
借鑒前面搭建的Eureka,這裡我們搭建兩台,修改配置檔案:
EurekaServer1的配置檔案:注冊到2上
server:
port:
spring:
application:
name: eurekaserver
eureka:
instance:
hostname: peer1
client:
serviceUrl:
defaultZone: http://peer2:2222/eureka/
EurekaServer2的配置檔案:注冊到1上
server:
port:
spring:
application:
name: eurekaserver
eureka:
instance:
hostname: peer2
client:
serviceUrl:
defaultZone: http://peer1:1111/eureka/
注意:因為我們代碼中寫的是peer1和peer2,這些是服務的名字,在電腦上預設沒有這個名字,是以需要進行配置,否則讀不出伺服器。
- Linux 需要再/etc/hosts檔案對peer1和peer2進行轉換;
- windows 需要C:\Windows\System32\drivers\etc 下的hosts檔案進行轉換

提供者配置檔案修改:
server:
port:
eureka:
client:
serviceUrl:
defaultZone: http://peer1:1111/eureka/,http//peer2:2222/eureka/
spring:
application:
name: clientb
提供者的配置檔案中添加了所有的注冊中心。
下面我們啟動所有的注冊中心和提供者:
注冊中心 http://localhost:1111/:
注冊中心 http://localhost:2222/ :
          。從圖中我們可以看出,提供者同時候注冊到了注冊中心1和注冊中心2上,然後我們把注冊中心二關閉後,發現提供者依舊在注冊中心1上達到了高可用的狀态。
#三,小結< font size = 3 >&nbsp; &NBSP; &NBSP; &NBSP; &NBSP; &NBSP;高可用是分布式微服務中非常看重的,是以設計還是要不錯的,這個要有高可用的思想,多多使用。