ActiveMQ+In+Action翻译笔记-+更新版

5星(超过95%的资源)
所需积分/C币:9 2014-07-25 17:18:11 4.75MB PDF
21
收藏 收藏
举报

ActiveMQ+In+Action翻译笔记-+更新版
笔记 背景 当前, 等中间件技术已广泛应川于各个领域 但是面对规模 和复杂度都越来越高的分布式系统,这些技术也显示出其局限性:()同步通信 客 户发出调用后,必须等待服务对象完成处理并返回结果后才能继续执行;()客 户和 服务对象的生命周期紧密耦合:客户进程和服务对象进程都必须正常运行;如果 由于 服务对象崩溃或者网终故障导致客户的请求不可达,客户会接收到异常;()点 对点 通信:客户的一次调用只发送给某个单独的目标对象。 面向消息的中间件( Message Oriented Middleware,MOM)较好的解决了以 上问题。发送者将消息发送给消息服务器,消息服务器将消息存放在若干队列中 在合 适的时候再将消息转发给接收者。这种模式下,发送和接收是异步的,发送者无 需等待 者的生命周期未必相同:发送消息的时候接收者不一定运行,接收消息的时侯 发送者 也不一定运行;一对多通信:对于一个消息可以有多个接收者。 已有的MOM系统包括IBM的 MQSeries、 Microsoft的MSMQ和BEA的Mes sage等。由于没有一个通用的标准,这些系统很难实现互操作和无缝连接。ava Message service(JMs)是S∪N提岀的旨在统一各种MOM系统接口的规范 它包含点对点( Point to point,PTP)和发布/订阅(Pub|ish/ Subscribe ρυub/sυb)两种消息模型,提供可靠消息传输、事务和消息过滤等机制 什么是消息中间件 面向消息的中间件 基本功能:将信息以消息的形式,从一个应用程序传送到另一个或多个应用程序。 主要特点: 消息异步接受,类似手机短信的行为,消息发送者不需要等待消息接受者 的响应,减少软件多系统集成的耦合度; 消息可靠接收,确保消息在中间件可靠俣存,只有接收方收到后才删除消 息,多个消息也可以组成原子事务。 笔记 消息中间件的主要应用场景: 公司在发展过程中,开发(或者购买了)多套企业信息系统,比如财务系统,人 事系统,在线销售系统,运系统等。 这些系统生产消费公司的各种业务数据。 公司需要将这些系统集成(整合),比如让在线销售系统的订单数据输入到财务系 统中。 类似应用的一般系统需求是: 可靠传输,数据不能丟失,有的时候,也会要求不能重复传输 异步传输,否则各个系统同步发送接受数据,互相等待,造成系统瓶颈。 公司可以为此开发自己的软件服务,代价会比较大,现在一般使川已绎成型的消 息中间件 目前比较知名的消息中间件 是免费的实现的消息中间件 什么是 消息服务。 笔记 概述 规范 JAVA消息服务(JMS〕定义了Java中访问消息中间件的接口。JMS只是接口, 并没有给予实现,实现JMs接口的消息中间件称为] MS Provider,例如 术语 JMS Provider:实现]MS接口的消息中间件; PTP: Point to point,即点对点的消息模型; Pub/Sub: Publish/ Subscribe,即发布/订阅的消息模型 Queue:队列目标; Topic:主题目标; ConnectionFactory:连接工丿,Js用它创建连接 Connection:JMs客户端到 JMS Provider的连接 Destination:消息的目的地 Session:会话,一个发送或接收消息的线程; MessageProducer:由 Session对象创建的用来发送消息的对象; MessageConsumer:由 Session对象创建的用来接收消息的对象; Transaction:事务。 编程模型 在 编程模型中 客户端(组件或应用程序)通过 消息服务交换 消息 消息生产者将消息发送至消息服务,消息消费者则从消息服务接收这些消息。这 些消息 传送操作是使用一组实现 应用编程接口 的对象(出 提 供)来 执行的。 编程模型中, 客户端使用 对象创建一个连接 消息服务发送消息以及从消息服务接收消息均是通过此连接来进行。 是客 户端与消息服务的活动连接。创建连接时,将分配通信资源以及验证客户端。这 是一个 相当重要的对象,大多数客户端均使用一个连接来进行所有的消息传送。 连接用于创建会话。 是一个用于生成和使用消息的单线程上下文。它用 创建发送的生产者和接收消息的消费者,并为所发送的消息定义发送顺序。会话 通过大 笔记 量确认选项或通过事务来支持可靠传送。 客户端使用 向指定的物理目标(在中表示为目标身份对 象) 发送消息。生产者可指定一个默认传送模式(持久性消息与非持久性消息)、优 先级和 有效期值,以控制生产者向物理目标发送的所有消息。 同样,客户端使用 对象从指定的物理目标(在中表示 为目 标对象)接收消息。消费者可使用消息选择器,借助它,消息服务可以只冋消费 者发送 与选择标准匹配的那些消息。 消费者可以攴持同步或异步消息接收。异步使用可通过向消费者注册 来实现。当会话线程调用 对象的 方法时, 客户端 将使用消息、。 编程域 支持两种截然不同的消息传送模型: (即点对点模型)和 (即 发布订阅模型),分别称作: PTP Domain和Pub/ Sub domain。 (仗用 即队列目标)消息从一个生产者传送至一个消费者。在此传 送模型中,目标是一个队列。消息首先被传送至队列目标,然后棖据队列传送策 略,从 该队列将消息传送至向此队列进行注册的某一个消费者,一次只传送一条消息。 可以向 队列目标发送消息的生产者的数量没有限制,但每条消息只能发送至、并由一个 消费者 成功使用。如果没有口给向队列目标注册的消费者,队列将保留它收到的消息 并在某 个消贵者向该队列进行注册时将消息传送给该消费者。 (使用即主题目标)消息从一个生产者传送至任意数量的消费 者。在此传送模型中,目标是一个主题。消息首先被传送至主题目标,然后传送 至所有 已订阅此主题的活动消费者。可以向主题目标发送消息的生产者的数量没有限制, 并且 每个消息可以发送至任意数量的订阅消费者。主题目标也支持持久订阅的概念 持久订 阅表小消费者已向主题目标进行注册,但在消息传送时此消费者可以处于非活动 状态。 当此消费者再次处于活动状态时,它将接收此信息。如果没有己经向主题目标注 册的消 笔记 费者,主题不保留其接收到的消息,除非有非活动消费者注册了持久订阅。 这两种消息传送模型使用表示不同编程域的对象(其语义稍有不同)进行处 理,如下所示: 基本类型(统一 PTP域 Pub/Sub域 域 Connect facto Queue ConnectionFactory TopicConnectionFac ory Connection Queue Connection Top icConnection Session QueueSession TopicPubl isher Destination Queue opic (Quee或 Topic) MessageProducer QueueSender Message Consumer Qucucrcccivcr, Qucuc Bro TopicSubscr iber wser 使用图表第一列中列出的统一域对象编写点对点和发布订阅消息传送。这是首选 方法( 规范)。然而,为了符合早期的 规范,可以使用PTP 域对象 编写点对太消息传送,使用Pub/Sub域对象编制发布订阅消息传送。 消息结构 消息由以下儿部分组成:消息头,属性和消息体。 消息头 消息头包含消息的识别信息和路由信息,消息头包含一些标准的属性如: 如何设置消息头的字段 消息头 出谁设置 方法 方法 方法 方法 方法 客户端 客户端 客户端 客户端 标准的jMs消息头包含以下属性: 笔记 消息头 描述 分配方式 消息发送的目的地:主要是指自动 Queue和 Topic 传送模式有两种模式:持久白动 模式和非持久模式。一条持久性 的消息应该被传送“次仅仅 次”,这就意味者如果JMS提供 者出现故障,该消息并不会丢 失,它会在服务器恢复之后再次 传递。一条非持久的消息最多会 传送一次,这意味这服务器出现 故障,该消息将永远丢失。 消息过期时间,等于 自动 的方法中的 值加上发送时刻的 时间值。如果 值等于零,则 被 设为零,表示该消息永不过期 如果发送后,在消息过期时间之 后消息还没有被发送到目的地, 则该消息被清除。 消息优先级,从十个级别,自动 是普通消息,是加急消 息 不要求 严格按照这十个优先级发送消 息,但必须保证加急消息要先于 普通消息到达。默认是4级。 唯一识别每个消息的标识,由自动 个 在调用 自动 方法时自动设置的。它是消息被 发送和消费者实际接收的时间 差 用来连接到另外一个消息,典型开发者设置 的应用是在回复消息中连接到 原消息。在大多数情况下, 用于将一条消 息标记为对 示的上一条消息的应答,不过, 可以是任何 值,不仅仅是 一个消息被褆交给 自动 笔记 到消息被发出的 提供本消息回复消息的目的地开发者设置 址 消息类型的识別符。 开发者设置 如果一个客户端收到一个设置自动 属性的消息, 则表示可能客户端曾经在早些 时候收到过该消息,但并没有签 收 。如果该消息被 重新传送 JMSRedelivered=true反之, JMSRedelivered =false 消息体 JMS API定义了5种消息体格式,也叫消息类型,可以使用不同形式发送接收数 据并可以兼容现有的消息格式,下面描述这5种类型: 消息类型 消息体 对象,如文件内 容 名值对的集合,名是 对象,值 类型可以是任何基本类型 字节流 中的输入输出流 中的可序列化对象。 没有消息体,只有消息头和属性 消息属性 包括以下三中类型的属性 应用程序特定的属性。例如 定义的属性 JMS保留了“JMSX”作为MS属性名的前缀。新的JMS定义的属性可能在后续版本中增 笔记 加。除非说明否则支持这些属性是可选的。 Connection Meta Data getJMSXProperty Names()方法 返回所有连接支持的」Msⅹ属性的名字。无论连接是否支持JMSX属性,它们都可以在消息选 择器中使用。如果消息中没有这些属性,那么它们与其他缺席属性一样看待。在特定消息中 存在JWS定义的属性,它们是由MS提供商根据如何控制属性的使用来设置的。根据管理或 其它规则,可以在某些消息中包含它们在其他消息中忽略它们。 JMS定义的属性 名字 类型 设置者 用法 JMSXUserID String 发送时提供商设置发送消息的用户标 识 JMSXAppID String 发送时提供尚设置发送消息的应用标 JMSXDelivery Count 发送时提供商设置转发消息重试次数 第一次是1,第次是 JMSXGroupID String 客户端 消息所在消息组的标 JMSXGroupSeq int 客户端 组内消息的序号第 个消息是1,第二个是 JMSX tXid String 发送时提供嚆设置产生消息的事务的事 务标识 JMSⅩ Consumer|D String 接收时提供商设置消费消息的事务的 事务标识 JMSXRcVTimestamp long 接收时提供商设置Ms转发消息到消 费者的时间 JMSXState int 提供商 假定存在一个消息仓 库,它存储」每个消 息的单独拷贝,且这 些消息从原始消息被 发送时开始。每个拷 贝的状态有:1(等 待),2(准备),3 (到期)或4(保留) 由于状态与生产者和 消费者无关,所以它 不是由它们米提供。 它只和在仓库中查找 消息相关,因此JMS 没有提供这种AP C.提供者特定的属性

...展开详情
试读 127P ActiveMQ+In+Action翻译笔记-+更新版
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
一千叶 很好,类似的中文太少,英文就这一个专业的
2014-07-28
回复
jackeychow2008 不错,对研究activeMQ的人值得一看。
2014-07-26
回复
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
上传资源赚钱or赚积分
最新推荐
ActiveMQ+In+Action翻译笔记-+更新版 9积分/C币 立即下载
1/127
ActiveMQ+In+Action翻译笔记-+更新版第1页
ActiveMQ+In+Action翻译笔记-+更新版第2页
ActiveMQ+In+Action翻译笔记-+更新版第3页
ActiveMQ+In+Action翻译笔记-+更新版第4页
ActiveMQ+In+Action翻译笔记-+更新版第5页
ActiveMQ+In+Action翻译笔记-+更新版第6页
ActiveMQ+In+Action翻译笔记-+更新版第7页
ActiveMQ+In+Action翻译笔记-+更新版第8页
ActiveMQ+In+Action翻译笔记-+更新版第9页
ActiveMQ+In+Action翻译笔记-+更新版第10页
ActiveMQ+In+Action翻译笔记-+更新版第11页
ActiveMQ+In+Action翻译笔记-+更新版第12页
ActiveMQ+In+Action翻译笔记-+更新版第13页
ActiveMQ+In+Action翻译笔记-+更新版第14页
ActiveMQ+In+Action翻译笔记-+更新版第15页
ActiveMQ+In+Action翻译笔记-+更新版第16页
ActiveMQ+In+Action翻译笔记-+更新版第17页
ActiveMQ+In+Action翻译笔记-+更新版第18页
ActiveMQ+In+Action翻译笔记-+更新版第19页
ActiveMQ+In+Action翻译笔记-+更新版第20页

试读结束, 可继续阅读

9积分/C币 立即下载 >