SpringCloud(2)-配置高可用的eureka服務註冊中心

高可用的eureka服務註冊中心

簡單的介紹

在我們平時的開發中,因爲是分佈式的系統,我們需要考慮到任何一個系統都應該具備高可用。而高可用是指,當我們某個服務器宕機了,我們還能夠正常的去訪問我們的服務,這就需要搭建集羣的方式去實現該效果,當master宕機了,我們的slave可以立即取代master,來提供服務,這就是高可用。

爲什麼我們需要搭建高可用的服務註冊中心

在上一個博客中,我搭建了一個eureka服務註冊中心,它能夠正常工作,能夠提供它的功能,也可以滿足我們的需求。但是在我們實際開發中,如果採用單機版的eureka服務註冊中心,如果運行這個服務註冊中心的服務器突然發生問題了,或者程序崩了,那我們所有的分佈式服務的提供者,消費者都不能夠正常的去執行相應的邏輯,雖然我們可以採用斷路器來解決該問題,但是並不能提供一個正確的結果。所以,我們需要搭建一個集羣版的服務註冊中心。

準備

我先搭建3個節點的服務註冊中心,一個master,兩個slave來搭建相應的服務註冊中心

搭建

搭建master服務註冊中心
  1. 我先創建一個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>
    
  2. 在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
    
  3. 同樣的步驟創建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
    
  4. 修改windows的hosts文件

    127.0.0.1       master
    127.0.0.1       slave01
    127.0.0.1       slave02
    
  5. 依次啓動程序,然後隨便訪問一個服務註冊中心,效果圖如下所示
    這裏寫圖片描述
    我們可以看到集羣搭建成功了!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章