`
- 浏览:
131234 次
- 性别:
- 来自:
南京
-
JMS学习1
1.JMS介绍
JMS源于企业应用对于消息中间件的需求,不同系统之间可以进行异步消息传输(XML报文)。Sun公司和它的合作伙伴设计的JMS API定义了一组公共的应用程序接口和相应语法,使得Java程序能够和其他消息组件进行通信。JMS有四个组成部分:JMS服务提供者、消息管理对象、消息的生产者消费者和消息本身。
1)JMS服务提供者实现消息队列和通知,同时实现消息管理的API。JMS已经是J2EE API的一部分,J2EE服务器都提供JMS服务。
2) 消息管理对象提供对消息进行操作的API。JMS API中有两个消息管理对象:创建jms连接使用的工厂(ConnectionFactory)和目的地(Destination),根据消息的消费方式的不同ConnectionFactory可以分为QueueConnectionFactory和TopicConnectionFactory,目的地(Destination)可以分为队列(Queue)和主题(Topic)两种。
3)消息的生产者和消费者。消息的产生由JMS的客户端完成,JMS服务提供者负责管理这些消息,消息的消费者可以接收消息。消息的生产者可以分为――点对点消息发布者(P2P)和主题消息发布者(TopicPublisher)。所以,消息的消费者分为两类:主题消息的订阅者(TopicSubscriber)和点对点消息的接收者(queue receiver)
4)消息。消息是服务提供者和客户端之间传递信息所使用的信息单元。JMS消息由以下三部分组成:
消息头(header)――JMS消息头包含了许多字段,它们是消息发送后由JMS提供者或消息发送者产生,用来表示消息、设置优先权和失效时间等等,并且为消息确定路由。
属性(property)――用来添加删除消息头以外的附加信息。
消息体(body)――JMS中定义了5种消息体:ByteMessage、MapMessage、ObjectMessage、StreamMessage和TextMessage。
2.Messages 通信方式
上面提到JMS通信方式分为点对点通信和发布/订阅方式
1)点对点方式(point-to-point)
点对点的消息发送方式主要建立在 Message Queue,Sender,reciever上,Message Queue 存贮消息,Sneder 发送消息,receive接收消息.具体点就是Sender Client发送Message Queue ,而 receiver Cliernt从Queue中接收消息和"发送消息已接受"到Quere,确认消息接收。简单点就是发送者向消息队列中发送报文,接收者监听队列从队列中获取报文。发送和接收之间没有时间上的限制,发送者只负责发送,不管接收者什么时候去队列中取数据。
2)发布/订阅 方式(publish/subscriber Messaging)
发布/订阅方式用于多接收客户端的方式.作为发布订阅的方式,可能存在多个接收客户端,并且接收端客户端与发送客户端存在时间上的依赖。一个接收端只能接收他创建以后发送客户端发送的信息。作为subscriber ,在接收消息时有两种方法,destination的receive方法,和实现message listener 接口的onMessage 方法。
JMS学习3 - JMS API的编程模型
1、受管对象
JMS中有两种类型的受管对象:
ConnectionFactory :用于创建到JMS提供商的底层消息系统的连接。
Destination :由JMS客户端使用以指定正被发送的消息目标或正被接收的消息来源。
2、连接
连接也有两种形式,分别实现QueueConnection接口和TopicConnection接口。例如我们可以用J2EE平台的默认连接产生地创建连接。
QueueConnection queueConnection = queueConnectionFactory.createQueueConnection();
TopicConnection topicConnection = topicConnectionFactory.createTopicConnection();
3、会话
会话的两种形式是分别实现了QueueSession接口和TopicSession接口。
用QueueConnection对象创建QueueSession会话,代码如下:
QueueSession queueSession = queueConnection.createQueueSession(true, 0);
用TopicConnection对象创建TopicSession会话,代码如下:
TopicSession topicSession = topicConnection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
4、消息发生器
PTP模型的消息发生器实现的是QueueSender接口,
Pub/Sub模型的消息发生器实现的是TopicPublisher接口
代码如下:
QueueSender queueSender = queueSession.createSender(myQueue);
TopicPublisher topicPublisher = topicSession.createPublisher(myTopic);
5、消息处理器
PTP模型的消息处理器实现的是QueueReceiver接口。
Pub/Sub模型的消息处理器实现的是TopicSubscriber接口。
6、消费者接收消息两种方式:
session.createConsumer()
1>、consumer.receive() 或 consumer.receive(int timeout)。
2>、注册一个MessageListener。
以下是对这些接口的简单描述:
ConnectionFactory:连接工厂,JMS 用它创建连接
Connection:JMS 客户端到JMS Provider 的连接
Destination:消息的目的地
Session:一个发送或接收消息的线程
MessageProducer: 由Session 对象创建的用来发送消息的对象
MessageConsumer: 由Session 对象创建的用来接收消息的对象
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
DCM与PFC融合的CRM混合模式创新实践,DCM CRM混合模式PFC ,DCM; CRM混合模式; PFC,DCM与PFC的混合模式在CRM系统中的应用
Radon-Wigner变换与Wigner-Hough估计在信号参数提取中的应用研究——线性调频信号处理与雷达信号速度补偿的探索,利用Radon—Wigner变,Wigner—Hough估计线性调频信号参数,信号参数估计,雷达信号处理,速度补偿 ,核心关键词:Radon—Wigner变换; Wigner—Hough估计; 线性调频信号参数估计; 信号参数估计; 雷达信号处理; 速度补偿,利用Radon-Wigner变换与Wigner-Hough估计,实现线性调频信号参数快速估计,雷达信号处理中的速度补偿技术
基于三菱PLC与组态王技术的自动化立体车库堆垛书架控制系统研究与应用第1100例实践,No.1100 基于三菱PLC和组态王组态自动化立体车库控制堆垛书架 ,三菱PLC; 组态王组态; 自动化立体车库; 控制; 堆垛书架,基于三菱PLC与组态王控制的立体车库堆垛书架自动化系统
"交错并联Boost PFC仿真电路模型:双闭环控制策略下的输出电压与电感电流分析",交错并联Boost PFC仿真电路模型 采用输出电压外环,电感电流内环的双闭环控制方式 交流侧输入电流畸变小,波形良好,如效果图所示 plecs matlab simulink仿真模型 ,核心关键词: 交错并联Boost; PFC仿真电路模型; 双闭环控制方式(输出电压外环、电感电流内环); 交流侧输入电流畸变小; 波形良好; plecs matlab simulink仿真模型。,基于PLECS与Matlab Simulink的Boost PFC双闭环控制仿真模型
"COMSOL仿真:固体超声导波二维模拟及汉宁窗调制5周期正弦激励信号的添加与中心频率200kHz的位移控制",COMSOL—固体超声导波二维仿真 激励信号为汉宁窗调制的5周期正弦函数,中心频率为200kHz 通过指定位移来添加激励信号 ,COMSOL;固体超声导波;二维仿真;汉宁窗调制;正弦函数;中心频率200kHz;指定位移添加激励信号。,COMSOL固体超声导波二维仿真:汉宁窗调制正弦激励信号添加
MATLAB环境下多元变分模态分解与多通道去趋势波动分析多变量信号去噪技术的研究与应用,MATLAB环境下一种基于多元变分模态分解和多通道去趋势波动分析的多变量信号去噪方法。 算法运行环境为MATLAB r2018a,算法可迁移至金融时间序列,地震信号,语音信号,声信号,生理信号(ECG,EEG,EMG)等信号。 ,多元变分模态分解; 多通道去趋势波动分析; MATLAB r2018a; 金融时间序列; 地震信号; 语音信号; 声信号; 生理信号去噪,MATLAB多模态多通道去噪算法在多元信号处理中的应用
基于COMSOL的高坝三维应力渗流耦合分析程序:突破传统二维限制的数值模拟研究,基于comsol的高坝-应力渗流耦合分析,三维程序,非二维 ,基于Comsol; 高坝-应力渗流耦合分析; 三维程序; 非二维。,基于COMSOL的三维高坝应力渗流耦合分析程序
"利用Matlab的Music算法提升雷达超分辨成像的图像质量及分辨率",matlab的Music算法,可用于雷达超分辨成像,提高图像分辨率 ,Matlab的Music算法; 雷达超分辨成像; 提高图像分辨率,Matlab Music算法:雷达超分辨成像,提升图像分辨率
面向农网变电站低成本巡检监督终端研究与实现.pdf
融合Floyd算法优化的改进A星算法:多方向搜索与路径平滑度提升的代码实现,融合floyd算法的改进A星算法路径规划代码 可备注,可以,可依据需求更改地图 %% 改进A*算法 路径规划 % 改进A*算法 1 8个搜索方向变成 5个 提高搜索方向 % 2 无斜穿障碍物顶点 避免发生碰撞 % 3 基于改进floyd双向平滑度优化,删除中间多余节点,减少转折,增加路径的平滑度 % 4 评价函数:f(n)=g(n)+(1-log(P))*h(n) % P表示起始点与目标点之间的障碍率 % = 障碍物的数量 栅格总数 % 其中r为当前点到目标点的距离,R为起始点到目标点的距离。 % 试验对比如下 ,核心关键词:融合Floyd算法;改进A星算法;路径规划代码;搜索方向优化;无斜穿障碍物顶点;双向平滑度优化;评价函数;P值表示障
个人网站 界面优美 代码简单 适合初学者和大学毕业设计。
"深度学习驱动的MIMO雷达目标检测与二维测角技术",使用深度学习进行MIMO 雷达目标检测,二维测角 ,使用深度学习进行MIMO雷达目标检测; MIMO雷达; 目标检测; 二维测角,深度学习助力MIMO雷达目标二维测角检测
tf.data定义高效的输入流水线
基于三菱FX PLC的组态王五层电梯控制系统设计与实现,No.1294 三菱FX PLC基于组态王五层电梯控制系统 ,三菱FX PLC; 组态王; 五层电梯; 控制系统; 编号1294,"三菱FX PLC五层电梯控制系统"
OFDM系统调制下QPSK与16QAM的误码率比较分析程序,OFDM系统在QPSK与16QAM调制下,误码率比较程序 ,OFDM系统; QPSK调制; 16QAM调制; 误码率比较程序,OFDM系统调制下误码率比较程序:QPSK vs 16QAM
,西门子s7-1200plc控制5轴伺服,采用结构化编程,触摸屏采用威纶通,项目实现以下功能, 1.plc程序结构 采用结构化编程,每一功能为模块化设计,功能:自动-手动-单步-暂停-伺服断电保持-报警功能等等。 每个功能块建好后都能无数次调用。 三轴机械手x轴-y轴-z轴取放料脉冲定位控制台达b2伺服。 台达伺服速度模式应用,扭矩模式应用。 2触摸屏程序结构 手动画面-报警画面-资料数据-历史数据-用户管理-配方设置-伺服自动画面-伺服参数-i o监控等。 3电气图纸 主电路,伺服电路,plc输入输出控制电路等等 plc程序结构清晰,层次分明,注释齐全。 触摸屏程序画面精美。 cad制图精美。 都可以作为后续自己项目的参考模版。 参考本案例程序。 可快速掌握西门子1200控制伺服编程技巧,扩展自己的编程逻辑思维。 节省大量不必要花费的时间,可快速上手。 plc程序博途v14 以上都能打开。
da3be767d73d8b8ed90b550558f72b4c.part1
基于MATLAB的3-RPS并联机器人动力学与运动学仿真控制技术研究,利用Simulink与Simscape平台进行仿真分析,MATLAB3-rps并联机器人动力学仿真,运动学仿真控制,simulink simscape ,核心关键词:MATLAB; 3-rps并联机器人; 动力学仿真; 运动学仿真控制; Simulink; Simscape;,MATLAB仿真实验:并联机器人动力学与运动学控制
基于三菱FX2N PLC的五层电梯控制系统设计:全面注释的程序实现与功能详解,No3.05 基于三菱FX2N PLC 五层电梯控制系统设计 程序有全部注释。 编程软件:GX Developer 文件:【源程序文件】【接线电路图】【IO分配表】 实现功能: (1)自动响应层楼召唤信号(含上召唤和下召唤) (2)自动响应轿厢服务指令信号 (3)自动完成轿厢层楼位置显示 (4)自动显示电梯运行方向 #Mitsubishi 三菱 ,三菱FX2N PLC; 五层电梯控制系统设计; 程序注释; 编程软件GX Developer; 源程序文件; 接线电路图; IO分配表; 自动响应层楼召唤信号; 自动完成轿厢层楼位置显示; 自动显示电梯运行方向。,三菱FX2N PLC五层电梯控制系统设计与实现
基于Matlab平台的颜色与纹理综合特征图像检索系统:实现自定义权重与大数据库检索实验,基于matlab的颜色+纹理综合特征的图像检索 本文在平台上实现了这一图像检索系统,实现自定义权重以及综合特征下的图像检索,并在655副图像的大数据库中随机抽取24副图像进行检索实验,得到了较好的效果。 根据用户输入的样本图像与图像库中的图像进行特征匹配,找出与样本图像距离比较小的若干幅图像,并按照图像之间的距离由小到大的顺序显示给用户。 ,基于Matlab的图像检索系统; 颜色纹理综合特征; 自定义权重; 大数据库检索实验; 特征匹配; 图像距离排序,基于Matlab的图像检索系统:颜色纹理综合特征与自定义权重实现