0


四、Eureka注册中心集群配置

需要两个eureka server项目,之前已经有一个springcloud-eureka

1、在springcloud项目下新建一个聚合项目springcloud-eureka2

2、修改springcloud-eureka2的pom文件,引入eureka-server依赖

<?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">
    <parent>
        <artifactId>springcloud</artifactId>
        <groupId>com.chen</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>springcloud-eureka2</artifactId>

    <name>springcloud-eureka2</name>
    <!-- FIXME change it to the project's website -->
    <url>http://www.example.com</url>

    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
        </dependency>
    </dependencies>
</project>

3、增加springcloud-eureka2的启动类,开启注解@EnableEurekaServer

@EnableEurekaServer
@SpringBootApplication
public class EurekaApp2 {
    public static void main(String[] args) {
        SpringApplication.run(EurekaApp2.class, args);
    }
}

4、在springcloud-eureka2添加application.yml文件

server:
#设置服务端口号
  port: 8060

spring:
  application:
#设置应用名称
    name: server-eureka2

eureka:
  client:
#注册中心同步注册信息,默认true
    fetch-registry: true
#将自己注册到注册中心,默认为true
    register-with-eureka: true
    service-url:
      defaultZone: http://localhost:8090/eureka/
  server:
#  关闭自我保护机制,保证不可用的服务及时被剔出
    enable-self-preservation: false
#  如果2秒内没有收到某个服务的心跳,那就剔出该微服务,单位为毫秒ms
    eviction-interval-timer-in-ms: 2000

5、修改springcloud-eureka的application.yml文件

server:
#设置服务端口号
  port: 8090

spring:
  application:
#设置应用名称
    name: server-eureka

eureka:
  client:
#注册中心同步注册信息,默认true
    fetch-registry: true
#将自己注册到注册中心,默认为true
    register-with-eureka: true
    service-url:
      defaultZone: http://localhost:8060/eureka/
  server:
#  关闭自我保护机制,保证不可用的服务及时被剔出
    enable-self-preservation: false
#  如果2秒内没有收到某个服务的心跳,那就剔出该微服务,单位为毫秒ms
    eviction-interval-timer-in-ms: 2000

相互注册:8090端口注册到8060端口上,8060端口注册到8090端口上

6、运行两个Eureka Server项目的启动类

7、访问Eureka Server1: http://localhost:8090/

8、访问Eureka Server2: http://localhost:8060/

可以看到两个注册中心进行了相互注册

9、客户端配置两个注册中心(非必须)

在启动两个注册中心时,我们设置了注册中心互相同步和注册中心注册自己,所以只要启动的注册中心还有一个保持运行,注册中心依然可以对外提供服务,从而保持了注册中心的高可用,当然客户端也可以将服务自己同时注册到注册中心集群上,这样只需要修改客户端的配置即可,也可以做到注册中心的高可用

如server-order的配置文件修改如下,将自己同时注册到8090和8060端口的Eureka注册中心上

server:
  port: 9071

spring:
  application:
    name: server-order

eureka:
  instance:
  # 使用ip地址作为host,而不是机器号/电脑名称
    prefer-ip-address: true
#    Eureka客户端向注册中心发送心跳的时间间隔是1s,默认是30s
    lease-renewal-interval-in-seconds: 1
#    Eureka服务端在收到一次心跳后等待时间上限是2s,默认是90s
#    超时将剔出该微服务,也可以在Eureka服务端进行设置
    lease-expiration-duration-in-seconds: 2
  client:
    service-url:
      defaultZone: http://localhost:8090/eureka/,http://localhost:8060/eureka/

本文转载自: https://blog.csdn.net/Tony_chenph/article/details/130648998
版权归原作者 Tony_chenph 所有, 如有侵权,请联系我们删除。

“四、Eureka注册中心集群配置”的评论:

还没有评论