操纵Spring JMS轻松实现异步消息传送[Java编程]
本文“操纵Spring JMS轻松实现异步消息传送[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
异步进程通信是面向服务架构(SOA)一个重要的构成部份,因为企业里很多系统通信,分外是与外部组织间的通信,实质上都是异步的.Java消息服务(JMS)是用于编写利用异步消息传送的JEE利用程序的API.传统的利用JMS API举行消息传送的实现包含多个步骤,比方JNDI查询行列衔接工厂和Queue资源,在实际发送和接纳消息前成立一个JMS会话.
Spring框架则简化了利用JEE组件(包含JMS)的任务.它供应的模板机制躲藏了典型的JMS实现的细节,这样开辟人员可以集合精神放在处理消息的实际工作中,而不用耽忧若何去成立,拜候或排除JMS资源.
本文将对Spring JMS API作一个概述,并通过一个运行在JBoss MQ服务器上的web例程来介绍若何利用Spring JMS API来异步处理(发送和接纳)消息.我将通过传统JMS实现和Spring JMS实现二者间的对比,来展示利用Spring JMS处理消息是若何的简单和机动.
异步消息传送和面向服务架构
在实际中,大大都web恳求都是同步处理的.比方,当用户要登入一个网站,首先输入用户名和密码,然后服务器考证登录合理性.假如考证成功,程序将答应该用户进入网站.这里,登录恳求在从客户端接纳今后被当即处理了.信誉卡考证是另一个同步处理的例子;只有服务器证实输入的信誉卡号是有效的,同时客户在帐户上有充足的存款,客户才被答应持续操作.但是让我们考虑一下在次序处理系统上的支付结算步骤.一旦系统证实该用户信誉卡的信息是精确的,并且在帐户上有充足的资金,就没必要等到全部的支付细节落实、转账完成.支付结算可以异步方法举行,这样客户可以持续举行查对操作.
需求比典型同步恳求耗费更长时间的恳求,可以利用异步处理.另一个异步处理的例子是,在本地贷款处理程序中,提交至自动承销系统(AUS)的信誉恳求处理历程.当借方提交贷款申请后,抵押公司会向AUS发送恳求,以获得信誉历史记录.由于这个恳求要求得到全面而又具体的信誉报告,包含借方当今和过去的帐户,近来的付款和其他财政资料,服务器需求耗费较长的时间(几小时或着有时乃至是几天)来对这些恳求作出呼应.客户端程序(利用)要与服务器衔接并耗费如此长的时间来等候后果,这是毫无意义的.因此通信应当是异步发生的;也就是,一旦恳求被提交,它就被安排在行列中,同时客户端与服务器断开衔接.然后AUS服务从指定的行列中选出恳求举行处理,并将处理得到的消息安排在另一个消息行列里.最后,客户端程序从这个行列中选出处理后果,紧接着处理这个信誉历史数据.
JMS
假如您利用过JMS代码,您会发现它与JDBC或JCA很像.它所包含的样本代码成立或JMS资源对象回溯,使得每一次您需求写一个新类来发送和接纳消息时,都具有更好的代码密集性和反复性.以下序列显示了传统JMS实现所包含的步骤:
成立JNDI初始上下文(context).
从JNDI上下文获得一个行列衔接工厂.
从行列衔接工厂中获得一个Quene.
成立一个Session对象.
成立一个发送者(sender)或接纳者(receiver)对象.
利用步骤5成立的发送者或接纳者对象发送或接纳消息.
处理完消息后,关闭全部JMS资源.
您可以看到,步骤6是处理消息的唯一地方.其他步骤都只是管理与实际业务要求无关的JMS资源,但是开辟人员必须编写并保护这些额外步骤的代码.
以上是“操纵Spring JMS轻松实现异步消息传送[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |