关于 ActiveMQ 的消息模式

Posted 震撼起飞

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于 ActiveMQ 的消息模式相关的知识,希望对你有一定的参考价值。

1、JMS Queue 执行 load balancer语义:
一条消息仅能被一个 consumer(消费者) 收到。如果在 message 发送的时候没有可用的
consumer,那么它将被保存一直到能处理该 message 的 consumer 可用。如果一
个 consumer 收到一条 message 后却不响应它,那么这条消息将被转到另一个
consumer 那儿。一个 Queue 可以有很多 consumer,并且在多个可用的 consumer
中负载均衡。

点对点消息传递域的特点如下:
•  每个消息只能有一个消费者。
•  消息的生产者和消费者之间没有时间上的相关性。无论消费者在生产者发
送消息的时候是否处于运行状态,它都可以提取消息。

2、Topic 实现 publish和 subscribe 语义:
一条消息被 publish时,它将发到所有感兴趣的订阅者,所以零到多个subscriber
将接收到消息的一个拷贝。但是在消息代理接收到消息时,只有激活订阅的
subscriber能够获得消息的一个拷贝。

发布/订阅消息传递域的特点如下:
•  每个消息可以有多个消费者。
•  生产者和消费者之间有时间上的相关性。订阅一个主题的消费者只能消费
自它订阅之后发布的消息。JMS 规范允许客户创建持久订阅,这在一定程
度上放松了时间上的相关性要求。持久订阅允许消费者消费它在未处于激
活状态时发送的消息。

3、分别对应两种消息模式:
Point-to-Point (点对点),Publisher/Subscriber Model (发布/订阅者) 其中在 Publicher/Subscriber 模式下又有Nondurable subscription(非持久订阅)
和 durable subscription (持久化订阅)2种消息处理方式(支持离线消息)。

在点对点消息传递域中,目的地被成为队列(queue);在发布/订阅消息传递
域中,目的地被成为主题(topic)。

以上是关于关于 ActiveMQ 的消息模式的主要内容,如果未能解决你的问题,请参考以下文章

关于消息中间件ActiveMQ的企业级应用

ActiveMQ队列主题模式区别

ActiveMQ从入门到精通

ActiveMQ

从入门到精通的ActiveMQ

JAVA的设计模式之观察者模式----结合ActiveMQ消息队列说明