在多个线程中使用RabbitMQ发布者

时间:2018-06-17 14:50:57

标签: java multithreading rabbitmq thread-safety

我想创建一个可能从不同线程调用的RabbitMQ发布者  基于RabbitMQ最佳实践,我不应允许在不同的线程中使用相同的通道,因此在发布者的多个实例中共享此通道将导致问题。
我能想到的唯一解决方案是拥有一个内部队列的管理器线程,该内部队列实现内部生产者 - 消费者,只有一个消费者只存在于该线程中。
 有没有更简单的方法?由于显而易见的原因,我希望尽可能避免同步,这个解决方案不允许这样做。

1 个答案:

答案 0 :(得分:1)

您建议的解决方案是可以的。您也可以查看Spring AMQP。它提供了一个线程安全的RabbitTemplate,它在后台使用了通道池。