欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Eureka服务配置与进阶

程序员文章站 2022-07-05 14:33:32
1. Eureka服务配置与进阶 1.1. 主要配置 1.1.1. 服务端(eureka.server. ) 1. 默认true,启用注册中心的自保护机制,Eureka如果统计到15分钟之内损失 15%的微服务心跳,则会触发自保护机制,不再提出服务提供者 2. 默认1000 60 5,在Eureka ......

1. eureka服务配置与进阶

1.1. 主要配置

1.1.1. 服务端(eureka.server.*)

  1. enableselfpreservation默认true,启用注册中心的自保护机制,eureka如果统计到15分钟之内损失>15%的微服务心跳,则会触发自保护机制,不再提出服务提供者
  2. waittimeinmswhensyncempty默认1000605,在eureka服务器获取不到集群里对等服务器上的实例时,需要等待的时间,单位为毫秒,单机开发模式建议设置为0

1.1.2. 客户信息配置(eureka.client.*)

  1. serviceurl指定服务注册中心,类型为hashmap,并设置有一组默认值,默认key为defaultzone;默认的value为http://localhost:8761/eureka,如果服务注册中心为高可用集群时,多个注册中心地址以逗号分隔。如果服务注册中心加入了安全验证,这里配置的地址格式为http://<username>:<password>@localhost:8761/eureka
  2. fetchregistry是否从eureka服务端获取注册信息,默认true
  3. registryfetchintervalseconds从eureka服务端获取注册信息的间隔时间,单位为秒,默认30
  4. registerwitheureka是否要将自身的实例信息注册到eureka服务端,默认true

1.1.3. 实例级别配置(eureka.instance.*)

  1. leaserenewalintervalinseconds,eureka客户端向服务端发送心跳的时间间隔,单位为秒,默认30
  2. leaseexpirationdurationinseconds,eureka服务端在收到最后一次心跳之后等待的过期时间上线,单位为秒。超过该时间没有收到心跳,则服务端会将该服务实例从服务清单中剔除,从而禁止服务调用请求被发送到该实例上
  3. appname服务名,默认取spring.application.name的配置值,如果没有则为unknown
  4. hostname主机名,不配置的时候将根据操作系统的主机名来获取
  5. instance-id注册到eureka的实例id,推荐${spring.cloud.client.ip-address}:${spring.application.name}:${server.port}

1.1.4. ribbon主要配置项({svc}.ribbon.*)

  1. connectiontimeout连接超时时间,默认值1000ms
  2. readtimeout读取超时时间,默认1000ms
  3. serverlistrefreshinterval刷新服务列表源的间隔时间,默认30s
  4. nfloadbalancerclassname定制iloadbalancer实现,默认com.netflix.loadbalancer.zoneawareloadbalancer
  5. nfloadbalancerruleclassname定制irule实现,默认com.netflix.loadbalancer.zoneavoidancerule
  6. nfloadbalancerpingclassname定制iping,默认com.netflix.loadbalancer.dummyping
  7. niwsserverlistclassname定制serverlist,默认com.netflix.loadbalancer.configurationbasedserverlist
  8. serverlistupdateclassname定制serverlistupdater,默认com.netflix.loadbalancer.pollingserverlistupdater
  9. niwsserverlistfilterclassname定制serverlistfilter,默认com.netflix.loadbalancer.zonepreferenceserverlistfilter

1.2. eureka自保护模式

  1. 避免网络分区或抖动导致的,服务端与eureka通信不成功,但实际服务端是存活的

1.3. 心跳检查和应用检测

  1. 实例会定期默认30s,向eureka server发送心跳式健康检查,把自己的状态服务实例信息上报上去
  2. 定制注册eurekaclient#registerheathcheck
  3. spring cloud配置eureka.client.healthcheck.enable=true,eurekahealthcheckhandler中回去执行检查,diskspacehealthindicator,refreshscopehealthindicator,hystrixhealthindicator
  4. 获取应用信息get /eureka/apps/order-service,获取xml信息结果
  5. 实例信息更新延迟的地方有哪些
    1. 注册延迟(30s)
    2. eureka服务响应延迟(30s)
    3. eureka客户端更新延迟(30s)
    4. ribbon服务列表更新延迟(30s)
    5. 所以最大可能又2分钟延迟

1.4. 蓝绿发布

  1. 发布工具拉出
    Eureka服务配置与进阶

1.5. 服务注册中心对比

Eureka服务配置与进阶