专栏首页Java工程师成长之路Eureka服务配置与进阶

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. 发布工具拉出

1.5. 服务注册中心对比

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • docker 实现redis集群搭建

    摘要:接触docker以来,似乎养成了一种习惯,安装什么应用软件都想往docker方向做,今天就想来尝试下使用docker搭建redis集群。

    老梁
  • dubbo实用知识点总结(二)

    老梁
  • hystrix降级初步学习

    老梁
  • 【进阶篇】命令行参数细节描述

    编写|PaddlePaddle 排版|wangp 虽然PaddlePaddle看起来包含了众多参数,但是大部分参数是为开发者提供的,或者已经在集群提交环境中自动...

    用户1386409
  • 微信小程序继续入坑指南

    上方完成了一次列表渲染,其中index为默认的遍历到的数组的小标,从0开始,item为当前遍历到的数组对应下标的元素。

    mySoul
  • Android 字节跳动算法题:给定ViewGroup打印其内所有的View

    在 Android 下,UI 的布局结构,对标到数据结构中,本质就是一个由 View 和 ViewGroup 组成的多叉树结构。其中 View 只能作为叶子节点...

    Android技术干货分享
  • Tomcat7优化

    用了很久的Tomcat,没怎么看过它的优化,今天抽出时间研究了下,将内容记录下。 首先,是客户端访问tomcat的一个过程,如图所示: ? 图中间虚线框部分是...

    Java帮帮
  • Android自定义控件总结

    六月的雨
  • 内存管理总结-autoreleasePool

    用户1941540
  • Android 开发艺术探索笔记一

    ViewRoot对应于ViewRootImpl类,它是连接windowmanager和DecorView的纽带,View的三大流程均是通过ViewRoot来完成...

    Yif

扫码关注云+社区

领取腾讯云代金券