首页 > 其他分享 >Dubbo 线程池占满可能原因分析

Dubbo 线程池占满可能原因分析

时间:2022-09-05 11:02:00浏览次数:47  
标签:Dubbo 池占满 请求 dubbo 队列 默认 线程

可能原因:(1) dubbo中有httpClient调用。

由于http工具默认仅支持 5 个并发,且有线程池队列,当请求量超过 5 个的时候,多余的请求会在队列中堆积。前一批http请求结束之后其他的请求才会继续执行,越到后面线程等待时间会越长。所以对应实际业务场景中dubbo线程等待的时间也会越长,当这个队列到一定数量之后,就会引起dubbo默认200个线程池被占满的情况,从而引起整个应用服务的报错。
(2) 业务代码中,有异步调用,但异步调用又使用了默认的线程池,很容易把线程池用光,间接导致dubbo线程占满。

(3) dubbo接口中,处理大对象,导致频繁FGC, 请求不断,但STW时间过长,也会导致dubbo线程池占满。

参考:

https://blog.csdn.net/wsmalltiger/article/details/124236055

标签:Dubbo,池占满,请求,dubbo,队列,默认,线程
From: https://www.cnblogs.com/maohuidong/p/16657346.html

相关文章

  • java随笔(七)——多线程(比较详细)
    线程线程是进程中单个的顺序控制流,是一条执行路径单线程:一个进程如果只有一条执行路径,则称为单线程程序多线程:一个进程如果有多条执行路径,则称为多线程程序多线程的实......
  • Java多线程相关概念
    Java多线程相关概念1.并发是在同一实体上的多个事件,是在同一台处理器上“同时”处理多个任务,同一时刻,其实是只有一个事件在发生2.并行是在不同实体上的多个事件,是在......
  • 多线程---Thread和Runnable
    多线程参考视频:多线程02:线程、进程、多线程哔哩哔哩bilibili1.概念     2.线程创建创建线程方式一:继承Thread类,重写run()方法,调用start开启线程packagec......
  • 进程与线程
    1.进程是什么?进程是处于执行期的程序以及相关资源的总称2.一个进程里都包含什么?程序的代码段,全局变量数据段,处理器状态,内存地址空间,打开的文件,挂起的信号,进程栈,内核内......
  • 关于MFC程序关闭之后仍有线程存留
    最近弄了一个项目,关闭之后在任务管理器中依然存留,刚开始以为是因为子线程没能退出,就用ExitThread来终止,终止之后发现好像并不是子线程的原因查了好久没能找到原因最后只......
  • 线程模型
    一、线程模型种类1.传统阻塞I/O服务模型 2.Reactor模式二、传统阻塞I/O服务模型三、Reactor模式 1.根据Reactor的数量和处理资源池线程的数量......
  • day31-线程基础01
    线程基础011.程序进程线程程序(program):是为完成的特定任务,用某种语言编写的一组指令的集合。简单来说,就是我们写的代码。进程:进程是指运行中的程序,比如我们使用......
  • SpringBoot集成Dubbo和Zookeeper
    15、SpringBoot集成Dubbo和Zookeeper15.1、分布式理论什么是分布式系统?在《分布式系统原理与范型》一书中有如下定义:“分布式系统是若干独立计算机的集合,这些计算机对......
  • 比较:java多线程 sleep()和wait()
    相信看这篇文章的朋友都已经知道进程和线程的区别,也都知道了为什么要使用多线程了。这两个方法主要来源是,sleep用于线程控制,而wait用于线程间的通信,与wait配套的......
  • dubbo和springCloud
    Dubbo高性能的javaRPC框架架构init:初始化async:异步sync同步 0:需要容器启动例如Tomcat1:注册ip端口以及一些东西到注册中心2:订阅服务快速入门Zookeeper......