Hystrix线程池问题

news2024/10/2 16:19:01

背景:在一个以springcloud为基础架构的微服务项目中,活动期间并发量一大就会出现服务调用失败的问题。经定位发现,被调用服务中无对应的请求日志,继续通过日志查询确认是feign调用时出现服务降级,进入降级方法统一返回调用失败。通过jmeter做并发测试,并发量一到20问题就会复现。

        我们知道,feign的调用链路中内置了hystrix逻辑,hystrix出现服务降级的情况有很多种,下图展示了服务降级的场景,从下图可知服务降级通常有三种原因。

        第一,断路器是open状态,此时所有的请求会进入到降级方法中。我们项目的实际情况是活动启动的瞬间并发高导致降级,这种降级只是部分请求的降级,故排除这种情况。

        第二,请求被调用服务异常或者超时。被调用服务未查到相关日志且通过数据中的网络监控网络连接也是正常的,故排除这种情况。

        第三,线程池的线程数不够,大量请求来不及处理无可用资源进入降级逻辑。这种情况比较符合我们实际情况,可以继续排查。

         通过进一步分析我们得知,默认的隔离策略是线程池隔离,且线程池核心线程数为10。

#模式配置

hystrix.command.default.execution.isolation.strategy = THREAD

 

         进一步了解线程池的隔离策略和执行逻辑。

1.基于feign的服务调用时,以服务名作为key值,为该key值创建一个线程池,默认大小为10,各个服务名的线程池相互隔离。

2.线程池的执行逻辑同jdk的ThreadPoolExecutor

        因此解决问题的关键是指定线程池核心线程数来应对并发需求,配置完成后可通过并发测试进行验证。

hystrix:
  threadpool:
    default:
      #基于feign的服务调用,为每个服务(各个渠道)创建一个隔离的线程池,核心线程数为50.
      coreSize: 50

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/484594.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

教会你制作自己的浏览器 —— 并将 ChatGPT 接入

前期回顾 分享24个强大的HTML属性 —— 建议每位前端工程师都应该掌握_0.活在风浪里的博客-CSDN博客2分享4个HTML5 属性,开发必备https://blog.csdn.net/m0_57904695/article/details/130465836?spm1001.2014.3001.5501 👍 本文专栏:开发…

对抗性攻击和防御竞争(Adversarial Attacks and Defences Competition)的通俗解读

通过我们在Pytorch对机器学习模型的安全漏洞攻击方法之Fast Gradient Sign Attack(FGSM,快速梯度符号攻击)https://blog.csdn.net/weixin_41896770/article/details/130319089 这篇文章的介绍,我们了解到FGSM可以对机器学习模型进行有效的攻击,成功的让M…

【MOMO】高水平期刊目录(持续更新)

高水平期刊目录 引言1 顶级期刊目录(A)1.1 IEEE Transactions on Intelligent Transportation Systems1.2 IEEE Transactions on Neural Networks and Learning Systems1.3 Engineering 2 权威期刊目录(A)2.1 Measurement 3 鼓励期…

从零开始三相逆变

1、题目分析 2、方案介绍 系统以220V市电作为电源,通过隔离调压器后分两路经过整流滤波后输入电路,一路为主回路供电,一路为辅助电源供电。三路SPWM波通过数字隔离器ISO7760送至由驱动芯片UCC27211控制三相半桥逆变电路,生成三路…

《嵌入式系统》知识总结2:Cortex-M3处理器和STM32

Cortex处理器分类 Cortex-A(应用)处理器,Cortex-R(实时)处理器,Cortex-M(微控制器)处理器...等 CM3内核优点 1. 高性能Cortex-M内核 • 采用ARM公司流行的标准内核Cortex-M3 • …

探秘C语言中整数的二进制表示:原码、反码、补码,以及大小端字节序的奥秘

本篇博客会讲解整数在内存中的存储形式,以及整数二进制的3种表示形式:原码、反码、补码,还有大小端的相关知识点。相信读完本篇博客,大家对内存的了解会上一个台阶。 注意:本篇博客讨论的是整数在内存中的存储&#x…

将mininet流量数据可视化至前端

目录 准备工作:将mininet流量数据输入数据库流量可视化 准备工作: 创建项目 django-admin startproject mininet_webpython manage.py runserver 0.0.0.0:8000init文件加上: settings改数据库,具体看上一篇 创建第一个app mo…

Windows安装mariadb,配置环境变量(保姆级教学)

软件下载地址:https://mariadb.com/downloads/ 1.双击下载好的软件 2.点击next 3.勾选我同意,点击next 4.这里那你可以设置你要安装的路径,也可以使用默认的,之后点击next 5.如图所示,设置完点击next 6.接下来就默…

