第一次写博客,拿碰到的坑,来写写,看看有没有人访问我的博客。

背景: 一个队列对应20个消费者。有很多个队列,channel 数量200左右, 一个消费者对应一个channel.

问题:生产者往一个队列同时写入了10个消息。 理论来说,这个队列肯定是有10消费者拿到消息,去干活了。

但发现只有8个左右消费者立马去干活了,2个消费者拿到消息不立马干活,要等一些时间才去。

rabbitmq 消费者拿到消息不干活问题

rabbitmq 消费者拿到消息不干活问题


方法: rabbitmq 自带的共享线程池默认是50个线程。对于很大的业务需求, 50个是明显不够用的,得增大。

ExecutorService service = Executors.newFixedThreadPool(Integer.parseInt(threadNum));
factory.setSharedExecutor(service);

参考文章:

https://blog.csdn.net/weinianjie1/article/details/50611379

相关文章:

  • 2021-11-06
  • 2021-09-29
  • 2021-11-25
  • 2021-11-12
  • 2021-11-25
  • 2022-12-23
  • 2021-10-14
  • 2022-12-23
猜你喜欢
  • 2021-05-14
  • 2022-12-23
  • 2021-06-08
  • 2022-12-23
  • 2022-01-25
相关资源
相似解决方案