ActiveMQ 文档指出 Session 和 MessageProducer 对象不是线程安全的。如果我有一组可以产生持久消息的线程,那么如何在知道特定发送操作是否成功的情况下正确地将它们发送到 ActiveMQ?
- 每个工作线程都有一个单独的 Session/MessageProducer。
- 创建显式的生产者线程集并通过 BlockingQueue 将消息传递给它们(如何确定发送是否成功?)。
- 对于前面的案例,使用 Future<> 来获得 ActiveMQ 中持久消息的成功状态。
- 只需将每个 MessageProducer.sendMessage() 调用包装在同步块中。
或者,对于这种情况,也许有任何最佳实践。谢谢。