MessageProducer 和目的地的目的是什么?

What's the purpose of the MessageProducer and destination?

在JMS中好像只能为一个Destination创建一个MessageProducer,但是为什么可以在send()方法上传递一个Destination?是否可以使用一个 MessageProducer 发送给多个 Destination

例如:

MessageProducer messageProducer = session.createProducer(Queue, Queue2);
messageProducer.send(Queue, objectMessage);
messageProducer.send(Queue2, objectMessage2);

是的,可以使用一个 MessageProducer 发送给多个 Destination。您想要的是 "anonymous" 制作人。

当您创建 MessageProducer 实例时,只需将 null 传递给 Destination,例如:

private MessageProducer messageProducer = session.createProducer(null);

这在 JavaDoc for javax.jms.Session 中有详细说明。

然后在发送消息时指定Destination,例如:

messageProducer.send(Queue, objectMessage);
messageProducer.send(Queue2, objectMessage2);

JavaDoc for javax.jms.MessageProducer 中查看更多信息。