1.定时任务查询大量记录,利用多线程将这些记录通过dubbo接口发送给第三方,并且等待第三方的结果,更新这些记录。
2.dubbo的接口普遍都比较慢,大致在30秒以上。
3.数据库分配的最大连接数在200. 利用线程池去处理dubbo接口交互,线程池里面的线程数控制在200以内。
4.在数据库连接池200以内,处理量始终上不去,机器负载也很低,感觉资源浪费很严重。因为第阿勇dubbo接口和连接池绑定再一起,也不能一直无限开启线程数大小。
5,在上面这种情况下 该如何优化,可以最大限度的利用机器负载,短时间内完成大量dubbo交互
看上去是你的dubbo接口是瓶颈,比数据库查询慢多了。
所以你应该用200个线程去数据库查询,把记录放到队列里,然后用大于200的线程(比如400吧)从队列里取记录,负责调用dubbo接口。
如果dubbo接口有批量模式,尽量用批量模式。