【ActiveMQ 两种消费模式】

MQ:Message Queue 消息队列 作用:

MQ可以理解为现实生活中的邮局,当A给物品给B时,A无需直接去找B当面去将物品交给B,A可以通过邮局寄送,然后B通过查询快递信息(监听),知道物品达到邮局,然后B自己去邮局取即可。

消息队列的2种通信模式: 

point-to-point:点对点(queue)

特点:点对点并不是只A发送的消息只能指定B接收,而是只A发送的任意一条消息只能由一个人接收处理,也就是每条消息只能被消费一次。

1)一个消息只能被一个服务接收

2)消息一旦被消费,就会消失

3)如果没有被消费,就会一直等待,直到被消费

4)多个服务监听同一个消费空间,先到先得

publish/subscribe发布/订阅模式(topic)

特点:A发送的消息可以被所有监听A的对象的接收,就好比学校的广播,所有的学生都可以收听校园广播信息。

1)一个消息可以被多个服务接收

2)订阅一个主题的消费者,只能消费自它订阅之后发布的消息。

3)消费端如果在生产端发送消息之后启动,是接收不到消息的,除非生产端对消息进行了持久化(例如广播,只有当时听到的人能听到信息)

Queue模式:

点对点通信,每个消息只有一个消费者,消息保证送达,离线消费者可以在下次上线后收到之前积压的消息。

Topic模式:

普通订阅:

不区分消费者,当前有几个客户端在线,就发送几条广播给客户端。

持久订阅:

区分消费者,消费者在线则直接发送消息广播给消费者,消费者离线,只要该消费者有topic登记,就会为其保留消息直至其再次连接后一次性推送,消息可以积压。

猜你喜欢

转载自gaojingsong.iteye.com/blog/2430351