成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

用Spring JMS使異步消息變得簡單

開發 后端
本文介紹用Spring JMS使異步消息變得簡單,還介紹了Spring,JMS異步消息和SOA。

異步處理通信是面向服務架構(SOA)的重要部分,因為企業中的許多系統通信,尤其是跟外部系統通信本來就是異步的。Java消息服務(JMS)就是用來編寫異步消息J2EE應用的API。使用JMS API的傳統消息實現涉及到象這樣的一些步驟:查找對列連接工廠、隊列資源以及在實際發送和接受消息前,創建JMS會話(JMS session)。

Spring framework簡化了用JEE組件(包括JMS)開發JMS應用的工作。它提供了一個模板機制來隱藏典型的JMS實現細節,所以開發者可以專注于消息處理任務而不用擔心怎樣創建、訪問和釋放JMS資源。

本文用一個運行在JBoss MQ server上的簡單Web應用概述了Spring JMS API和怎樣使用它異步處理(發送和接受)消息。我將對比JMS實現的傳統方法和Spring JMS實現方法,以顯示使用Spring JMS來處理消息是多么的簡單和靈活。

異步消息和SOA

現實世界中,大多數Web請求是同步處理的。例如,當用戶登陸一個站點,他或她輸入用戶名和口令以及服務器識別登陸憑證。如果身份驗證成功,程序讓用戶進入站點。這里,登陸請求從客戶端被接受后,立即被處理。信用卡授權也是一個同步處理的例子;僅當服務器核實了發送進來的信用卡號是有效并且該客戶的帳號有足夠的信用額度后,才允許客戶繼續進行下一步動作。讓我們來考察一下訂單處理系統中的支付結算步驟。一旦系統核實了那個用戶的信用卡信息是正確的,而且帳戶上有足夠的資金,那么不需要等到支付細節和轉帳最終完成。支付結算用異步方式處理,如此客戶便可以繼續進行結帳處理。

與典型的同步請求相比,異步處理用于需要長時間來處理的請求。異步處理的另外一個例子是住房貸款處理應用中,處理提交到AUS(Automated Underwriting System)的貸款請求。貸款人提交貸款申請后,抵押公司發送請求到AUS取得信用歷史信息。因為該請求要取得綜合詳細的信用報告如貸款人當前和過去的信用帳戶,最近的支付以及其它金融詳細信息,所以從請求到獲得響應常常需要很長時間。對客戶端程序來說開一個到服務器的連接并且長時間等待響應是沒有意義的。于是就有了異步通信;也就是,一旦請求被提交,它就被放入隊列里面并且客戶斷開服務器連接。然后,AUS服務從特定隊列摘取請求,處理它,把結果消息放入另外一個消息隊列。最后客戶程序從消息隊列摘取響應結果繼續處理信用歷史結果信息。

JMS

如果用過JMS的話,會發現它類似寫JDBC或JCA代碼。它有創建或檢索JMS資源的樣板代碼,每當你需要編寫一個新類來發送或接受消息時,都得重復編寫那個樣本代碼。下面列出了傳統JMS實現涉及的步驟:
1、創建JNDI初始上下文context;
2、從JNDI上下文獲得隊列連接工廠;
3、從隊列連接工廠取得隊列Queue;
4、創建一個Session對象;
5、創建一個發送或接受對象;
6、利用第5部創建的發送或接受對象發送或接受消息;
7、處理完消息后,關閉所有JMS資源。

如你所見,只有第6步是處理消息的步驟。其他步驟都只是管理JMS資源,與實際業務需求無關,但開發者不得不編寫和維護那些附加步驟代碼。

Spring  JMS

Spring框架提供一個模板機制來隱藏Java API細節。JEE開發者可用JDBCTemplate 和JNDITemplate類來分別訪問后端數據庫和JEE資源(數據源,連接池)。JMS沒有異常。Spring提供了JMSTemplate類,所以開發者不必為JMS實現編寫樣本代碼。當開發JMS應用時,Spring提供了一下一些優勢:
1、提供了一個JMS的抽象API,簡化了JMS的使用。如:訪問目的地(隊列或主體)和出版消息到特定目的地。
2、JEE開發者不必關心JMS不同版本之間的差異(如JMS 1.0.2 同 JMS 1.1);
3、開發者不必特定地處理JMS異常,因為Spring為JMS代碼拋出的任何JMS異常提供了一個unchecked異常。

一旦你在JMS應用中開始使用Spring,你將會欣賞到異步消息處理的簡易性。Spring JMS框架提供了各種java類使JMS開發變得簡單。

【編輯推薦】

  1. Spring3.0將全面支持REST
  2. 專家Isvy談Spring 3.0
  3. JSF與Spring的集成
  4. 詳細介紹Spring事務管理
  5. Spring框架的事務管理應用分析
責任編輯:佚名 來源: 天極網
相關推薦

2009-06-17 16:56:46

Spring JMS

2010-08-23 11:19:03

無線上網

2023-06-15 13:59:00

人工智能智能家居

2009-06-25 15:33:13

Java消息服務JMS

2025-05-29 01:33:00

微服務架構系統

2025-05-27 01:35:00

SpringAI監控

2023-07-14 16:17:41

物聯網

2019-12-17 08:00:12

Kubernetes工具計算平臺

2016-09-18 18:27:21

KubernetesDocker

2011-05-20 15:39:08

2013-03-27 09:28:46

ArubaBYOD無線網絡

2021-10-29 15:45:09

物聯網人工智能技術

2021-10-29 10:17:17

物聯網智能建筑IoT

2013-05-16 10:33:11

C#C# 5.0Async

2022-04-19 09:57:50

黑客勒索比特幣

2022-06-08 13:54:05

勒索軟件網絡攻擊網絡安全

2023-12-18 16:36:32

云原生技術云計算

2018-07-27 14:37:35

SD-WAN云計算網絡

2025-01-08 10:35:26

代碼開發者Spring

2016-09-08 23:58:42

云運維 云數據中心
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 五月婷婷 六月丁香 | 久久精品| 亚洲视频在线观看 | 三级黄视频在线观看 | 免费三级av | 在线中文字幕日韩 | 久久久久久久网 | 久久三级av| 99精品久久99久久久久 | 91免费高清| 在线视频日韩 | av日韩高清 | 欧美一级久久久猛烈a大片 日韩av免费在线观看 | www.47久久青青| 亚洲最新在线视频 | 一区二区三区免费 | 日韩精品在线看 | 国产毛片在线看 | 免费国产网站 | 中文字幕一区二区三区乱码在线 | 九九国产 | 妞干网福利视频 | 农村真人裸体丰满少妇毛片 | 精品国产一区二区三区性色av | 日韩欧美在线视频观看 | 成人av免费播放 | 国内精品在线视频 | 99re国产精品 | 国产情侣一区 | 午夜视频一区二区 | 天天av综合| 99精品视频在线观看免费播放 | 91精品国产一区 | 国产永久免费 | 国产精品久久久久久久久婷婷 | 最近日韩中文字幕 | 久草视频2| 国产9久| 日韩在线视频播放 | 亚洲最大的黄色网址 | 蜜桃av鲁一鲁一鲁一鲁 |