消息队列入门(三)JMS标准及实现

消息中间件

消息中间件即Message-oriented middleware(MOM),消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。
通过提供消息传递和消息排队模型,消息中间件可以在分布式环境下扩展进程间的通信。
消息中间件可以即支持同步方式,又支持异步方式。
异步中间件比同步中间件具有更强的容错性,在系统故障时可以保证消息的正常传输。异步中间件技术又分为两类:广播方式和发布/订阅方式。
消息中间件应用主要有两个优点:异步和解耦。

JMS规范标准

JMS即Java消息服务(Java Message Service),JMS是一个基于Java平台面向消息中间件(MOM)的API,用于在两个应用程序之间,
或分布式系统中发送消息,进行异步通信。
Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。
JMS是类似于JDBC(Java Database Connectivity),并不局限于某个具体消息中间件,
JDBC 是可以用来访问许多不同关系数据库的 API,
而 JMS 则提供同样与中间件无关的访问方法,以访问消息收发服务。

>>JMS对象模型

ConnectionFactory:
连接工厂,JMS 用它创建连接Connection,一般设为单例模式,
一旦创建,就一直运行在应用容器内,客户端使用JNDI查找连接工厂,然后利用连接工厂创建一个JMS连接。

Connection:
JMS连接表示JMS客户端和服务器端之间的一个活动的连接,是由客户端通过调用连接工厂的方法建立的。

Session:
JMS会话表示JMS客户与JMS服务器之间的会话状态。JMS会话建立在JMS连接上,表示客户与服务器之间的一个会话线程。

Destination:
消息的目的,包括队列(PTP),主题(Pub/Sub)。

Message Producer和Message Consumer:
生产者和消费者对象由Session对象创建,用于发送和接收消息。

Message:
JMS 消息由以下几部分组成:消息头,属性,消息体。
消息头(header):JMS消息头包含了许多字段,它们是消息发送后由JMS提供者或消息发送者产生,用来表示消息、设置优先权和失效时间等等,并且为消息确定路由Routing。
属性(property):由消息发送者产生,用来添加删除消息头以外的附加信息。
消息体(body):由消息发送者产生,JMS中定义了5种消息体:ByteMessage、MapMessage、ObjectMessage、StreamMessage和TextMessage。

两种消息传递模型

(1)点对点模型(Point-to-Point)
点对点模型用于消息生产者和消息消费者之间点到点的通信。消息生产者将消息发动到由某个名字标识的特定消费者。这个名字实际上对应于消息服务中的一个队列(Queue),在消息传动给消费者之前它被存储在这个队列中。队列可以是持久的,以保证在消息服务出现故障时仍然能够传递消息。

(2)发布-订阅模型(Publish/Subscribe)
发布-订阅模型用称为主题(topic)的内容分层结构代替了PTP模型中的惟一目的地,
发送应用程序发布自己的消息,指出消息描述的是有关分层结构中的一个主题的信息。希望接收这些消息的应用程序订阅了这个主题。订阅包含子主题的分层结构中的主题的订阅者可以接收该主题和其子主题发表的所有消息



本文转自邴越博客园博客,原文链接:http://www.cnblogs.com/binyue/p/4738360.html,如需转载请自行联系原作者

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/286291.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言试题二十二之定义了3×3的二维数组,并在主函数中赋值。函数的功能使求出数组周边元素的平均值并作为函数值返回给主函数中的s。

📃个人主页:个人主页 🔥系列专栏:C语言试题200例目录 💬推荐一款刷算法、笔试、面经、拿大公司offer神器 👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 定义了33的…

【专升本计算机】专升本计算机期末考试复习题(A卷附答案)

文章目录 一、单选题(每空2分,共20分)。二、填空题(每空2分,共30分)。三、程序题(每小题10分,共50分)一、单选题(每空2分,共20分)。 世界上第一台电子计算机诞生于( B )年。 A.1956   B.1946   C.1944   D.1940以下不属于数字计算机特点的是 C__ 。 A.运算…

spring定时任务的配置使用

spring的定时任务配置分为三个步骤&#xff1a; 1、定义任务 2、任务执行策略配置 3、启动任务 1、定义任务 <!--要定时执行的方法--> <bean id"testTaskJob" class"org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean&qu…

【前端就业课 第二阶段】CSS 零基础到实战(02)标签类型、字体与图片

整个前端学习路线 以下路线为 CSDN C认提供&#xff1a; 如果想 快点搞完 并且 就业 可以选择超级实习生计划 如果有技术想稳定点找工作&#xff0c;可以C认证&#xff0c;C认证还可以 内推、招聘会 &#xff0c;所以如果在校生想要稳一点&#xff0c;就可以选择C认证或者超…

【SignalR全套系列】之在.Net6中实SignalR通信

微信公众号&#xff1a;趣编程ACE关注可了解更多的.NET日常实战开发技巧&#xff0c;如需源码 请公众号后台留言 源码[如果觉得本公众号对您有帮助&#xff0c;欢迎关注]前文回顾【SignalR全套系列】之在.NetCore中实现WebSocket双工通信【SignalR全套系列】之在.Net Core 中实…

实践1-qq邮箱主页

纯html的网页 采用table分割板块进行布局<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://www.w3.org/1999/xhtml"> <head>…

解决adb调试显示 Connected Device ************** [null]

或者有时候直接提示[UNAUTHORIZED……] 上边的提示 Connected Device 中设备编号 后边加了个[null]&#xff0c;意思是未授权&#xff0c;看下设备是否提示授权&#xff0c;如果没看到提示&#xff0c;可以重新拔掉设备&#xff0c;重新连接接数据线&#xff0c;会弹出一个授权…

