eureka集群的搭建

本次将会创建三个注册中心和一个客户端进行集群,架构图如下:

 修改本机hosts文件,创建三个域名:

 代码结构如图:

 由于三个注册中心结构都是一样的,区别在于配置文件:

#注册中心(eureka-server01.com)的yml配置
server:
  port: 8671
eureka:
  instance:
    hostname: eureka-server01.com #这里需要设置为跟http://eureka-server01.com:8671/域名一样
    instance-id: eureka-server
    prefer-ip-address: false #需要设置为false
  client:
    registerWithEureka: true #需要设置为true
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://eureka-server02.com:8672/eureka/,http://eureka-server03.com:8673/eureka/ #另外两个注册中心的注册地址
spring:
  application:
    name: server # 三个注册中心集群的名字需要一致  
    
#注册中心(eureka-server02.com)的yml配置  
  
server:
  port: 8672

eureka:
  instance:
    hostname: eureka-server02.com #这里需要设置为跟http://eureka-server02.com:8672/域名一样
    instance-id: eureka-server2
    prefer-ip-address: false #需要设置为false
  client:
    registerWithEureka: true #这里需要设置为true
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://eureka-server01.com:8671/eureka/,http://eureka-server03.com:8673/eureka/ #另外两个注册中心的注册地址
spring:
  application:
    name: server # 三个注册中心集群的名字需要一致  

#注册中心(eureka-server03.com)的yml配置  

server:
  port: 8673

eureka:
  instance:
    hostname: eureka-server03.com  #这里需要设置为跟http://eureka-server03.com:8673/域名一样
    instance-id: eureka-server3
    prefer-ip-address: false #需要设置为false
  client:
    registerWithEureka: true #需要设置为true
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://eureka-server01.com:8671/eureka/,http://eureka-server02.com:8672/eureka/ #另外两个注册中心的注册地址
spring:
  application:
    name: server # 三个注册中心集群的名字需要一致

注册中心主启动类添加注解: 

@EnableEurekaServer,如:

 注册中心的依赖:

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</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-web</artifactId>
</dependency>

</dependencies>

到此注册中心集群搭建完毕,下面搭建客户端product-client

yml配置:
server:
  port: 8674
eureka:
  client:
    serviceUrl:
      defaultZone: http://eureka-server01.com:8671/eureka/,http://eureka-server02.com:8672/eureka/,http://eureka-server03.com:8673/eureka/ #三个注册中心的地址都要加上
  instance:
    instance-id: product-client
    prefer-ip-address: true
spring:
  application:
    name: product-client

启动类:

 依赖:

<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
</dependency>
</dependencies>


注册中心和客户端都继承于父工程,父工程的pom如下:
<?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>
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.2.5.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
  </parent>
  <groupId>com.yang.xiao</groupId>
  <artifactId>cloud</artifactId>
  <packaging>pom</packaging>
  <version>1.0-SNAPSHOT</version>
  <modules>
    <module>eurekaserver</module>
    <module>eurekaserver2</module>
    <module>eurekaserver3</module>
    <module>eurekaserver3</module>
    <module>prouctClient</module>
  </modules>

  <name>cloud</name>




  <properties>
    <java.version>1.8</java.version>
    <spring-cloud.version>Hoxton.SR3</spring-cloud.version>
  </properties>


  <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>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
        <scope>test</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

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

</project>

 



猜你喜欢

转载自www.cnblogs.com/yangxiaohui227/p/12564864.html
今日推荐