微服务设计指导-hystrix参数介绍

Posted TGITCIC

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微服务设计指导-hystrix参数介绍相关的知识,希望对你有一定的参考价值。

连接nacos的配置

# nacos 服务地址
spring.cloud.nacos.discovery.server-addr=$nacos-server-addr
# 注册到nacos上的命名空间
spring.cloud.nacos.discovery.namespace=$nacos-namespace
# 注册到nacos上的服务名称 poolName
spring.cloud.nacos.discovery.service=back-finance-web
# nacos用户名
spring.cloud.nacos.discovery.username=$nacos-server-username
# nacos 密码
spring.cloud.nacos.discovery.password=$nacos-server-password

饿加载的配置 Feign的默认配置

# 开启饥饿加载
ribbon.eager-load.enabled=true
#需要调用的服务端 多个用逗号,隔开
ribbon.eager-load.clients=promotion-cloud-business
 
#设置feign的配置 使用okHttp
feign.okhttp.enabled=true
feign.httpclient.enabled=false
# 开启压缩
feign.compression.request.enabled=true
feign.compression.response.enabled=true
feign.compression.request.mime-types=text/xml,application/xml,application/json
feign.compression.request.min-request-size=2048
#设置feign的连接超时时间和读超时时间
feign.client.config.default.connect-timeout=10000
feign.client.config.default.read-timeout=15000

hystrix的配置

为了确保Ribbon重试的时候不被熔断,我们就需要让Hystrix的超时时间大于Ribbon的超时时间,否则Hystrix命令超时后,该命令直接熔断,重试机制就没有任何意义了

#开启熔断  断路器打开表示熔断   断路器关闭表示连通
feign.hystrix.enabled=true
# 断路器等待窗口时间 默认5000  建议保持默认值 #当断路器打开拒绝请求的时间,该时间段内服务不可访问
hystrix.command.default.circuitBreaker.sleepWindowInMilliseconds=5000
# 断路器请求量阈值 默认20  建议保持默认值,如果部分接口不能容忍默认阈值可以单独配置   #在滑动窗口时间内,打开断路器的最小请求量
hystrix.command.default.circuitBreaker.requestVolumeThreshold=20
# 断路器错误百分比阈值 默认50  建议保持默认值    #当请求超过阈值20并且 50%以上的错率 就会打开断路器
hystrix.command.default.circuitBreaker.errorThresholdPercentage=50
# 是否允许超时  默认true
hystrix.command.default.execution.timeout.enabled=true
#超时最大上限 默认1000  保持选用默认值    #当最大超时为true , 超过这个时间将会被降级
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=15000
# 滑动窗口持续时间  默认10000 建议保持默认值   #熔断的统计时间周期
hystrix.command.default.metrics.rollingStats.timeInMilliseconds=10000
# 最大并发降级请求处理上限  默认值10  当并发降级超过该数会抛异常,但不是降级的异常
hystrix.command.default.fallback.isolation.semaphore.maxConcurrentRequests=500
# 核心线程数 默认10
hystrix.threadpool.default.coreSize=10
# 最大线程数 默认10
hystrix.threadpool.default.maximumSize=500
# 是否允许最大线程数生效 默认false
hystrix.threadpool.default.allowMaximumSizeToDivergeFromCoreSize=true
# 非核心线程存活时间 allowMaximumSizeToDivergeFromCoreSize为true并且maximumSize大于coreSize时此配置才生效 默认1
hystrix.threadpool.default.keepAliveTimeMinutes=1
# 最大任务队列容量  -1时使用的是SynchronousQueue,配置为大于1的整数时使用的是LinkedBlockingQueue
hystrix.threadpool.default.maxQueueSize=5000
# 任务拒绝的任务队列阈值 默认5  maxQueueSize>1 才生效
hystrix.threadpool.default.queueSizeRejectionThreshold=2000

以上是关于微服务设计指导-hystrix参数介绍的主要内容,如果未能解决你的问题,请参考以下文章

微服务设计指导-使用turbine结合nacos监控多集群hystrix

微服务设计指导-hystrix的监控

微服务设计指导-feignclient的compression参数导致报文返回为gzip格式带来的坑

DDD专栏11微服务时代,单体架构淘汰了吗?

DDD专栏7:DDD如何指导微服务设计实现

微服务容错组件Hystrix设计分析