复合目的地
从 1.1 版本开始,ActiveMQ Classic 支持一项名为复合目的地的技术。这允许单个虚拟 JMS 目的地用于表示 JMS 目地的集合。
例如,您可以使用复合目的地在一个操作中将消息发送到 12 个物理队列。或者在一个操作中将消息发送到一个主题和一个队列。
我们使用简单的分隔符“,”来实现这一点,允许在创建目的地或在 JNDI 中注册目的地时指定多个目的地。例如,目的地
FOO.A,FOO.B,FOO.C
表示 3 个不同的目的地。这可以与队列或主题一起使用,以表示一组 3 个目的地。例如
// send to 3 queues as one logical operation
Queue queue = new ActiveMQQueue("FOO.A,FOO.B,FOO.C");
producer.send(queue, someMessage);
如果您希望混合和匹配目的地的类型,可以使用 queue://
或 topic://
的前缀来区分目的地的类型。例如,要在队列上发布,但也在主题上发出通知,可以使用
// send to queues and topic one logical operation
Queue queue = new ActiveMQQueue("FOO.A,topic://NOTIFY.FOO.A");
producer.send(queue, someMessage);
复合目的地也可以在 代理端配置,以便发送到单个目的地的消息将被透明地复制到多个物理目的地。