ActiveMQ--JMS的点对点模式于发布订阅模式的总结

一、点对点模型(peer-to-peer)

点对点模型是基于队列的,生产者发送消息到队列,消费者从队列中接收消息,队列的存在使消息可以进行异步传输

类似于用手机发短信,不必双方手机都开机。

1.在非事务状态下,当session关闭时如果有消息收到但还没有被签收(acknowledged),那当消费者下次连接到相同的队列时,这些消息还会被再次接收。

2.队列可以长久的保存消息直到消费者收到消息,也就是说消息数据默认是持久化的,消费者不需要担心消息会丢失而时刻和队列保持激活的连接状态,这充分体现了消息队列的异步传输模式的特性。

且点对点模型的消息只可以被某一个消费者消费一次。

二、发布订阅模式(topic

Java Pub/Sub模型定义了如何向一个内容节点发布和订阅消息,这些节点被称为topic

主题可以被认为是消息的传输中介,发布者(publisher)发布消息到主题,订阅者(subscribe)从主题订阅消息,每一个订阅者都会收到自订阅之后发布的所有消息。

1.topic模式默认消息是进行非持久化存储的,非持久订阅只有当客户端处于订阅且在线状态,才能接收到发送到某个主题的消息。

如果消费者为离线状态,生产者发送的主题消息会被丢失废弃,消费者永远不会收到。

2.设置持久化存储后,客户端首先向MQ注册一个自己的身份ID识别号,当这个客户端处于离线的时候,生产者会为这个ID保存所有发送到主题的消息,客户端再次上线时会收到自己处于离线时主题的消息。

无论是持久还是非持久模式下,必须都先要订阅注册后才能接收到消息。

发布了227 篇原创文章 · 获赞 77 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/m2606707610/article/details/103472984