Eureka集群配置

Eureka集群配置

最近复习了一下Eureka,集群的配置文件记录一下~

EurekaServer

启动类加入注解

@SpringBootApplication
@EnableEurekaServer

节点1配置文件

application.yml

server:
  port: 7001

spring:
  profiles:
    active: local
  application:
    name: cloud-eureka-server7001

application-local.yml

eureka:
  instance:
    # 集群节点的hostname不能一致
    hostname: eureka1.xxx.cn
  client:
    # 表示是否从Eureka Server获取注册的服务信息
    fetch-registry: false
    # 表示是否将自己注册到Eureka Server
    register-with-eureka: false
    service-url:
      # 注册中心的地址列表
      defaultZone: http://eureka2.xxx.cn:7002/eureka
  server:
    #关闭自我保护机制,保证不可用服务立即被踢出
    enable-self-preservation: false
    # 每隔多久清理一次没有心跳的服务
    eviction-interval-timer-in-ms: 2000

节点2配置文件

application.yml

server:
  port: 7002

spring:
  profiles:
    active: local
  application:
    name: cloud-eureka-server7002

application-local.yml

eureka:
  instance:
    # 集群节点的hostname不能一致
    hostname: eureka2.xxx.cn
  client:
    # 表示是否从Eureka Server获取注册的服务信息
    fetch-registry: false
    # 表示是否将自己注册到Eureka Server
    register-with-eureka: false
    service-url:
      # 注册中心的地址列表
      defaultZone: http://eureka1.xxx.cn:7001/eureka
  server:
    #关闭自我保护机制,保证不可用服务立即被踢出
    enable-self-preservation: false
    # 每隔多久清理一次没有心跳的服务
    eviction-interval-timer-in-ms: 2000

如果节点是三个或以上

配置方式和上面一样,只需要修改defaultZone,配置除本身外其他的EurekaServer即可。

EurekaClient

启动类加入注解

@SpringBootApplication

试了一下,EurekaClient只要引入了EurekaClient的依赖,是可以不加@EnableEurekaClient注解的。。。

原因:https://blog.csdn.net/sunxy24/article/details/105686511

配置文件

application.yml

server:
  port: 8001

spring:
  profiles:
    active: local
  application:
    name: cloud-payment-service

application-local.yml

eureka:
  client:
    # 是否将自己注册到注册中心 默认为true
    register-with-eureka: true
    # 是否从EurekaServer抓取已有注册信息,默认为true。如果是集群部署 必须设置为true,否则ribbon无法负载
    fetch-registry: true
    service-url:
      # 注册中心的地址列表 多个用逗号隔开
      defaultZone: http://eureka2.xxx.cn:7002/eureka,http://eureka1.xxx.cn:7001/eureka
  instance:
    # 实例的ip
    ip-address: 127.0.0.1
    # 实例编号
    instance-id: payment8001
    # 调用方是否显示ip
    prefer-ip-address: true
    # 每隔多少秒心跳(续约)一次
    lease-renewal-interval-in-seconds: 1
    # 表示Eureka Server等待心跳的间隔,和Eureka服务端配置一致即可
    lease-expiration-duration-in-seconds: 2

客户端有多个节点时

和单机配置一致,只需保证

1、spring.application.name一致

2、eureka.instance.instance-id不一致

原文地址:https://www.cnblogs.com/zhangruifeng/p/15730828.html