我们从kafka获取数据,如下图,有两步,第一步是从dmq获取出来放到一个队列里;第二步是我们消费线程从队列里获取内容。
对第一步,业务作为dmq客户端,启动N个连接去连接dmq,连接数由配置项mq.consumer.connections指定,一般模块都没配置(目前小组内框架设置的默认值是2)
对第二步,消费线程数是由配置项 consumer.thread.num 决定(出现问题时为10)
重启后观察日志,1秒可以处理5000,jstack查看线程可以发现50个线程在处理的有10-30个,也说明之前的线程太少,积压问题解决。
文章来源: https://blog.csdn.net/coder_xia/article/details/86289643