JMS基础知识.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
JMS基础知识

JMS基础知识 面向消息的架构 消息是通过异步通信和松散耦合事物模型来集成现有和新的应用程序的最可行的决绝方案之一。异步消息允许应用程序通过独立的交换消息进行通信,而应用程序之间不用硬连线。应用程序或业务流程发送消息不必等待接收者回应,只要发送者和接收者都了解和统一消息合适和中间目的即可。 消息和消息中间件 消息是软件组件或应用之间的一种通信方法。消息是一种对等的系统:消息客户可以向其他客户发送消息,也可以接收来自其他客户的消息。每一个客户和一个消息代理相连,由消息代理提供创建、发送、接收、读取消息的服务。 消息实现了松散耦合的分布式通信。组件发送消息到目的地。消息接收者从该目的地提取消息。但是,消息的发送者和接收者不是同时进行的。实际上,发送者不必去了解接收者,同样接收者也不必了解发送者;他们只要知道夏曦和格式和消息的目的.因此消息不同于远程方法的调用(RMI)这种紧密耦合的通信方法,RMI要求知道远程应用的方法.消息也不同于电子邮件(E-mail),电子邮件是人与人或应用程序与人之间的通信方法.消息只应用于应用程序与组件之间的通信. 三、消息服务(Java Message Services) 消息服务是用于访问企业消息系统的开发商中立的API。企业消息系统可以协调应用软件通过网络进行消息交互。JMS在其中扮演的角色与JDBC很相似,正如JDBC提供了一套用于访问各种不同关系数据库的公共API,JMS也提供了独立于特定厂商的企业消息系统访问方式。 使用JMS的应用程序被称为JMS客户端,处理消息的路由与消息系统被称为JMS Provider,而JMS应用则有多个JMS客户端和一个JMS Provider构成的业务系统。发送消息的JMS客户端被称为生产者(Producer),而接收消息的JMS客户端被称为消费者(Consumer)。同一JMS客户端既可以是生产之也可以是消费者。 JMS的编程过程很简单,概括为:应用程序A发送一条消息到消息服务器(也就是JMS Provider)的某个目的地(Destination),然后消息服务器吧消息转发给用程序B。因为应用程序A和应用程序B没有直接的代码关联,所以两者实现了解耦。如下图 消息传递系统的中心就是消息。一条Message由三个部分组成: 头(header) 属性(Property) 主体(body) JMS 为不同的内容提供了他们各自的消息类型,但是所有消息都派生自Message接口。 StreamMessage MapMessage TextMessage ObjectMessage BytesMessage 四、消息的传递类型: 点对点(point-to-point简称PTP)和发布/订阅(publish/subscribe简称pub/sub)。 两种消息传递类型非常相似,但有一下区别: PTP消息传递模型规定了一小消息只能传递个一个接收方。 Pub/sub消息传递模型允许一条消息传递给多个接收方。 每种模型都通过扩展公用基类来实现。例如:javax.jms.Queue和javax。Jms。Topic都扩展自javax。Jms。Destination类。 点对点消息传递 通过PTP的消息传递模型,一个应用程序可以向另一个应用程序发送消息。在此传递模型中,目标类型是队列。消息首先被传送至队列目标,然后从该对队列将消息传送至对此队列进行监听的某个消费者,如下图: 一个队列可以关联多个对垒发送方和接收方,但一条消息仅传递给一个接收方。如果多个接收方正在监听队列上的消息,JMS Provider将根据“先来者优先“的原则确定由哪个接收方接收下一条消息。如果没有接收方在监听队列,消息将保留在队列中,直至接收方链接到队列为止。这种消息传递模型是传统意义上的拉模型或轮询模型。在此类模型中,消息不是自动推送给客户端的,而是要由客户端从队列中请求获得。 发布/订阅消息传递 通过发送/订阅消息传递模型,应用程序能将一条消息发送给多个接收方,在此传送模型中,目标类型是主题。消息首先被传送至目标主题,然后传送至所有已订阅此主题的活动消费者。如下图: 主题目标也支持长期订阅。长期订阅表示消费者已注册了主题目标,但在消息到达目标时该消费者可以处于非活动状态。当消费者再次处于活动状态是,将会接收该消息。如果消费者均没有注册某个主题目标,该主题只保留注册了长期订阅的非活动消费者的消息。 与PTP消息模型不同,pub/sub消息模型允许多个主题订阅者接收同一条消息。JMS一直保留消息,直至所有主题订阅者都受到消息为止。Pub/sub消息传递模型基本上是一个推模型。在模型中,消息会自动广播,消费者无需通过主动请求或轮询主题的方式来获得新的消息。 异步和同步的区别: 上面两种消

文档评论(0)

qwd513620855 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档