dubbo线程池问题,线程数一直增长

dubbo应用线程数一直在增加不释放,dubbo:provider 默认采用fixed线程池实现,默认线程池数为100,但DubboServerHandler线程是为150多 处于WAITING状态,正常吗,总不能这样一直增下去,求解?

6

1个回答

可以设置属性threadpool="cached",表示线程机制为缓存线程机制。默认超过一分钟不用该线程将自动销毁,使用时重新创建

图片说明

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Dubbo 源码分析之线程池
文章目录前言Dubbo 线程池分类Dubbo 线程工厂线程池拒绝策略CachedThreadPoolFixedThreadPoolLimitedThreadPool 前言 相信学过 netty 的都知道,每一个 ChannelHandler 都是通过它的 EventLoop(I/O线程) 来处理传递给它的事件,所以至关重要的是不要阻塞这个线程,因为这会对整体的 I/O 产生负面的影响。Dubbo...
遇到问题----java---多线程----线程数一直增加----web项目中线程池的正确使用方式
我们在之前的文章中说明了简单的线程使用方法java系统学习(十) --------线程以及线程池的使用方法。ExecutorService实现java多线程线程数一直增加的问题普通简单多线程的使用方式是 Thread t=new Thread(); t.start();//启动线程对象t 但是在web项目中发现查看控制台这种情况会导致线程数一直增加:thread
dubbo线程池优化
dubbo默认提供了三种线程池,分别是  fixed 固定大小线程池,启动时建立线程,不关闭,一直持有。  cached 缓存线程池,空闲一分钟自动删除,需要时重建。  limited 可伸缩线程池,但池中的线程数只会增长不会收缩。(为避免收缩时突然来了大流量引起的性能问题)。
dubbo线程池溢出解决
dubbo 线程池
记一次线上压测Dubbo线程池队列满的问题
本文记录一次线上全链路压测出现的Dubbo线程池队列满的问题。 1 问题描述 线上做全链路压测,其中涉及三个系统,调用关系A->B->C,均是dubbo调用。压测的时候C出现CPU满导致服务响应超时的情况,进而导致B以及A接口均超时。停止压测后,B->C的流量依然未有明显降低,系统收敛慢,影响线上业务。 2 问题分析 2.1 调用来源分析 首先分析停止压测后,这些B...
源码分析Dubbo网络通讯篇之NettyServer网络事件之线程池
    本文主要分析Dubbo线程池的构建过程,主要介绍官方文档中有关于ThreadPool的种类:     ● fixed : 固定大小线程池,启动时建立线程,不关闭,一致持有。(缺省)     ● cached :缓存线程池,空闲一分钟,线程会消费,需要时重新创建新线程。     ● limited :可伸缩线程池,但池中的线程数只会增长不...
dubbo线程池四种类型(默认固定线程池)
 
