1. 程式人生 > >Spring Cloud的Eureka註冊中心叢集搭建

Spring Cloud的Eureka註冊中心叢集搭建

Spring Cloud也包含了許多的子專案 , 下面等下要使用的Eureka只是其中的一個子專案 

Eureka的功能有點類似於我們之前寫過的zookeeper,它是一個服務治理元件,包含了服務註冊中心、服務註冊與發現機制。

Eureka的使用非常簡單 

我們首先在idea裡建立一個maven專案 , 等下方便我們進行操作

服務治理元件  我們需要弄服務註冊中心、服務註冊(提供者)與發現機制(消費者)三個Spring Boot專案,我把他們都放在maven裡進行管理 ,具體步驟如下:

先在maven專案上在去新建一個module ,作為我們的服務註冊中心(eureka)

新建的module我們選擇Spring Boot專案 , 勾選如下依賴

 

具體依賴如下

 <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.5.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.liy</groupId>
    <artifactId>eureka</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>eureka</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
        <spring-cloud.version>Greenwich.SR1</spring-cloud.version>
    </properties>

    <dependencies>
        <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>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

這個服務中心 ,我們只需要在配置檔案中配置一下 , 然後在啟動類裡使用一個註解 ,然後啟動專案即可

application.properties

#埠號
server.port=1111
spring.application.name=eureka
#是否向註冊中心(eureka)註冊 ,不必向自己註冊 ,除非是搭建一個註冊中心的叢集,那麼這裡就要為true了
eureka.client.register-with-eureka=false
#是否允許它去獲取其他的註冊的服務,因為他是註冊中心,所以不需要去獲取的
eureka.client.fetch-registry=false

啟動類裡添加個@EnableEurekaServer

@SpringBootApplication
@EnableEurekaServer
public class EurekaApplication {

    public static void main(String[] args) {
        SpringApplication.run(EurekaApplication.class, args);
    }

}

啟動專案看到如下頁面 , 即註冊中心ok了(下面截圖只截取了頭部)

 

如果是要搭建這個註冊中心的叢集的話 ,也是相當簡單的 , 

複製這個application.properties配置檔案的兩份

application-peer1.properties

server.port=1111
spring.application.name=eureka
eureka.instance.hostname=peer1
#搭建eureka叢集 ,開啟向eureka註冊
eureka.client.register-with-eureka=true
eureka.client.fetch-registry=false
#搭建eureka叢集,那麼需要註冊到eureka去,這是註冊的eureka的路徑
eureka.client.service-url.defaultZone=http://peer2:1112/eureka

application-peer2.properties

server.port=1112
spring.application.name=eureka
eureka.instance.hostname=peer2
eureka.client.register-with-eureka=true
eureka.client.fetch-registry=false
#互相註冊,保持訊息服務同步
eureka.client.service-url.defaultZone=http://peer1:1111/eureka

還需要在 本機的C:\Windows\System32\drivers\etc  路徑下去到 hosts 檔案裡去加上下面圖片上的兩行

這是在一個Spring Boot專案裡 ,怎麼執行不同的配置檔案呢 , 我們把專案進行打包

選擇左邊的maven ,然後選擇要打包的Spring Boot專案 ,雙擊如圖的package ,就開始打包了  ,如下打包成功

 

然後我們點選Terminal

進入打包的目錄裡去

分別啟動兩個

 

 

如果你只啟動了一個 ,或者另一個還沒有啟動起來 , 那麼那個已經啟動了的會一直報錯

,

 

你只需把另一個啟動即可  ,兩個啟動成功

 

這樣我的註冊中心eureka叢集就就搭建好了 , 下一篇我們講提供者(provider)以及提供者叢集和消費者(