【发布时间】:2017-12-21 17:18:35
【问题描述】:
我刚刚使用了一个由 RabbitMQ 支持的新项目,并且在应用程序启动时创建了多个消费者实例来监听同一个队列。但是,它们与不同的频道共享相同的连接。
来自队列的消息是海量的(单个生产行为有数百万条消息),所以我猜第一个代码作者正在尝试做一些事情来加快消费速度。
我试图找到一些讨论这个的帖子,但我找不到一个非常确定的答案。
到目前为止我得到的是:
- 每个通道都有一个单独的调度线程
- 同一通道上的操作命令即使在多线程中调用也会被序列化
所以
-
创建多个消费者,因此多个通道将具有多个调度线程,但我认为它不会为消息调度提供更好的性能,因为单个线程的调度应该远远不够。
李> ack 的操作会在不同的通道中被瘫痪,我不太确定这会带来更好的性能。
由于更多的频道消耗更多的系统资源,我想知道这种做法好吗?
【问题讨论】:
标签: java multithreading rabbitmq