天天看點

Eureka非分區叢集部署

1、簡介

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

2、修改hosts檔案

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

Eureka非分區叢集部署

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>      
Eureka非分區叢集部署
## 端口
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的配置檔案如下所示。

1.      
## 修改端口
server:
  port: 18882
 
## 修改應用名
spring:
  application:
    name: Eureka-02
 
## 修改執行個體hostname
eureka:
  instance:
    hostname: eureka18882.com
  client:
    service-url:
        ## defaultZone中配置其他三台伺服器位址,剔除自己
      defaultZone: http://eureka18881.com:18881/eureka/,http://eureka18883.com:18883/eureka/,http://eureka18884.com:18884/eureka/
    register-with-eureka: true
    fetch-registry: true      

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

Eureka非分區叢集部署
Eureka非分區叢集部署
server:
  port: 19991
 
spring:
  application:
    name: client-01
 
eureka:
  client:
    service-url:
      defaultZone: http://eureka18881.com:18881/eureka/,http://eureka18882.com:18882/eureka/,http://eureka18883.com:18883/eureka/,http://eureka18884.com:18884/eureka/      
Eureka非分區叢集部署

繼續閱讀