Dubbo 默认线程池fixed
@SPI("fixed") public interface ThreadPool { /** * 线程池 * * @param url 线程参数 * @return 线程池 */ @Adaptive({Constants.THREADPOOL_KEY}) Executor getExecutor(URL url); ...
Dubbo 源代码分析八:再说 Provider 线程池被 EXHAUSTED
Dubbo 源代码分析八:再说 Provider 线程池被 EXHAUSTED转自:http://manzhizhen.iteye.com/blog/2391177          Dubbo源代码分析八:再说Provider线程池被EXHAUSTED 博客分类:DubbodubboDubbo源代码分析八Dubbo源代码分析八:再说Prov...
ICE线程类多线程
http://blog.csdn.net/moxiaomomo/article/details/6732387 线程 1.Thread类     1.1概述           Ice中的基础线程是由ThreadControl类和Thread类来提供的(在IceUtil/IceUtil.h中定义):           Thread类是一个抽象基类,拥有一个纯虚方
dubbo线程池满
最近在处理项目,压测的时候发现,dubbo线程池溢出,查看官方文档找到解决方案,如下: 根据自己的需要,改成需要参数 <dubbo:protocol name="dubbo" dispatcher="message" threads="500" threadpool="cached" port="${dubbo.protocol.port}" host="${dubbo.proto
Dubbo源码解析(四) 线程池 ThreadPool
dubbo 线程模型 上图体现出了在dubbo的服务端,在传输完成接收到客户端的请求之后,是通过Dispatcher分发请求到线程池处理之后,返回结果给客户端,当然,也可以直接由Dispatcher处理并返回结果。 官方建议 如果事件处理的逻辑能迅速完成,并且不会发起新的 IO 请求,比如只是在内存中记个标识,则直接在 IO 线程上处理更快,因为减少了线程池调度。 但如果事件处理逻...
dubbo参数调优说明
dubbo作为一个服务治理框架,功能比较完善(相对),性能也还过得去。但很多朋友在使用dubbo的时候,只是简单的参考官方说明进行搭建,并没有过多的去思考一些关键参数的意义(也可能是时间紧任务多,没空出来研究),最终做出来的效果不可预知。 这里我根据目前我们项目的使用情况列出几个性能调优的参数,供大家参考。         在介绍参数之前,我们先了解下dubbo中配置的优先级,以免出现调优参数设
Dubbo高级篇_10_Dubbo线程模型
线程模型 类似于数据库的连接池 (+) (#) 事件处理线程说明 如果事件处理的逻辑能迅速完成,并且不会发起新的IO请求,比如只是在内存中记个标识,则直接在IO线程上处理更快,因为减少了线程池调度。但如果事件处理逻辑较慢,或者需要发起新的IO请求,比如需要查询数据库,则必须派发到线程池,否则IO线程阻塞,将导致不能接收其它请求。如果用IO线程处理
Dubbo源代码实现六:线程池模型与提供者
对于Dubbo的服务提供者,主要有两种线程池,一种是IO处理线程池,另一种是服务调用线程池。而作为IO处理线程池,由于Dubbo基于Mina、Grizzly和Netty框架做IO组件,IO线程池都是基于这些框架来配置,比如Netty中的boss和worker线程池,Dubbo选择的是“无边界”的CachedThreadPool,这意味着对所有服务请求先做到“来者不拒”,本文拿Netty组件举例,代
dubbo连接池爆满,一直ESTABLISHED 连接
一、发现问题       先看看问题表象:       1、服务消费者端应用本地保存注册列表异常,报Too many open files       点击(此处)折叠或打开[DubboSaveRegistryCache-thread-1]14:37:30.714 WARN c.a.dubbo.registry.zookeeper.ZookeeperRegistry...
dubbo线程模型
如果事件处理的逻辑能迅速完成,并且不会发起新的 IO 请求,比如只是在内存中记个标识,则直接在 IO 线程上处理更快,因为减少了线程池调度。 但如果事件处理逻辑较慢,或者需要发起新的 IO 请求,比如需要查询数据库,则必须派发到线程池,否则 IO 线程阻塞,将导致不能接收其它请求。 如果用 IO 线程处理事件,又在事件处理过程中发起新的 IO 请求,比如在连接事件中发起登录请求,会报“可能引发...
java Thread卡死 项目内存一直增长
1.今天项目中出现了一个问题,虚拟内存、物理内存一直持续增长,项目需要每隔一小时重启一次。很是蛋疼。。怎么办呢? 很捉急啊。以下是解决方案,有相同问题的小伙伴,可以参考参考。 首先查看内存 1.top 查看pid 11112 (我的进程号) 2.top -H -p 11112 查看线程占用比例 得到线程11140 比较高 3. printf %x 11140 转换为16进制 2b...
java线程池参数说明及队列拒绝策略
java.util.concurrent.ThreadPoolExecutor,其构造方法1: public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime
Dubbo 并发调优的几个参数
这里总结一下Dubbo在并发调优方面几个参数,这几个参数归为服务消费端和服务提供端。下面对这几个参数来详细介绍。
线程池引起的jvm内存过大问题
     之前的一个hbase表结构和rowkey规划不合理,我重新设计了一个新的hbase表,需要把旧表的数据写入到新表中,采用的方案是一个region一个region的倒数据,这样旧表的读是scan顺序读,新表的写是随机写,整体速度相对较快。     读采用单线程,写采用线程池(Executors.newFixedThreadPool()),改进scan查询速度的caching配置设置为...
Dubbo源代码分析八:再说Provider线程池被EXHAUSTED
         在上回《Dubbo源代码实现六》中我们已经了解到,对于Dubbo集群中的Provider角色,有IO线程池(默认无界)和业务处理线程池(默认200)两个线程池,所以当业务的并发比较高,或者某些业务处理变慢,业务线程池就很容易被“打满”,抛出“RejectedExecutionException: Thread poolis EXHAUSTED! ”异常。当然,前提是我们没给Pro...
dubbo——线程模型
一 netty的线程模型在netty中存在两种线程:boss线程和worker线程。1 boss线程作用:accept客户端的连接;将接收到的连接注册到一个worker线程上个数:通常情况下,服务端每绑定一个端口,开启一个boss线程2 worker线程作用:处理注册在其身上的连接connection上的各种io事件个数:默认是:核数+1注意:一个worker线程可以注册多个connection一...
dubbo调优
dubbo调优 dubbo
oracle 线程超过最大连接数
ora-01000:   maximum   open   cursors   exceeded.       表示已经达到一个进程打开的最大游标数。           这样的错误很容易出现在Java代码中的主要原因是:Java代码在执行conn.createStatement()和conn.prepareStatement()的时候,实际上都是相当与在数据库中打开了一个cursor。尤其
dubbo源代码-线程池分析
dubbo默认提供了三种线程池,分别是 fixed 固定大小线程池,启动时建立线程,不关闭,一直持有。 cached 缓存线程池,空闲一分钟自动删除,需要时重建。 limited 可伸缩线程池,但池中的线程数只会增长不会收缩。(为避免收缩时突然来了大流量引起的性能问题)。 fixed: public class FixedThreadPool implements ThreadPoo...
使用JAVA的ExecutorService来限制线程数量
前言 诸如利用多线程并行访问数据库可以提高系统的并发性能,但是线程变多伴随而来的是,当线程数大于DBMS(数据库管理系统)设置的最大DB连接数时,程序就挂掉了。在JAVA中如何避免这种问题呢? 解决方法 使用ExecutorService,限制最大线程数量 ExecutorService是? ExecutorService是JAVA标准的并行计算库[java.util.concurren
springboot整合mybatis、dubbo、线程池、swagger等初始工程
压缩包内是一个初始的框架性质代码,是maven工程,里面整合了springboot、restful接口、mybatis、dubbo、juint、quartzjob、swagger等功能,方便下下来进行直接开发。 如果没有私有nexus,使用公共的也可以,打包如果报错可以去git下载dubbo代码打包后再打包;配置文件只有2个,非常简便,在resource目录下,druid是数据库连接,其他基本一看即懂
10万级的ThreadPoolExecutor线程池的配置
 ThreadPoolExecutor线程池的一些基本知识,创建 ThreadPoolExecutor对象,这个对象是管理线程池的 下面是工作流程,看图容易理解,所以可以看到  核心线程池跟队列都满了,最大线程池没满的话就是创建新的线程,最大的都满了,则会执行饱和策略。基本是什么没满用什么 饱和策略 还有一个自定义的策略,这个有很多资料  public void rejec...
Dubbo分布式日志追踪,多线程不能获取窜ID和IP问题
接着上一篇日志,当用MDC或者ThreadContext来put或者get数据的时候,不同线程是获取不到的,他们都是ThreadLocal维护,所以线程独立。如果需要子线程获取则将参数传入,在Thread的run方法执行的时候将传入的ID和IP都put到MDC或者ThreadContext中。 这里使用ThreadContext: <context:component-scan base-packa
Java线程池为何保持线程一直存在
java.util.concurrent.Executors:static class DefaultThreadFactory implements ThreadFactory { private static final AtomicInteger poolNumber = new AtomicInteger(1); private final ThreadGro
dubbo 线程池
netty的线程模型 在netty中存在两种线程,boss线程和worker线程。 1.boss线程 作用:   (1)accept客户端的连接   (2)将接收到连接注册到一个worker线程上。 个数:   通常情况下,服务端每绑定一个端口,开启一个boss线程。 2.worker线程 作用:   处理注册在其身上的连接connection上的各种io事件。 个数: ...
tomcat7优化之配置线程池
在tomcat目录下的conf中的server.xml中进行配置,一共分两步进行: 第一步:添加如下代码 <Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="500" minSpareThreads="100" />分析: name:线程名字; namePrefix:线程的前缀;
线程池之newFixedThreadPool定长线程池
newFixedThreadPool创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。newFixedThreadPool固定线程池,  使用完毕必须手动关闭线程池, 否则会一直在内存中存在。示例代码:public class ThreadPoolFixed { public static void main(String[] args) { //设置线程池大小为3 E...
Dubbo 源码分析之自定义线程池拒绝策略(使用 Java 程序 Dump 线程堆栈信息)
最近在看dubbo源码,真的学习了很多知识,记得上次看dubbo源码是在半年前了,看到dubbo自定义的spi就看不下去了,完全看不懂。上周又看了看,顿时茅塞顿开,有时间会分享出来。废话不多说,在dubbo内部有几种线程模型,都是使用java线程池实现的,任务被拒绝后会输出堆栈信息。我们可以看它是怎么实现的。 package org.apache.dubbo.common.threadpoo...
dubbo持续检查超时时间线程DefaultFuture
这个类有个静态块,就是创建并运行了线程,里面有个参数RemotingInvocationTimeoutScan(),这个类就是一直轮询,查看哪个Future超时了。 static { Thread th = new Thread(new RemotingInvocationTimeoutScan(), "DubboResponseTimeoutScanTimer");
使用Hystrix对Dubbo消费者提供线程隔离保护
在dubbo中对于消费者的保护提供了actives进行并发控制保护,但是功能相对薄弱,下面我们探讨下如何使用Netflix提供的服务容错组件Hystrix对dubo消费者提供线程隔离保护 在dubbo中对于消费者的保护提供了actives进行并发控制保护,但是功能相对薄弱,下面我们探讨下如何使用Netflix提供的服务容错组件Hystrix对dubo消费者提供线程隔离保护 为什么...
详解 Tomcat 的连接数与线程池
详解 Tomcat 的连接数与线程池 前言 在使用tomcat时,经常会遇到连接数、线程数之类的配置问题,要真正理解这些概念,必须先了解Tomcat的连接器(Connector)。 在前面的文章 详解Tomcat配置文件server.xml 中写到过:Connector的主要功能,是接收连接请求,创建Request和Response对象用于和请求端交换
hystrix隔离模式
hystrix隔离模式目前有两种方式:信号量模式和线程池模式。 但信号量并不支持超时,当被调服务发生问题时,有少部分用户会长时间无法得到响应。 另外,使用线程池模式无法传递Header,我估计是由于线程切换,参数传递过程中被去掉了。   信号量和线程池对比:     是否有线程切换 是否支持异步 是否支持超时 ...
使用Hystrix对Dubbo消费者提供线程隔离保护
使用Hystrix对Dubbo消费者提供线程隔离保护 摘要: 在dubbo中对于消费者的保护提供了actives进行并发控制保护,但是功能相对薄弱,下面我们探讨下如何使用Netflix提供的服务容错组件Hystrix对dubo消费者提供线程隔离保护 在dubbo中对于消费者的保护提供了actives进行并发控制保护,但是功能相对薄弱,下面我们探讨下如何使用Netflix
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 java学习线程的问题 dubbo学习 java