微服务基础----Eureka配置心跳和剔除不可用服务

1、注意

    改配置建议在开发和测试环境下使用,尽量不要在生产环境使用。

2、背景

    由于Eureka拥有自我保护机制,当其注册表里服务因为网络或其他原因出现故障而关停时,Eureka不会剔除服务注册,而是等待其修复。这是AP的一种实现。

3、解决方案

Eureka server配置文件:

eureka:
  server:
    enable-self-preservation: false #关闭自我保护
    eviction-interval-timer-in-ms: 4000 #清理间隔(单位毫秒,默认是60*1000)

 Eureka client配置文件:

eureka:
  instance:
    #服务过期时间配置,超过这个时间没有接收到心跳EurekaServer就会将这个实例剔除
    lease-expiration-duration-in-seconds: 30   
    #服务刷新时间配置,每隔这个时间会主动心跳一次
    lease-renewal-interval-in-seconds: 10

4、Eureka 心跳配置例子

      A、Server服务端

server:
  port: 8761
eureka:
  client:
    #是否在eureka服务器上注册自己的信息以提供其他服务发现,默认为true
    register-with-eureka: false
    #客户端是否获取eureka服务器注册表上的注册信息,默认为true
    fetch-registry: false
  server:
    #开启自我保护模式
    enable-self-preservation: false
    #清理无效节点,默认60*1000毫秒,即60秒
    eviction-interval-timer-in-ms: 5000

      B、Client客户端

spring:
  application:
   name: spring-A-client
eureka: 
  instance:
    #eureka客户端需要多长时间发送心跳给eureka服务器,表明他仍然活着,默认30秒
    lease-renewal-interval-in-seconds: 5
    #eureka服务器在接收到实例的最后一次发出的心跳后,需要等待多久才可以将此实例删除
    lease-expiration-duration-in-seconds: 10
    metadata-map: 
      company-name: eureka
  client: 
    #表示eureka client间隔多久去拉取服务器注册信息,默认为30秒
    registry-fetch-interval-seconds: 30
    #表示eureka client间隔多久去拉取服务器注册信息,默认为30秒
    registry-fetch-interval-seconds: 30
    serviceUrl: 
      defauiltZone: http://localhost:8761/eureka/
logging:
  level: 
    com.netflix: DEBUG

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值