hystrix详述(2)- 配置

2023-10-30

一、hystrix在生产中的建议

1、保持timeout的默认值(1000ms),除非需要修改(其实通常会修改)

2、保持threadpool的的线程数为10个,除非需要更多

3、依赖标准的报警和监控系统来捕获问题

4、通过dashboards的实时监控来动态修改配置,直到满意为止

 

二、配置信息(default或HystrixCommandKey最常用的几项

  • 超时时间(默认1000ms,单位:ms)
    • hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds
      • 在调用方配置,被该调用方的所有方法的超时时间都是该值,优先级低于下边的指定配置
    • hystrix.command.HystrixCommandKey.execution.isolation.thread.timeoutInMilliseconds
      • 在调用方配置,被该调用方的指定方法(HystrixCommandKey方法名)的超时时间是该值
  • 线程池核心线程数
    • hystrix.threadpool.default.coreSize(默认为10)
  • Queue
    • hystrix.threadpool.default.maxQueueSize(最大排队长度。默认-1,使用SynchronousQueue。其他值则使用 LinkedBlockingQueue。如果要从-1换成其他值则需重启,即该值不能动态调整,若要动态调整,需要使用到下边这个配置)
    • hystrix.threadpool.default.queueSizeRejectionThreshold(排队线程数量阈值,默认为5,达到时拒绝,如果配置了该选项,队列的大小是该队列)
      • 注意:如果maxQueueSize=-1的话,则该选项不起作用
  • 断路器
    • hystrix.command.default.circuitBreaker.requestVolumeThreshold(当在配置时间窗口内达到此数量的失败后,进行短路。默认20个)
      • For example, if the value is 20, then if only 19 requests are received in the rolling window (say a window of 10 seconds) the circuit will not trip open even if all 19 failed.
    • hystrix.command.default.circuitBreaker.sleepWindowInMilliseconds(短路多久以后开始尝试是否恢复,默认5s)
    • hystrix.command.default.circuitBreaker.errorThresholdPercentage(出错百分比阈值,当达到此阈值后,开始短路。默认50%)
  • fallback
    • hystrix.command.default.fallback.isolation.semaphore.maxConcurrentRequests(调用线程允许请求HystrixCommand.GetFallback()的最大数量,默认10。超出时将会有异常抛出,注意:该项配置对于THREAD隔离模式也起作用)

 

三、监控hystrix

说明:hystrix为每一个commandKey提供了计数器。原理:

附:清晰大图

 

四、常见的hystrix事件类型

  • run()
    • SUCCESS:run()成功,不触发getFallback()
    • FAILURE:run()抛异常,触发getFallback()
    • TIMEOUT:run()超时,触发getFallback()
    • BAD_REQUEST:run()抛出HystrixBadRequestException,不触发getFallback()
    • SHORT_CIRCUITED:断路器开路,触发getFallback()
    • THREAD_POOL_REJECTED:线程池耗尽,触发getFallback()
    • FALLBACK_MISSING:没有实现getFallback(),抛出异常
  • getFallback()
    • FALLBACK_SUCCESS:getFallback()成功,不抛异常
    • FALLBACK_FAILURE:getFallback()失败,抛异常
    • FALLBACK_REJECTION:调用getFallback()的线程数超量,抛异常

五、Metrics storage and Dashboard

仅仅记录hystrix1.5.0及其后续版本,之前的版本的数据结构不一样。

http://www.ahlinux.com/java/18235.html

 

https://www.cnblogs.com/java-zhao/p/5524584.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

hystrix详述(2)- 配置 的相关文章

  • 记一次压测Feign调用时Hystrix could not be queued for execution and no fallback available.

    项目场景 xff1a 同事压测时反馈仅支持10个用户的并发量 问题描述 通过查看日志 xff0c 可以看到一下关键报错信息 xff1a could not be queued for execution and no fallback av
  • SpringCloud(八)Hystrix断路器

    文章目录 1 概述分布式系统面临的问题是什么能干嘛官网资料Hystrix官宣 xff0c 停更进维 2 Hystrix重要概念3 hystrix案例构建项目高并发测试故障现象和导致原因上诉结论如何解决 xff1f 解决的要求服务降级服务熔断
  • springcloud整合Hystrix,实现接口服务降级

    利用Hystrix对接口control层进行服务降级 新建子工程service03 作为测试Hystrix服务降级的微服务 pom xml
  • 客户端负载均衡Feign之四:Feign配置

    Ribbon配置 在Feign中配置Ribbon非常简单 直接在application properties中配置即可 如 设置连接超时时间 ribbon ConnectTimeout 500 设置读取超时时间 ribbon ReadTim
  • hystrix详述(2)- 配置

    一 hystrix在生产中的建议 1 保持timeout的默认值 1000ms 除非需要修改 其实通常会修改 2 保持threadpool的的线程数为10个 除非需要更多 3 依赖标准的报警和监控系统来捕获问题 4 通过dashboards
  • Hystrix工作步骤说明以及服务监控hystrixDashboard

    目录 一 步骤说明和流程解析 二 服务监控hystrixDashboard 官网 How it Works Netflix Hystrix Wiki GitHub 一 步骤说明和流程解析 1 创建 HystrixCommand 用在依赖的服
  • SpringCloud - Spring Cloud Netflix 之 Hystrix熔断器(七)

    阅读本文前可先参考 SpringCloud Spring Cloud根 父项目 开发准备 二 MinggeQingchun的博客 CSDN博客 在微服务架构中 一个应用往往由多个服务组成 这些服务之间相互依赖 依赖关系错综复杂 通常情况下
  • feign和ribbon同时设置connectTimeout readTimeout,谁会先起作用

    feign client config default connectTimeout 1000000 readTimeout 1200000 hystrix enabled true ribbon eager load enable tru
  • springcloud整合Hystrix

    作用 1 服务降级 触发情况 程序运行异常 超时 服务熔断触发服务降级 线程池 信号量打满也会触发服务降级 2 服务熔断 直接拒绝访问 即使有正确的访问也会短路 3 服务限流 排队有序进行 构建服务 1 建module provider h
  • SpringBoot集成hystrix

    文章目录 hystrix有什么用 在SpringBoot项目中集成 更多配置示例 配置线程池 配置信号量 配合feignClient使用 基本配置 可视化组件 视图hystrix dashboard 汇总监控turbine 参考 hystr
  • 测试 Hystrix 断路器配置

    我们的应用程序是通过使用 Hystrix 实现断路器模式以抗脆弱的方式编写的 整个应用程序是使用测试驱动实践创建的 但陷入了我们需要通过在方法上配置相同策略来实现断路器策略的阶段 以下是我们使用的示例配置 HystrixCommand co
  • Spring Boot 中的 Hystrix 仪表板问题

    我是 Hystrix 仪表板的新手 我已经用 Hystrix 编写了示例应用程序 我想查看 Hystrix 图表 命令指标流 但我收到以下错误 Circuit Unable to connect to Command Metric Stre
  • Spring Cloud - hystrix-dashboard 不工作?

    Spring Cloud Hystrix 断路器模式示例 我在代码中添加了以下依赖项https howtodoinjava com spring spring cloud spring hystrix Circuit breaker tut
  • Hystrix 忽略运行超时

    我正在尝试使用 Hystrix 我理解文档 即使通过 运行 同步调用 Hystrix 命令也会默认在线程中运行 并且应该受到 Hystrix 中配置的超时的影响 但当我尝试时 似乎没有发生超时 我是否误解了文档 或者我做错了什么 有没有办法
  • Feign Hystrix 回退不起作用

    我有以下 FeignClient FeignClient name FooMS fallback CustomerFeign CustomerFeignImpl class public interface CustomerFeign Re
  • Hystrix 命令失败并显示“超时并且没有可用的后备”

    我注意到我的应用程序中的某些命令失败了 Caused by com netflix hystrix exception HystrixRuntimeException GetAPICommand timed out and no fallb
  • Hystrix 仪表板卡在加载屏幕上

    我在 localhost 8988 hystrix 上运行 Hystrix 仪表板 我想监视 OrderService 和 ProductService 之间的请求 端点 hystrix stream 已经注册 并且 hystrix 仪表板
  • Hystrix CircuitBreakerSleepWindowInMilliseconds 无法按预期工作

    我正在测试 Hystrix CircuitBreaker 实现 命令类如下所示 public class CommandOne extends HystrixCommand
  • 春云|假装 Hytrix |首次调用超时

    我有一项服务使用了 3 个假客户端 每次启动应用程序时 我都会在第一次调用任何假客户端时收到 TimeoutException 在一切稳定之前 我必须至少触发每个假客户端一次 在网上查了一下 问题是 feign 或 hystrix 内部的某
  • 如何在多个 feign 客户端之一中禁用 hystrix

    在我的 Spring Boot 应用程序中 我使用多个 feign 客户端 FeignClient hello service 对于其中许多情况 我需要一种断路器机制 因此我有以下配置行 feign hystrix enabled true

随机推荐

  • avue form弹框里改动label

    可参考官网弹窗表单配置 Avue
  • springboot 配置logback

    logback spring xml文件配置
  • Oracle数据库报错ERROR at line 1:ORA-01157: cannot identify/lock data file 9

    自说 今天在打开了好久没有打开的rac数据库时 重启数据库进入open模式时发生了以下错误 经过简单筛查后发现是因为之前创建的数据文件删除掉了 因为我这里是保存到了本地中 E盘下 未找到导致报错 我们可以查看 set linesize 19
  • 算法——无向图的最短路径算法

    https www jb51 net article 154796 htm 我是看上面的文章写的程序 他的第一种解法还需要我再理解理解 BFS一层层寻找目标节点的算法 思路 1 先从v到u的使用BFS遍历一遍图 得到每个节点到v的最短距离
  • C/C++ stat()函数:获取文件状态

    相关函数 fstat lstat chmod chown readlink utime 头文件 include
  • 使用R语言绘制指数分布密度函数数据的可视化

    使用R语言绘制指数分布密度函数数据的可视化 指数分布是概率论和统计学中常见的连续概率分布之一 广泛应用于可靠性工程 风险分析和排队论等领域 在本文中 我们将使用R语言的plot函数来可视化指数分布密度函数的数据 首先 我们需要安装并加载R语
  • Pytorch并行计算(二): DistributedDataParallel介绍

    PyTorch并行计算 DistributedDataParallel 一 为什么要并行计算 二 基本概念 三 DistributedDataParallel的使用 1 torch distributed 2 torch multiproc
  • 三、Express

    目录 初识express Express 简介 Express 的基本使用 安装 基本使用 托管静态资源 express static 托管多个静态资源目录 挂载路径前缀 nodemon Express路由 路由的基本使用 为路由模块添加前
  • 使用容器搭建伪redis集群

    在一个主机上使用容器技术搭建一个redis集群 为什么说是伪集群 因为redis集群和分布式相互交叉 因为成本 在一台主机上部署一个三主三从的redis集群 redis版本 v 6 2 6 部署 运行六个节点 docker compose
  • 常见垃圾回收器

    CMS和G1是最重要的 新生代一般采用标记复制 老年代一般采用标记整理算法 Serial 垃圾回收线程只有一个 而且垃圾回收线程工作的时候其他用户线程要停下来 Parnew Serial的多线程版本 有多个垃圾回收线程 垃圾回收线程工作的时
  • 黎明觉醒火种测试服务器维护,黎明觉醒火种测试什么时候上线 黎明觉醒火种测试资格获取方式(图文)...

    黎明觉醒是腾讯旗下的多人开放世界生存手游 对标的就是网易旗下的明日之后 在之前的曙光测试之后 这款游戏长时间来都没有传出过新消息 下面game234就来介绍一下黎明觉醒最新的火种测试什么时候上线 怎么预约 game234将第一时间提供黎明觉
  • 区块链是怎么形成的,你究竟明白多少?

    区块链到底是啥 首先 不要把区块链想的很复杂 其实 区块链很简单 它本质上就是一套数据库存储系统 该系统分布在全球各地 并且能够协同运转 不过 与其他数据库存储系统不一样的是 这个系统的运行者可以是任何有能力架设服务器的人 过去 传统的数据
  • angular 12+NG-ZORRO -UI中使用Modal对话框时注意

    弹框的代码不能放在循环中不然就会出现黑屏了 当时我的代码是这样写的 当然这是我的错误写法 特此记录 div class pages div
  • 日志服务器搭建

    1 安装完系统后 配置网络 设置静态IP vi etc sysconfig network scripts ifcfg ens33 编辑模式下修改 i BOOTPROTO static 改为静态 ONBOOT YES IPADDR 192
  • DeFi新篇章

    随着原生去中心化中央限价订单簿 Central Limit Order Book CLOB DeepBook的推出 Sui上的DeFi开启了新篇章 DeepBook由一群Sui贡献者共同构建 为新一代DeFi应用提供了一个稳定的流动性层 通
  • win10无法访问smb共享文件夹的解决办法

    win10无法访问smb共享文件夹的解决办法 之前在linux的几个图形化界面都可以在文件夹中输入 smb ip share 直接访问Linux服务器上的共享文件夹 但是在win10上进行同样的操作会让我打开win10商店搜索应用程序 网上
  • java(条件分支语句)

    Java中的条件分支语句分两种 if else语句和switch语句 1 if 条件判断语句 代码A 当条件成立时执行代码A 如果条件不成立则不执行代码A 而是直接 执行if的下一句 if 条件 代码块1 else 代码块2 当条件成立时执
  • vscode git 源代码管理 无法自动更新显示变更

    最近vscode 远程写代码遇到问题 git的源代码管理不能自动罗列被修改的文件 原因 早期出现警告 Visual Studio Code is unable to watch for file changes in this large
  • 蓝牙HID说明

    蓝牙HID说明 本章主要围绕BLE的HOGH进行说明 网上很多文档讲到HID都要说到USB的HID 让初学者一开始既要看理解蓝牙GATT Service的概念 又要去理解USB的端点概念 实话来说本人刚去学习时也经常需要尝试去理解这两者的关
  • hystrix详述(2)- 配置

    一 hystrix在生产中的建议 1 保持timeout的默认值 1000ms 除非需要修改 其实通常会修改 2 保持threadpool的的线程数为10个 除非需要更多 3 依赖标准的报警和监控系统来捕获问题 4 通过dashboards