activemq+spring 持久化发送消息.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
activemqspring持久化发送消息

JMS ( java message service )入门 + activemq消息持久化 JMS 即 java message service?是为java提供了一种创建、发送、接收消息的通用方法。可以将复杂的系统进行业务分离,变成灵活的高度解耦合的布局。同时对我们的日常业务需求开发,提供了非常灵活的业务解决方案。比如缴费还款送积分,送积分的业务逻辑不能影响到缴费还款的业务逻辑,所以最好的,就是缴费/还款逻辑执行完成之后,通过一种方式告诉积分系统,给用户发送积分,发送积分的结果不要影响到复杂的缴费还款的过程。这种情况下,采用jms进行异步处理,便是一个很好的选择。 要使用消息的方式来进行系统交互,我们需要一个消息中间平台,来进行消息的接受转发,同时处理复杂的消息持久化等问题。本文我们采用activemq来做实验。这样的架构下,我们的系统通常会变成如下架构: ?消息产生者 - 消息中心 - 消息消费者 1、消息的两种传播方式 JMS支持两种消息传播:PTP 和 PUB/SUB PTP : 点对点发送。消息的发送方将消息放入管道中,消息的接收方从管道中取出消息并处理。 PUB/SUB : 发布/订阅方式。消息的发布者将自己的主题放入消息中心,同时进行消息投递,消息订阅者只获取自己订阅的消息。 jms为了支持上述两种模式,提供了两套针对同样接口的实现,对照关系如下: ? ConnectionFacatory:被管理的对象,由客户端(发布者/接受者)使用,用来创建一个链接。 Connection:提供一个JMS消息的活动链接。 Destination:封装了消息目的地,或者主题类型。 Session:一个用来发送和接受消息的线上上下文。 MessageProducer:由session创建的,用来发送消息的对象。 MessageConsumer:由session创建的用来接受消息的对象。 2、jms消息模型 Jms的消息分为三部分:消息头、消息属性、消息体 消息头:包含了消息的客户端和提供者用来路由和识别消息的数据。 ?消息头包含的字段: ?JMSDestination:包含了消息发往的目的地或者主题信息。 ?JMSDeliveryMode:消息传送模式。spring提供额jms模板提供了2种模式(有默认模式):DEFAULT_DELEVERY_MODE 默认模式、DEFAULT_PRIORITY、DEFAULT_TIME_TO_LIVE ?JMSMessageID:消息标示,唯一性,每个消息都不同,即便是承载者相同消息体的消息。 ?JMSTimestamp:发送时间 ?JMSCorrelationID:与当前消息关联的其他消息的标示 ?JMSReplyTo:回复消息的目的地。带有这样属性的消息通常是发送方希望有一个响应,这个响应是可选的。 ?JMSRedelivered:带有该字段的消息通常过去发送过但是没有被确认,如果要再次发送,提供者必须设置该字段。如果true,则消息接受者必须进行消息重复处理的逻辑。 ?JMSType:消息类型标示。官方文档的解释: ? JMSType头字段包含了由客户端在发送消息时提供的消息类型标识。一些消息提供者使用消息库来存储由应用发送的消息定义。type头字段可以引用提供者库中的消息定义。JMS没有定义一个标准的消息定义库,也没有定义这个库中所包含的各种定义的命名策略。一些消息系统要求每个被创建的应用消息都必须有一个消息类型定义,并且每个消息都指定它的类型。为了能够使JMS工作于这些消息系统提供者,无论应用是否使用,JMS客户端最好赋值JMSType ,这样可以保证为需要该头字段的提供者提供了正确的设置。为了保证移植性,JMS客户端应使用安装时在提供者消息库中定义的语义值作为JMSType的值。? ? ?JMSExpiration :过期时间。 ?JMSPriority:优先级。 消息属性:包括了标准投资段之外的额外添加给消息的可选的字段。比如 应用指定的属性。 消息体:消息携带的内容。 3、消息传输编程步骤 ?1)使用jndi获取一个ConnectionFacatory对象; ?2)使用jndi获取一个或者多个Destination对象; ?3)使用ConnectionFactory创建一个JMS连接; ?4)使用连接创建Jms session; ?5)使用session和destination创建MessageProducers和MessageConsumers ?6)使用Connection进行传输消息; 上述是jms的基础知识,简单了解可以便于下面的应用。jms本身提供了jar可以下载并使用相关配置,结合消息系统来完成消息的发送和接受等操作。但是一种便捷的方式,为加快开发,可以使用sp

文档评论(0)

6952225 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档