开发者社区> 问答> 正文

【紧急】有四台dubbo服务,支持http和dubbo协议,完成相同的功能最近总?400报错

报错:

java.util.concurrent.RejectedExecutionException: Thread pool is EXHAUSTED!

四台服务轮流报错,导致很多请求不能处理。我比较好奇一台服务线程池满了,不会自动转发到其他服务吗?

现在的配置:

	<dubbo:protocol port="27777" accesslog="true" /><!-- DUBBO服务发布端口 -->

	<dubbo:protocol name="rest"  port="8080"  contextpath="setapp" server="servlet" accesslog="true" />

 

展开
收起
爱吃鱼的程序员 2020-06-05 16:02:59 1059 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB
                        <p>公司总监找到了原因,写了一个 socket客户端和服务端保持长连接,发现机房局域网络抖动不定时断开连接,可能是防火墙对于不活跃的连接半小时强制断开,而druid数据库连接池并不知道连接已经断开,当访问数据库的时候getDB()出现阻塞。严重影响业务处理耗时,造成dubbo线程池满。解决办法:druid 数据源配置 增加 :</p> 
    
    <property name = "keepAlive" value = "true"/>

    数据库连接保持活跃,这样可以使防火墙不会主动断开连接。

                        是不是要配负载均衡?
                    
    
                            回复 <a class="referer" target="_blank">@颖辉小居</a>  : 可以参考一下官网的例子。  http://dubbo.apache.org/zh-cn/docs/user/demos/loadbalance.html
                        
    
                            回复 <a class="referer" target="_blank">@爱新觉罗玄楠</a>  : 是消费者配置的负载机制吧,是使用默认的轮询
                        
    
                            loadbalance参数配了吗?
                        
    
                            负载方式就是默认的轮训
    
    2020-06-05 16:03:13
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
CDN助力企业网站进入HTTPS时代 立即下载
Dubbo分布式服务治理实战 立即下载
《Dubbo 3.0 前瞻》 立即下载