Eureka注册服务中心,Feign服务调用,Hystrix熔断器的一些详细配置介绍

1.eureka管理机制
  1. 心跳检测
    客户端会在每30秒发送信息刷新服务端注册信息,表示续约,若在指定默认90秒钟没有向服务器发送信息,则从注册表中剔除
    控制发送心跳间隔 eureka.instance.lease-renew-interval-in-seconds 默认30秒
    控制超时清理间隔 eureka.instance.lease-expiration-duration-in-seconds 默认90秒
  2. 自我保护
    服务端定期60秒检测注册表,清理无效服务点,但由于server开启了自我保护机制,即使有无效节点也不会剔除。
    控制清理无效节点间隔 eureka.server.eviction-interval-timer-in-ms 默认60秒
    控制开启/关闭自我保护 eureka.server.enable-self-preservation 默认true
  3. 服务注册列表
    通过心跳机制 服务端 定时更新注册列表 , 客户端页周期性通过http请求去服务端同步最新的注册表的信息,并缓存到本地默认30秒
    同步最新注册表信息到本地间隔 eureka.client.registry-fetch-interval-seconds
2.Eureka配置介绍
配置作用配置示例
euureka.client.service-url.defaultZone注册地址http://localhost:8089/eureka/
euureka.client.register-with-eureka是否注册到注册地址的注册中心(默认true)false
euureka.client.fetch-register是否同步抓取注册服务的信息(默认true)false
eureka.instance.prefer-ip-address使用Ip地址注册,而如果不配置就是机器的主机名。true
eureka.instance.instance-id向注册中心注册服务id${spring.cloud.client.ip-address}:${ip-address}:${server.prot}
eureka.instance.lease-renewal-interval-in-seconds发送心跳时间的间隔(默认30s)5
eureka.instance.lease-expiration-duration-in-seconds续约时间到期时间(默认90s)10
eureka.server.enable-self-preservation自我保护机制(默认true 开启)false
eureka.server.eviction-interval-timer-in-ms设置剔除服务间隔4000(毫秒)
这些配置的默认值 都是eureka经过测试的精确值,建议上线不要修改,而这些配置是我们测试以及开发的时候更方便我们的。
3.Feign配置介绍
springcloud版本从E开始 才支持Feign自定义设置
配置作用配置示例
feign.client.config.feignName这里的feignName是你要远程调用的FeignClient的名称employee
feign.client.config.feignName.connectTimeout建立连接的超时时长5000
feign.client.config.feignName.readTimeout读取的超时时长5000
feign.client.config.feignName.loggerLevelFeign的日志级别FULL/NONE,BASIC,HEADERS
feign.client.config.feignName.errorDecoderFeign的错误解码器com.example.SimpleErrorDecoder
feign.client.config.feignName.retryer配置重试com.example.SimpleRetryer
feign.client.config.feignName.requestInterceptor添加请求组拦截com.example.Interceptor
feign.client.config.feignName.decode404配置熔断不处理404异常false
feign.compression.request.enabled开启请求压缩true
feign.compression.response.enabled开启响应压缩true
feign.compression.request.mime-types触发压缩的数据类型text/html,application/xml,application/json
feign.compression.request.mine-request-size触发压缩的大小上限2048
feign支持对响应和请求进行GZIP的压缩,以减少通信中的性能损耗
feign日志输出的说明
  • NONE: 不输出日志,节省性能,生产环境推荐
  • BASIC: 适用于生产环境追踪问题
  • HEADERS: 在BASIC的基础上记录请求和响应头信息
  • FULL: 记录所有
4.熔断器的三个状态

在这里插入图片描述

当熔断器打开状态,微服务所有的远程调用服务将降级处理,直到熔断器关闭
5.熔断器的隔离策略
- 线程池隔离策略

使用一个线程池来存储当前请求,线程池对请求做处理,设置任务返回处理超时时间,堆积的请求堆积入线程池队列,这种方式需要为每个依赖的服务申请线程池,有一定的资源消耗,好处是可以对突发流量(当流量红枫来临时,处理不完的请求可将数据存储到线程池队列中慢慢处理)

- 信号量隔离策略

使用一个原子计数器来记录当前有多少个线程在运行,请求来的时候先判断计数器中的数值,若超过设置的数值则丢弃请求,否则计数器+1,请求返回计数器-1,这种是严格控制线程立即返回模式,无法应对突发流量,(当流量红枫来临时,处理不完的请求会直接返回)

6.Hystrix配置介绍
配置作用配置示例
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds默认连接超时时间1秒,1秒若没返回触发降级处理3000
hystrix.command.default.circuitBreaker.requestVolumeThreshold触发熔断的最小请求次数20(默认)
hystrix.command.default.circuitBreaker.sleepWindowInMilliseconds熔断后多少秒尝试请求10000(默认)
hystrix.command.default.circuitBreaker.errorThresholdPrecentage触发熔断的失败请求的最小占比50(默认)
hystrix.command.default.execution.isolation.strategy配置隔离策略ExecutionIsolationStrategy.SEMAPHORE(信号量)/ ExecutionIsolationStrategy.THREAD(线程池)
hystrix.command.default.execution.isolation.maxConcurrentRequests最大信号量上限1000





一键查询淘宝/拼多多内部优惠券,每日大额外卖红包,购物省钱的宝藏工具
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值