SpringCloud-Eureka配置优化

82 阅读2分钟

配置说明

服务端

eureka:
  server:
    # 自我保护:表示即使服务心跳断开,也不会立即剔除该服务,用于保护网络波动造成的服务心跳断开
    # 自我保护开启条件:1.enable-self-preservation = true 2.在续约期最后一分钟内,已经续约的服务数量小于 renewal-percent-threshold 这个比例
    enable-self-preservation: true
    # 续约阈值,和自我保护相关
    renewal-percent-threshold: 0.85
    # server剔除过期服务的时间间隔
    eviction-interval-timer-in-ms: 1000
    # 是否开启readOnly读缓存
    use-read-only-response-cache: true
    # readOnly 刷新时间间隔
    response-cache-update-interval-ms: 1000


  client:
    # 是否可以被其他服务发现(作为注册中心不用被其他服务发现)
    register-with-eureka: false
    # 是否拉取注册表信息(作为注册中心不用拉取注册表信息)
    fetch-registry: false
    # 配置注册中心地址,用于集群之间数据同步
    serviceUrl:
      defaultZone: http://127.0.0.1:7901/eureka/,http://127.0.0.1:7902/eureka/,http://127.0.0.1:7903/eureka/

客户端

eureka:
  client:
    # 是否开启 eureka 客户端
    enabled: true
    # 注册中心地址,优先访问第一个地址,如果第一个访问失败了才会访问后面一个,最多只能访问三个(Eureka代码里写死的)
    service-url:
      defaultZone: http://localhost:7900/eureka/,http://localhost:7901/eureka/,http://localhost:7902/eureka/

    # 拉取注册表时间间隔
    registry-fetch-interval-seconds: 30

  instance:
    # 续约间隔(心跳间隔)
    lease-renewal-interval-in-seconds: 30

配置优化

1.减少服务上线、下线时间延迟
# 修改续约时间间隔和拉取注册表时间间隔:
registry-fetch-interval-seconds: 20
lease-renewal-interval-in-seconds: 20
2.自我保护的选择

自我保护是为了应对网络波动,提搞系统稳定性设置的。 所以如果网络波动大,服务数量多则开启。 因为如果服务数量太少,那么每台服务占比太大,很容易达到阈值

3.service-url 乱序配置

因为客户端在通过 service-url 访问注册中心时,总是先访问第一个,除非第一个访问失败才会访问下一个。

因此每台客户端都配置同样顺序的 service-url 的话,那么第一个注册中心会承受很大压力