天天看點

Eureka非分區叢集部署

1、簡介

非分區叢集部署是Eureka一種簡單的叢集部署方式,這種方式下叢集中的Eureka Server不分區。通常情況下,如果我們的Eureka伺服器都在同一個機房中,可以采取這種方式叢集部署。

2、修改hosts檔案

由于我在Windows環境下啟動多個Eureka服務模拟叢集部署,是以先修改C:\Windows\System32\drivers\etc\hosts檔案,以便于正确的域名尋址(不修改直接使用127.0.0.1也一樣)

127.0.0.1       eureka18881.com

127.0.0.1       eureka18882.com

127.0.0.1       eureka18883.com

127.0.0.1       eureka18884.com

3、Eureka Server搭建

我這裡一共搭建四個Eureka Server,為了友善看清楚整個Eureka Server的叢集方式和啟動過程,我搭建了四個Eureka Server,分别是Eureka-01、Eureka-02、Eureka-03、Eureka-04。如果覺得服務過多可以建立不同的profile,在啟動Eureka Server時指定不同的profile即可。

第一步:引入pom依賴,我這裡采用spring-cloud版本為Greenwich.SR1

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0"

         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0

http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>com.liziba</groupId>

    <artifactId>spring-cloud-netflix-demo</artifactId>

    <packaging>pom</packaging>

    <version>1.0-SNAPSHOT</version>

    <modules>

        <module>Eureka-01</module>

        <module>Eureka-02</module>

        <module>Eureka-03</module>

        <module>Eureka-04</module>

    </modules>

    <properties>

        <spring-cloud.version>Greenwich.SR1</spring-cloud.version>

    </properties>

    <dependencies>

        <dependency>

            <groupId>org.springframework.cloud</groupId>

            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>

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

</project>

第二步:建立啟動類Application_EurekaServer01.java,使用@EnableEurekaServer注解開啟Eureka Sever

/**

 * <p>

 *  EurekaServer01啟動類

 * </p>

 *

 * @Author: Liziba

 * @Date: 2021/10/30 10:46

 */

@SpringBootApplication

@EnableEurekaServer

public class Application_EurekaServer01 {

    public static void main(String[] args) {

        SpringApplication.run(Application_EurekaServer01.class, args);

    }

}

第三步:建立application.yml/application.properties配置檔案,在如下配置檔案中配置類目前Eureka Server的端口資訊、服務名稱、執行個體位址、叢集位址數組、是否注冊本身和擷取注冊資訊,在這裡我将Eureka Server本身也注冊到了目前Eureka Server中。

## 端口

server:

  port: 18881

## 服務名稱

spring:

  application:

    name: Eureka-01

## Eureka 配置資訊

eureka:

  instance:

    hostname: eureka18881.com

  client:

    service-url:

      defaultZone:

http://eureka18882.com:18882/eureka/,http://eureka18883.com:18883/eureka/,http://eureka18884.com:18884/eureka/

    register-with-eureka: true

    fetch-registry: true

第四步:再建立三個相同的應用,修改對應端口資訊、服務名稱、叢集位址,比如Application_EurekaServer02的配置檔案如下所示。

## 修改端口

  port: 18882

## 修改應用名

    name: Eureka-02

## 修改執行個體hostname

    hostname: eureka18882.com

     ## defaultZone中配置其他三台伺服器位址,剔除自己

http://eureka18881.com:18881/eureka/,http://eureka18883.com:18883/eureka/,http://eureka18884.com:18884/eureka/

第五步:服務啟動,依次啟動四個Eureka Server,等服務均啟動成功後,通路Eureka Dashboard,檢視叢集資訊。每個Eureka Dashboard中均可以看到四台服務注冊資訊展示在Instances currently registered with Eureka中,服務注冊的名字Application 是配置檔案中提供的spring.application.name應用配置名稱;DS Replicas中展示的是defaultZone叢集資訊,展示的名稱是對應Eureka Server配置檔案中配置的eureka.instance.hostname

Eureka非分區叢集部署

4、Eureka Client搭建

Eureka Server未進行分區劃分,是以Eureka Client也無需考慮Eureka Server中分區相關配置。

第一步:建立Client服務,引入Eureka Client依賴

<dependency>

    <groupId>org.springframework.cloud</groupId>

    <artifactId>spring-cloud-netflix-eureka-client</artifactId>

</dependency>

第二步:建立啟動類,使用@EnableDiscoveryClient開啟服務發現

 *      用戶端應用啟動

 * @Date: 2021/10/30 15:34

@EnableDiscoveryClient

public class Application_client01 {

        SpringApplication.run(Application_client01.class, args);

第三步:建立配置檔案,在配置檔案中指定叢集服務位址

  port: 19991

    name: client-01

http://eureka18881.com:18881/eureka/,http://eureka18882.com:18882/eureka/,http://eureka18883.com:18883/eureka/,http://eureka18884.com:18884/eureka/

第四步:通過Eureka Dashboard檢視服務注冊資訊,可以看到每個Eureka Server上都會有client-01服務注冊上去了

Eureka非分區叢集部署