如何让ChatGPT成为科研工作中的小助手?(附使用指南)

大家好,我是带我去滑雪! 从2022年年底发布叫ChatGPT的人工智能聊天机器人以来,逐渐强势进入了各行各业,一夜火爆全网,它使用自然语言处理技术来与用户进行交互和沟通,可以回答用户关于知识、娱乐、生活等方…

MySQL高级篇——MVCC多版本并发控制

导航: 【黑马Java笔记踩坑汇总】JavaSEJavaWebSSMSpringBoot瑞吉外卖SpringCloud黑马旅游谷粒商城学成在线MySQL高级篇设计模式牛客面试题 目录 1. 什么是MVCC 2. 快照读与当前读 2.1 快照读 2.2 当前读 3. MVCC三剑客 3.1 回顾隔离级别 3.2 隐藏字段、Undo…

组合导航卡尔曼滤波几个杂项

1.组合导航卡尔曼滤波噪声协方差矩阵调参 在组合导航卡尔曼滤波算法中,主要涉及两个噪声协方差矩阵,过程噪声协方差矩阵Q,测量噪声协方差矩阵R,具体来说: R表示测量噪声协方差,它是一个数值,这…

【Unity-UGUI控件全面解析】| Toggle 开关组件详解

🎬【Unity-UGUI控件全面解析】| Toggle 开关组件详解一、组件介绍二、组件属性面板三、代码操作组件四、组件常用方法示例4.1 监听开关事件五、组件相关扩展使用5.1 配合Toggle Group组使用💯总结🎬 博客主页:https://xiaoy.blog.csdn.net 🎥 本文由 呆呆敲代码的小Y …

JavaScript实现输入年份月份,判断该月份是多少天的代码

以下为实现输入年份月份,判断该月份是多少天的代码和运行截图 目录 前言 一、实现输入年份月份,判断该月份是多少天 1.1 运行流程及思想 1.2 代码段 1.3 JavaScript语句代码 1.4 运行截图 前言 1.若有选择,您可以在目录里进行快速查找…

康耐视Visionpro-视觉人机器视觉粉丝-千问之六十五解答

(2023年5月2日更,下次更新2023年10月1日-10月7日) Question0: 康耐视visionpro9.8/9.9-BeadInspect工具详细使用流程 原因分析或解决办法 康耐视visionpro9.8-BeadInspect工具详细使用流程 (qq.com) Question1: C#与visisionpro联合开发exe文件开机启动设置 原因分析…

项目实战笔记

前台:呈现给用户的视觉和基本操作 后台:用户浏览网页时候,用户看不到的后台数据 前面两者都包含前端和后端 技术选型要统一 后端 接入层(control): 接受请求,获取传递过来的参数调用服务层…

unityt光线透射目标

介绍 在Unity中,光线透射目标通常指的是在场景中放置的一些物体,用于模拟光线从一个物体透过到另一个物体的效果。canvas子物体组件中,勾不勾选“光线透射目标”有什么区别? 方法 在Canvas子物体组件中勾选“光线透射目标”时&…

jqGrid之单选

jqGrid不支持单选,本来也想借鉴网上的做法,通过对checkbox的处理来间接实现。但在实践中却发现设置了multiSelect后,checkbox并没有显示出来,怀疑是跟页面的其它前端框架如bootstrap有冲突,索性换个思路来实现&#xf…

C语言的那些少见的事1

目录 前言: 1.变量名称的意义 2.卖函数库的知识 3.变长数组 4.清空输入缓冲区 5.左值和右值 6.for控制语句中定义变量 7.刷题中浮点数的精度问题 8.C语言提供C的标准和C库的约定 9.extern声明外部符号 ❤博主CSDN:啊苏要学习 ▶专栏分类:C语言…

飞书接入ChatGPT - 将ChatGPT集成到飞书机器人,直接拉满效率

文章目录 前言环境列表视频教程1.飞书设置2.克隆feishu-chatgpt项目3.配置config.yaml文件4.运行feishu-chatgpt项目5.安装cpolar内网穿透6.固定公网地址7.机器人权限配置8.创建版本9.创建测试企业10. 机器人测试 转载自远控源码文章:飞书接入ChatGPT - 将ChatGPT集…

java基础知识——26.反射

这篇文章我们来讲一下java的代理与反射,这是很重要的一部分内容。 目录 1.什么是反射 2.获取class对象的三种方式 3.反射获取构造方法 4.利用反射来获取成员变量 5.利用反射来获取成员方法 6.反射的作用 7.反射小结 1.什么是反射 首先,我们来看…