首页 > 解决方案 > 在多个线程中使用 RabbitMQ 发布者

问题描述

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

标签: javamultithreadingrabbitmqthread-safety

解决方案


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


推荐阅读