使用springjms轻松实现异步消息传递

使用springjms轻松实现异步消息传递

ID:30403622

大小:86.89 KB

页数:17页

时间:2018-12-29

使用springjms轻松实现异步消息传递_第1页
使用springjms轻松实现异步消息传递_第2页
使用springjms轻松实现异步消息传递_第3页
使用springjms轻松实现异步消息传递_第4页
使用springjms轻松实现异步消息传递_第5页
资源描述:

《使用springjms轻松实现异步消息传递》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、使用SpringJMS轻松实现异步消息传递异步进程通信是面向服务架构(SOA)一个重要的组成部分,因为企业里很多系统通信,特别是与外部组织间的通信,实质上都是异步的。Java消息服务(JMS)是用于编写使用异步消息传递的JEE应用程序的API。传统的使用JMSAPI进行消息传递的实现包括多个步骤,例如JNDI查询队列连接工厂和Queue资源,在实际发送和接收消息前创建一个JMS会话。Spring框架则简化了使用JEE组件(包括JMS)的任务。它提供的模板机制隐藏了典型的JMS实现的细节,这样开发人员可以集中精力放在处理消息的实际工作中,而不用担心如何去创建,访问或清除JMS资源

2、。本文将对SpringJMSAPI作一个概述,并通过一个运行在JBossMQ服务器上的web例程来介绍如何使用SpringJMSAPI来异步处理(发送和接收)消息。我将通过传统JMS实现和SpringJMS实现两者间的比较,来展示使用SpringJMS处理消息是如何的简单和灵活。异步消息传递和面向服务架构在现实中,大多数web请求都是同步处理的。例如,当用户要登入一个网站,首先输入用户名和密码,然后服务器验证登录合法性。如果验证成功,程序将允许该用户进入网站。这里,登录请求在从客户端接收以后被即时处理了。信用卡验证是另一个同步处理的例子;只有服务器证实输入的信用卡号是有效的,同

3、时客户在帐户上有足够的存款,客户才被允许继续操作。但是让我们思考一下在顺序处理系统上的支付结算步骤。一旦系统证实该用户信用卡的信息是准确的,并且在帐户上有足够的资金,就不必等到所有的支付细节落实、转账完成。支付结算可以异步方式进行,这样客户可以继续进行核查操作。需要比典型同步请求耗费更长时间的请求,可以使用异步处理。另一个异步处理的例子是,在本地贷款处理程序中,提交至自动承销系统(AUS)的信用请求处理过程。当借方提交贷款申请后,抵押公司会向AUS发送请求,以获取信用历史记录。由于这个请求要求得到全面而又详细的信用报告,包括借方现今和过去的帐户,最近的付款和其他财务资料,服务器

4、需要耗费较长的时间(几小时或着有时甚至是几天)来对这些请求作出响应。客户端程序(应用)要与服务器连接并耗费如此长的时间来等待结果,这是毫无意义的。因此通信应该是异步发生的;也就是,一旦请求被提交,它就被放置在队列中,同时客户端与服务器断开连接。然后AUS服务从指定的队列中选出请求进行处理,并将处理得到的消息放置在另一个消息队列里。最后,客户端程序从这个队列中选出处理结果,紧接着处理这个信用历史数据。JMS如果您使用过JMS代码,您会发现它与JDBC或JCA很像。它所包含的样本代码创建或JMS资源对象回溯,使得每一次您需要写一个新类来发送和接收消息时,都具有更好的代码密集性和重复

5、性。以下序列显示了传统JMS实现所包括的步骤:创建JNDI初始上下文(context)。从JNDI上下文获取一个队列连接工厂。从队列连接工厂中获取一个Quene。创建一个Session对象。创建一个发送者(sender)或接收者(receiver)对象。使用步骤5创建的发送者或接收者对象发送或接收消息。处理完消息后,关闭所有JMS资源。您可以看到,步骤6是处理消息的唯一地方。其他步骤都只是管理与实际业务要求无关的JMS资源,但是开发人员必须编写并维护这些额外步骤的代码。SpringJMSSpring框架提供了一个模板机制来隐藏JavaAPIs的细节。JEE开发人员可以使用JDB

6、CTemplate和JNDITemplate类来分别访问后台数据库和JEE资源(数据源,连接池)。JMS也不例外。Spring提供JMSTemplate类,因此开发人员不用为一个JMS实现去编写样本代码。接下来是在开发JMS应用程序时Spring所具有一些的优势。提供JMS抽象API,简化了访问目标(队列或主题)和向指定目标发布消息时JMS的使用。JEE开发人员不需要关心JMS不同版本(例如JMS1.0.2与JMS1.1)之间的差异。开发人员不必专门处理JMS异常,因为Spring为所有JMS异常提供了一个未经检查的异常,并在JMS代码中重新抛出。一旦您在JMS应用程序中开始使

7、用Spring,您将会欣赏到它在处理异步消息传递上的简便。SpringJMS框架提供多种Java类,可以轻松实现JMS应用。表1列出了这些类的一部分。表1.SpringJMS类类名包功能JmsExceptionorg.springframework.jms只要发生一个JMS异常,Spring框架就会抛出异常,这个类是这些所抛出的异常的基(抽象)类。JmsTemplate,JmsTemplate102org.springframework.jms.core这些是辅助类,用于简化JMS的使用,处

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。