压力测试发现异常
java.util.concurrent.RejectedExecutionException: Task com.google.common.util.concurrent.ListenableFutureTask@5378dcc3 rejected from java.util.concurrent.ThreadPoolExecutor@618b1daf[Running, pool size = 100, active threads = 82, queued tasks = 0, completed tasks = 12068]
压力测试方式:启动100个线程,循环50次
在这个情况下尝试修改了数据源配置的最大连接数,报错仍是pool size = 100,因此推测此处并不是数据源最大连接数。
分析异常信息中发现,出现问题可能再sharding中,因此推测问题可能是sharding中配置了默认得最大连接数(中间思路也有跑偏,都是泪不说了。。。)
那么问题就来了,如何修改sharding的默认最大连接数!
查找网上资料:https://www.jianshu.com/p/57918e2df0d0
但是仍然不好用,后来跟查看本地版本源码发现变量名不一致
终于找到!
<rdb:props>
<prop key="sql.show">true</prop>
<prop key="executor.max.size">110</prop>
</rdb:props>
再sharding配置中增加,先配置110测试发现,偶尔还是回出现同样问题,不过连接池最大已经变成110,说明修改生效了
根据实际情况可以自行调整了。