ActiveMQ学习笔记(2)——JMS消息模型
来源:互联网 发布:知悉与知示的意思区别? 编辑:程序博客网 时间:2024/06/05 15:48
1.1 JMS模型简介
JMS支持两种消息通信模型:
点对点模型(Point to Point,P2P)
发布者/订阅者模型(publish/subscribe, pub/sub)
P2P模型中,Sender把一个消息发送到Queue中,这个消息只能由一个客户端消费;一旦消息被消费,其它客户端就不能从这个Queue中获取到消息。巧克力糖盒子里只有一块糖,只有最先打开的那个人能吃到,后来的人就吃不到了。
Pub/Sub模型中,一个消息主题(Topic)被发布以后,可以有多个订阅者收听,这些订阅者都可以获取到消息;前提是,订阅者订阅了这个主题,并且只能接受订阅以后的消息。这就像生活里的期刊订阅,我们只能收到订阅以后的期刊,之前的期刊,杂志社是不可能投递给我们的。
1.2点对点模型
只有一个消费者
每条消息只有一个消费者,如果这条消息被消费,那么其它消费者不能接受到此消息。
时间无关性
消息的消费和时间无关,只要消息被发送了,在消息过期之前,如果没有其他消费者消费了这个消息,那么客户端可以在任何时候来消费这条消息。
消费者必须确认
消费者收到消息之后,必须向Message Provider确认,否则会被认为消息没有被消费,仍然可以被其他消费者消费。可以设置自动确认。这个特点其实也是保证一条消息只能由一个消费者来消费。
非持久化的消息只发一次
非持久化的消息,可能会丢失,因为消息会过期,另外Message Provider可能宕机。
持久化的消息严格发一次
消息可以被持久化,比如持久化在文件系统或者数据库中,这样可以避免Message Provider的异常或者其它异常导致消息丢失。
1.3发布者/订阅者模型
每条消息可以有多个订阅者
订阅者只能消费它们订阅topic之后的消息
非持久化订阅,订阅者必须保持为活动状态才能使用这些消息,如果一个订阅者A断开了10分钟,那么A就会收不到这10分钟内的消息。
持久化订阅,Message Provider会保存这些消息,即使订阅者因为网络原因断开了,再重新连接以后,能让消费这些消息。
是否使用持久化订阅,需要根据业务场景判断。
- ActiveMQ学习笔记(2)——JMS消息模型
- ActiveMQ学习笔记(2)——JMS消息模型
- ActiveMQ学习笔记(2)——JMS消息模型
- ActiveMQ学习笔记(6)——JMS消息类型
- ActiveMQ学习笔记(6)——JMS消息类型
- JMS学习笔记(一)——JMS简介安装ActiveMQ
- ActiveMQ学习笔记(五)——使用Spring JMS收发消息
- ActiveMQ学习笔记(5)——使用Spring JMS收发消息
- ActiveMQ学习笔记(5)——使用Spring JMS收发消息
- JMS学习五(ActiveMQ消息传送模型)
- Jms---ActiveMQ学习笔记
- JMS-ActiveMQ学习笔记
- 消息系统——ActiveMQ & JMS
- 学习笔记——JMS消息服务
- 学习笔记——JMS消息
- ActiveMQ学习笔记(1)——JMS的概念
- ActiveMQ学习笔记(1)——JMS的概念
- ActiveMQ学习笔记(1)——JMS的概念
- String.Split(String regex)方法之设置多个分隔符
- C#遍历DataSet中数据的几种方法
- 带团队感受
- xib设置宽高相等
- android跳转至权限设置界面
- ActiveMQ学习笔记(2)——JMS消息模型
- 【Android多媒体(重采样与混频)】AudioResamper重采样算法分析
- Maven基础配置,上传jar包到私服
- 解决android opengl glReadPixels 慢的问题 三
- 关于JavaScript面向对象的一个示例
- eclipse 运行性能优化 修改eclipse.ini
- 20170707 github
- hive join 数据倾斜 真实案例
- STL中的map集合扩展字段比较方便