- 浏览: 74456 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
jyjava:
头大了,这玩意要背掉吗
Oracle 事务隔离级别 outline -
jli_iaspec_cn:
我还想请教下:
PreparedStatement 由于是 ...
PreparedStatement 预编译原理
1.JMS
JAVA 消息服务(JMS)定义了Java 中访问消息中间件的接口。JMS 只是接口,并没有给予实现,实现JMS 接口的消息中间件称为JMS Provider,iLink实现了JMS接口,用户可以通过使用JMS接口,在iLink中进行JMS编程。 iLink支持JMS1.0.2版本。
2.JMS接口描述
JMS 支持两种消息类型PTP 和Pub/Sub,分别称作:PTP Domain 和Pub/Sub Domain,这两种接口都继承统一的JMS父接口,JMS 主要接口如下所示:
|
ConnectionFactory :连接工厂,JMS 用它创建连接
Connection :JMS 客户端到JMS Provider 的连接
Destination :消息的目的地
Session: 一个发送或接收消息的线程
MessageProducer: 由Session 对象创建的用来发送消息的对象
MessageConsumer: 由Session 对象创建的用来接收消息的对象
3.JMS消息模型
JMS 消息由以下几部分组成:消息头,属性,消息体。
3.1 消息头(Header) - 消息头包含消息的识别信息和路由信息,消息头包含一些标准的属性如:JMSDestination,JMSMessageID 等。
|
|
3.3 消息体(Body) - JMS API 定义了5种消息体格式,也叫消息类型,你可以使用不同形式发送接收 数据并可以兼容现有的消息格式,下面描述这5种类型:
|
下例演示创建并发送一个TextMessage到一个队列:
TextMessage message = queueSession.createTextMessage();
message.setText(msg_text); // msg_text is a String
queueSender.send(message);
下例演示接收消息并转换为合适的消息类型:
Message m = queueReceiver.receive();
if (m instanceof TextMessage) {
TextMessage message = (TextMessage) m;
System.out.println("Reading message: " + message.getText());
} else {
// Handle error
}
4. 消息的同步异步接收
消息的同步接收是指客户端主动去接收消息,JMS 客户端可以采用MessageConsumer 的receive方法去接收下一个消息。
消息的异步接收是指当消息到达时,主动通知客户端。JMS 客户端可以通过注册一个实 现MessageListener 接口的对象到MessageConsumer,这样,每当消息到达时,JMS Provider 会调用MessageListener中的onMessage 方法。
5. PTP模型
PTP(Point-to-Point)模型是基于队列的,发送方发消息到队列,接收方从队列接收消息,队列的存在使得消息的异步传输成为可能。和邮件系统中的邮箱一样,队列可以包含各种消息,JMS Provider 提 供工具管理队列的创建、删除。JMS PTP 模型定义了客户端如何向队列发送消息,从队列接收消息,浏览队列中的消息。
下面描述JMS PTP 模型中的主要概念和对象:
|
6. PUB/SUB模型 名称 描述 订阅(subscription) 消息订阅分为非持久订阅(non-durable subscription)和持久订阅(durable subscrip-tion),非持久订阅只有当客户端处于激活状态,也就是和JMS Provider 保持连接状态才能收到发送到某个主题的消息,而当客户端处于离线状态,这个时间段发到主题的消息将会丢失,永远不会收到。持久订阅时,客户端向JMS 注册一个识别自己身份的ID,当这个客户端处于离线时,JMS Provider 会为这个ID 保存所有发送到主题的消息,当客户再次连接到JMS Provider时,会根据自己的ID 得到所有当自己处于离线时发送到主题的消息。 Topic 主题由JMS Provider 管理,主题由主题名识别,客户端可以通过JNDI 接口用主题名得到一个主题对象。JMS 没有给出主题的组织和层次结构的定义,由JMS Provider 自己定义。 TemporaryTopic 临时主题由TopicConnection 创建,而且只能由创建它的TopicConnection 使用。临时主题不能提供持久订阅功能。 TopicConnectionFactory 客户端用TopicConnectionFactory 创建TopicConnection 对象。 TopicConnection TopicConnection 是一个到JMS Pub/Sub provider 的连接,客户端可以用TopicConnection创建TopicSession 来发布和订阅消息。 TopicSession TopicSession 提供一些方法创建TopicPublisher、TopicSubscriber、TemporaryTopic 。它还提供unsubscribe 方法取消消息的持久订阅。 TopicPublisher 客户端用TopicPublisher 发布消息到主题。 TopicSubscriber 客户端用TopicSubscriber 接收发布到主题上的消息。可以在TopicSubscriber 中设置消息过滤功能,这样,不符合要求的消息不会被接收。 Durable TopicSubscriber 如果一个客户端需要持久订阅消息,可以使用Durable TopicSubscriber,TopSession 提供一个方法createDurableSubscriber创建Durable TopicSubscriber 对象。 恢复和重新派送(Recovery and Redelivery) 非持久订阅状态下,不能恢复或重新派送一个未签收的消息。只有持久订阅才能恢复或重新派送一个未签收的消息。 TopicRequestor JMS 提供TopicRequestor 类简化消息的收发过程。TopicRequestor 的构造函数有两个参数:TopicSession 和topic。TopicRequestor 通过创建一个临时主题来完成最终的发布和接收消息请求。 可靠性(Reliability) 当所有的消息必须被接收,则用持久订阅模式。当丢失消息能够被容忍,则用非持久订阅模式。
JMS Pub/Sub 模型定义了如何向一个内容节点发布和订阅消息,这些节点被称作主题(topic)。
主题可以被认为是消息的传输中介,发布者(publisher)发布消息到主题,订阅者(subscribe)从主题订阅消息。主题使得消息订阅者和消息发布者保持互相独立,不需要接触即可保证消息的传送。
下面描述JMS Pub/Sub 模型中的主要概念和对象:
7. 开发JMS的步骤 用JNDI 得到ConnectionFactory 对象;
广义上说,一个JMS 应用是几个JMS 客户端交换消息,开发JMS 客户端应用由以下几步构成:
用JNDI 得到目标队列或主题对象,即Destination 对象;
用ConnectionFactory 创建Connection 对象;
用Connection 对象创建一个或多个JMS Session;
用Session 和Destination 创建MessageProducer 和MessageConsumer;
通知Connection 开始传递消息。
发表评论
-
Spring Roo 学习
2015-01-09 10:30 855运行:roo 出现异常: "Could not o ... -
Spring AOP @Transactional
2013-02-03 14:16 1770@Transactional Propagation D ... -
Spring mvc Session
2013-01-31 15:41 1118Using Sessions in Spring-MVC ( ... -
Log4j
2013-01-29 19:08 763#1.配置根Logger(日志记录 ... -
Spring + iBATIS »·¾³ÏµÄÊÂÎñ¹ÜÀí
2013-01-27 17:06 0<div class="iteye-blog ... -
tomcat+jdk+mysql免安装的整合形式
2011-05-10 09:45 2426本文来自CSDN博客,转载请标明出处:http://blog. ... -
分布式技术
2010-01-09 17:00 760http://chenjianjx.iteye.com/blo ... -
JNDI 起源
2009-12-31 09:41 824转自:http://www.ibm.com/develo ... -
EJB2.0 笔记
2009-12-30 17:36 1558SessionBean的学习: 用于测试EJB的client ... -
开源收集
2009-12-28 11:46 833BeanShell BeanShell is a smal ... -
Check List
2009-12-25 15:39 762HTML 页面: 1、对象是否和 一些关键字或者HTML内置 ... -
J2EE 相关概念
2009-12-12 16:40 805(大部分来源于学习 《J2EE应用与BEA Weblogic ... -
weblogic8.1 JMS 入门 (转载)
2009-12-05 17:46 1197一. JMS简介1. JMS基本概念JMS(Java Mess ...
相关推荐
Outline-Client上网用,PC端windows使用
Outline-Client,windows版
在Cadence Allegro 17.2版本中,设计者们遇到了一个显著的变化,那就是设计大纲(Design Outline)的使用方式。以往版本中,设计师通常使用Outline层来定义电路板的外观,但在17.2版中,Cadence推荐使用Design ...
安卓Outline.apk
《Unity游戏开发:高效性能描边插件Easy Performant Outline详解》 在Unity游戏开发中,视觉效果的呈现是至关重要的。"Easy Performant Outline"是一款专为Unity设计的高性能描边插件,旨在为2D和3D场景提供高质量...
Outline Manager是一款专为管理和组织大纲内容而设计的软件,它在IT行业中被广泛用于项目规划、文档编写、学习笔记和思维导图的创建。这款工具的亮点在于其与Outline服务器端的集成,允许用户在云端存储和同步他们的...
Outline-Client.ext是一款比较好用的网络代理客户端软件,配套的有服务器软件,建议配套一起使用
unity HDRP 高亮插件OutLine
outlinepass中如果使用轮廓渲染线条,渲染一根线条所有线条类均被渲染;
Outline-Client.exe
Outline-Manager管理器包括linux windows Mac
包含 outline-client.exe 与 outline-manager.exe ...。适合个人使用
该outline文档为自己研究搭建,中间遇到的很多问题都是通过查阅、参考国外的资料来解决的,并且在搭建过程中就在配置文件方面给大家把坑给填了。大家按照我文档的指导搭建outline环境将不再那么困难,而且对于一些...
Outline 本身基于现有的开源 V.P.N 软件 shado.wsocks。不同于 shado.wsocks 需要一系列复杂的服务器配置和加密密钥生成步骤,Outline 的易用性在于将整个安装实现自动化:配置仅需几次点击,仅需几分钟。
Outline 來自Google全自動自架安裝工具Outline 來自Google全自動自架安裝工具Outline 來自Google全自動自架安裝工具Outline 來自Google全自動自架安裝工具Outline 來自Google全自動自架安裝工具
帮你下载好啦,犒赏个最便宜的一积分嘿嘿嘿!或是透过下面地址去下载 原始下载页面:...原始下载地址:https://github.com/Jigsaw-Code/outline-server/releases/download/v1.6.0/Outline-Manager.exe
本C#Outline插件,基于前辈Skybladev2的C# outline 2015版本修改而来,非本人原创,可支持Visual Studio 2019版本
Outline是一款基于ss的开源富强软件,来自于Jigsaw公司,致力于供新闻组织用自家服务器上设定从而富强,来保障新闻工作者的网络存储安全,并且号称不需要技术人员就能完成部署。 包含Outline-Client Outline-Manager...