C语言试题二十三之编写一个函数void function(int tt[m][n],int pp[n]),tt指向一个m行n列的二维函数组,求出二维函数组每列中最小元素,并依次放入pp所指定一维数组中

📃个人主页:个人主页 🔥系列专栏:C语言试题200例目录 💬推荐一款刷算法、笔试、面经、拿大公司offer神器 👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 请编写一个…

Java 解析XML的几种方法

XML现在已经成为一种通用的数据交换格式,它的平台无关性,语言无关性,系统无关性,给数据集成与交互带来了极大的方便。 XML在不同的语言里解析方式都是一样的,只不过实现的语法不同而已。 基本的解析方式有两种,一种叫SAX&#xff0c;另一种叫DOM。 SAX是基于事件流的解析,DOM是…

怎么发表博客,还不能显示在自己的博客首页上,这还不如玩单机!

怎么发表博客&#xff0c;还不能显示在自己的博客首页上&#xff0c;这还不如玩单机&#xff01; 怎么发表博客&#xff0c;还不能显示在自己的博客首页上&#xff0c;这还不如玩单机&#xff01; 怎么发表博客&#xff0c;还不能显示在自己的博客首页上&#xff0c;这还不如玩…

【前端就业课 第二阶段】CSS 零基础到实战(03)前端 CSS 动效 transition transform

本系列文章持续更新&#xff0c;点击专栏就可以看其他文章&#xff1a;点击进入专栏 整个前端学习路线 以下路线为 CSDN C认提供&#xff1a; 如果想 快点搞完 并且 就业 可以选择超级实习生计划 如果有技术想稳定点找工作&#xff0c;可以C认证&#xff0c;C认证还可以 内…

【专升本计算机】专升本计算机期末考试复习题(B卷附答案)

文章目录 一、单选题(每空2分,共20分)。二、填空题(每空2分,共30分)。三、程序题(每小题10分,共50分)一、单选题(每空2分,共20分)。 世界上第一台电子计算机诞生于( B )年。 A.1956   B.1946   C.1944   D.1940以下不属于数字计算机特点的是 C__ 。 A.运算…

C#基于.Net-HtmlAgilityPack库的爬虫初体验

讲故事前几天有点空闲时间&#xff0c;在github上看一些.Net的开源库&#xff0c;看到了关于爬虫相关的库&#xff0c;于是加入了一个QQ群&#xff0c;看到里面各位大佬讨论的是爬的越好&#xff0c;进去越快&#xff0c;于是我自己也想做一个爬虫相关的东西&#xff0c;但是爬…

C语言试题二十四之编写一个函数unsigned function(unsigned w),w使一个大于10的无符号整数,若w是n(n≥2)位的整数,则函数求出w后n-1位的数作为函数值返回。

📃个人主页:个人主页 🔥系列专栏:C语言试题200例目录 💬推荐一款刷算法、笔试、面经、拿大公司offer神器 👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 请编写一个…

Github上影响力最大的十位Pythoner

http://mp.weixin.qq.com/s?__bizMzAxMjUyNDQ5OA&mid2653551864&idx1&sn493bbba119d6888c7ee5bdcc1a1aaba4&scene1&srcid09115MPDroKR2mgxBaOOIzSb#rd 转载于:https://www.cnblogs.com/ITniu/p/5862322.html

Android中文图混排时文图的居中对齐 FontMetrics以及自定义ImageSpan实现

文章转自&#xff1a;http://www.sohu.com/a/150059234_611601 本文作者CnPeng的博客地址&#xff1a; http://www.jianshu.com/p/2650357f7547 这个标题有点长&#xff0c;乍一看这么个标题你可能没明白啥意思&#xff0c;且听我慢慢道来。 公司的项目中新增了一个“心动”…

关于事件监听机制的总结(Listener和Adapter)

记得以前看过事件监听机制背后也是有一种设计模式的.(设计模式的名字记不清了,只记得背后实现的数据结构是数组.) 附上事件监听机制的分析图: 一个事件源可以承载多个事件(只要这个事件源支持这个事件就可以,男人就不支持生孩子的事件) 事件和监听器有对应关系的. 下面用awt中…

【专升本计算机】专升本计算机期末考试复习题(C卷附答案)

文章目录 一、单选题(每空2分,共20分)。二、填空题(每空2分,共30分)。三、程序题(每小题10分,共50分)一、单选题(每空2分,共20分)。 世界上第一台电子计算机诞生于( B )年。 A.1956   B.1946   C.1944   D.1940关闭正在运行的程序窗口,可以按( D )。 A.…

C语言试题二十五之编写一个函数float function(double h),函数的功能使对变量h中的值保留2位小数,并对第三位进行四舍五入(规定h中的值位正数)。

📃个人主页:个人主页 🔥系列专栏:C语言试题200例目录 💬推荐一款刷算法、笔试、面经、拿大公司offer神器 👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 编写一个函…

一、首页、详情页、文章编辑页制作《iVX低代码/无代码个人博客制作》

注&#xff1a;iVX也有免费直播课《第八期直播课》 一、首页制作 首页预览如下&#xff1a; 首先在博客页创建一个相对应项目&#xff1a; 接着选择前台&#xff0c;创建一个页面&#xff0c;命名为首页&#xff1a; 接着更改当前屏幕为小屏尺寸&#xff1a; 接着我们分…