高可用的eureka服務註冊中心
簡單的介紹
在我們平時的開發中,因爲是分佈式的系統,我們需要考慮到任何一個系統都應該具備高可用。而高可用是指,當我們某個服務器宕機了,我們還能夠正常的去訪問我們的服務,這就需要搭建集羣的方式去實現該效果,當master宕機了,我們的slave可以立即取代master,來提供服務,這就是高可用。
爲什麼我們需要搭建高可用的服務註冊中心
在上一個博客中,我搭建了一個eureka服務註冊中心,它能夠正常工作,能夠提供它的功能,也可以滿足我們的需求。但是在我們實際開發中,如果採用單機版的eureka服務註冊中心,如果運行這個服務註冊中心的服務器突然發生問題了,或者程序崩了,那我們所有的分佈式服務的提供者,消費者都不能夠正常的去執行相應的邏輯,雖然我們可以採用斷路器來解決該問題,但是並不能提供一個正確的結果。所以,我們需要搭建一個集羣版的服務註冊中心。
準備
我先搭建3個節點的服務註冊中心,一個master,兩個slave來搭建相應的服務註冊中心
搭建
搭建master服務註冊中心
我先創建一個eureka-master的項目,然後在pom.xml文件中引入以下依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency>
在master項目的application.properties配置文件中配置如下
spring.application.name=master server.port=81 eureka.instance.hostname=master eureka.client.service-url.defaultZone=http://slave01:82/eureka/,http://slave02:83/eureka/ eureka.client.register-with-eureka=false eureka.client.fetch-registry=false
同樣的步驟創建slave01,slave02項目
slaveo1的配置文件如下spring.application.name=slave01 server.port=82 eureka.instance.hostname=slave01 eureka.client.service-url.defaultZone=http://slave02:83/eureka/,http://master:81/eureka/ eureka.client.register-with-eureka=false eureka.client.fetch-registry=false
修改windows的hosts文件
127.0.0.1 master 127.0.0.1 slave01 127.0.0.1 slave02
依次啓動程序,然後隨便訪問一個服務註冊中心,效果圖如下所示
我們可以看到集羣搭建成功了!!