3

我有一个使用 rabbit 来分发任务的多层工作模式实现,因此消息通过许多“listners”之一进入(一个执行器服务,有许多线程调用 consumer.basicConsume(),每个线程都有自己的 Channel)。消息在应用程序中传递,然后在最后阶段被 ack 侦听器拾取(同样,用自己的不同通道用尽其自己的 ExecutorService )以进行确认,但是服务器不会拾取 ack . 我写了一个简单的测试,我在同一个线程和不同线程中确认来自不同通道的消息,在它们工作的同一个线程上,在不同的线程上它们不工作,并且不同线程上的相同通道也可以工作.

有没有人遇到过这个?我真的不想保留频道到 ID 的映射。

4

1 回答 1

0

完全不建议在不同的线程中确认消息,您应该避免这种行为。这是文档所说的:http ://www.rabbitmq.com/api-guide.html#channel-threads

于 2014-04-12T02:35:26.487 回答