1. JMS基本概念
JMS(Java Message Service) 即Java消息服务。它提供标准的产生、发送、接收消息的接口简化企业 应用的开发。它支持两种消息通信模型:点到点(point-to-point)(P2P)模型和发布/订阅(Pub/Sub)模型。P2P 模型规定了一个消息只能有一个接收者;Pub/Sub 模型允许一个消息可以有多个接收者。
对于点到点模型,消息生产者产生一个消息后,把这个消息发送到一个Queue(队列)中,然后消息接收者再从这个Queue中读取,一旦这个消息被一个接收者读取之后,它就在这个Queue中消失了,所以一个消息只能被一个接收者消费。
与点到点模型不同,发布/订阅模型中,消息生产者产生一个消息后,把这个消息发送到一个Topic中,这个Topic可以同时有多个接收者在监听,当一个消息到达这个Topic之后,所有消息接收者都会收到这个消息。
简单的讲,点到点模型和发布/订阅模型的区别就是前者是一对一,后者是一对多。 |
2. 几个重要概念
Destination :消息发送的目的地,也就是前面说的Queue和Topic。创建好一个消息之后,只需要把这个消息发送到目的地,消息的发送者就可以继续做自己的事情,而不用等待消息被处理完成。至于这个消息什么时候,会被哪个消费者消费,完全取决于消息的接受者。
Message :从字面上就可以看出是被发送的消息。它有下面几种类型:
StreamMessage:Java 数据流消息,用标准流操作来顺序的填充和读取。
MapMessage:一个Map类型的消息;名称为 string 类型,而值为 Java 的基本类型。
TextMessage:普通字符串消息,包含一个String。
ObjectMessage:对象消息,包含一个可序列化的Java 对象
BytesMessage:二进制数组消息,包含一个byte[]。
XMLMessage: 一个XML类型的消息。
最常用的是TextMessage和ObjectMessage。
Session: 与JMS提供者所建立的会话,通过Session我们才可以创建一个Message。
Connection: 与JMS提供者建立的一个连接。可以从这个连接创建一个会话,即Session。
ConnectionFactory: 那如何创建一个Connection呢?这就需要下面讲到的ConnectionFactory了。通过这个工厂类就可以得到一个与JMS提供者的连接,即Conection。
Producer: 消息的生产者,要发送一个消息,必须通过这个生产者来发送。
MessageConsumer: 与生产者相对应,这是消息的消费者或接收者,通过它来接收一个消息。
前面多次提到JMS提供者,因为JMS给我们提供的只是一系列接口,当我们使用一个JMS的时候,还是需要一个第三方的提供者,它的作用就是真正管理 这些Connection,Session,Topic和Queue等。
ConnectionFactory---->Connection--->Session--->Message
Destination + Session------------------------------------>Producer
Destination + Session------------------------------------>MessageConsumer
通过下面这个简图可以看出上面这些概念的关系。
那么可能有人会问: ConnectionFactory和Destination 从哪儿得到?
这就和JMS提供者有关了. 如果在一个JavaEE环境中, 可以通过JNDI查找得到, 如果在一个非JavaEE环境中, 那只能通过JMS提供者提供给我们的接口得到了.
分享到:
相关推荐
"JMS567_578_设置休眠分位操作步骤.xlsx"很可能是一个详细的指南,列出了如何修改这些主控芯片硬盘盒的休眠时间的步骤。Excel文件通常用于组织和展示步骤,表格形式易于理解和执行。用户应当按照文件中的指示进行...
综上所述,JMS583 USB转PCIe桥接芯片方案为开发者提供了一种高效的接口转换解决方案,适用于多种高速存储设备。通过深入理解芯片的技术特性、参考设计和应用指导,开发人员能够构建出满足高性能需求的产品。
【jsm2018: JSM 2018的演示文稿】是一次重要的统计学会议,其中涵盖了丰富的学术讨论和分享。这个压缩包文件包含了2018年在加拿大温哥华举行的 Joint Statistical Meetings (JSM 2018) 的演讲资料。JSM 是全球最大的...
内容:JSM 2018温哥华会议212 幻灯片和演讲者信息 时间:2018年7月30日星期一,2:00 PM-3:50 PM 地点:温哥华会议中心 缩短的URL 重定向到此处。 下午2:05版本控制:您的痛苦得到了收获-詹妮弗·布赖恩(Jennifer...
标题中的"JSM"指的是JavaScript Machine (JS Machine) 或者可能是Joint Statistical Meetings,这是一个大型的统计学会议。"InfoVis"则是Information Visualization的缩写,指的是数据可视化的领域,它涉及将复杂的...
【标题】"jsm_2018: JSM 2018演讲的神经影像再现性和R"指的是在2018年JavaScript Meetup (JSM) 上的一个演讲,主题聚焦于神经影像的再现性研究,并且使用R语言进行数据分析和可视化。这场演讲可能深入探讨了如何使用...
JMS583是一款专为USB 3.1 Gen 2与PCIe Gen3x2 (M.2)接口转换设计的高性能桥接芯片,它采用QFN64(8x8)封装形式,提供了高效的信号转换和数据传输能力。在理解这个方案时,我们需要深入探讨以下几个关键知识点: 1....
两个固件升级工具 其中一个是量产工具可以修改休眠时间和盒子信息 TRIM检查工具 有几个固件版本为全网首发,别人没有的资源 固件列表: JMS578_00.01.00.05 JMS578_00.02.00.03 JMS578_00.02.00.09 JMS578_00.02....
JMS577是一种常见的硬盘主控芯片,负责管理硬盘的读写操作、错误校验以及电源管理等功能。 描述中提到的问题是,当希捷移动硬盘更换了硬盘后,如果出现指示灯不亮的情况,通常意味着主控芯片无法正常识别或驱动新的...
JMS561主控芯片是应用于硬盘盒中的一个重要组件,负责管理硬盘的读写操作以及电源管理等关键功能。在移动硬盘领域,它扮演着至关重要的角色,因为移动硬盘通常需要在不同设备间频繁传输数据,同时也需要考虑能耗和...
JMS578是一款常见的USB-to-SATA桥接芯片,广泛用于硬盘盒和移动硬盘设备,提供USB接口与内置硬盘之间的数据传输。 更新固件的主要目的是为了提升硬件性能、修复已知问题、增强兼容性或添加新功能。对于硬盘盒来说,...
JMS578是一款由智微(JMICRON)公司开发的USB桥接控制器,它广泛应用于各种USB存储设备,如外置硬盘盒、SSD固态硬盘等。该固件资源主要用于提升JMS578控制器的功能性和性能,特别是对UASP(USB Attached SCSI Protocol...
描述中提到,这是一个小型的Java项目示例,用于演示如何在ActiveMQ的基础上构建点对点消息传递。点对点通信模式是一种通信架构,其中每个消息只由一个生产者创建,并且只有一个消费者接收。这种模式通常用于应用程序...
可以量产的JMS578-PCB文件。PADS可以打开,供参考 !~!~!
JSM的“显示帖子元数据”插件在帖子编辑页面底部的一个metabox中显示所有帖子元(也称为自定义字段)键及其未序列化的值。 没有插件设置-只需安装并激活插件即可。相关插件(即类别和标签)需要提升您的社交和搜索...
数据融合matlab代码JSM_SVM_MLL 编码是针对论文“ Gao,Q.和Lim,S.,2019. Matlab的实现”。该方法用于超光谱图像分类的支持向量机和联合稀疏模型的概率融合。GIScience和遥感。(DOI: 10.1080 / 15481603....
JSM的列表页面简码插件名称JSM的列表页面简码概括[list-pages],[sibling-pages]和[child-pages]简码可列出内容中的页面。 稳定版1.0 需要PHP 7.0或更高版本需要WordPress 4.5或更高版本经过WordPress测试5.7.1 贡献...
JSM的显示用户元数据 插件名称 JSM的显示用户元数据 概括 在用户编辑页面的metabox中显示所有用户meta(又名自定义字段),这是调试用户meta问题的绝佳工具。 稳定版 1.3.0 需要PHP 7.0或更高版本 需要WordPress ...
硬盘盒电路图中的JMS567QFN是一种集成电路芯片,通常用于硬盘盒或其他存储设备中,用于实现与计算机主机之间的高速数据传输和供电管理。JMS567QFN芯片符合USB供电规范,支持多种硬盘接口,如SATA、SATA II和SATA III...