1. java JMS技術(shù)
JMS即Java消息服務(wù)(Java Message Service)應(yīng)用程序接口是一個Java平臺中關(guān)于面向消息中間件(MOM)的API,用于在兩個應(yīng)用程序之間,或分布式系統(tǒng)中發(fā)送消息,進行異步通信。Java消息服務(wù)是一個與具體平臺無關(guān)的API,絕大多數(shù)MOM提供商都對JMS提供支持。JMS是一種與廠商無關(guān)的 API,用來訪問消息收發(fā)系統(tǒng)消息。
2. JMS體系結(jié)構(gòu)
JMS由以下元素組成。
JMS提供者provider:連接面向消息中間件的,JMS接口的一個實現(xiàn)。提供者可以是Java平臺的JMS實現(xiàn),也可以是非Java平臺的面向消息中間件的適配器。
JMS客戶:生產(chǎn)或消費基于消息的Java的應(yīng)用程序或?qū)ο蟆?br>
JMS生產(chǎn)者:創(chuàng)建并發(fā)送消息的JMS客戶。
JMS消費者:接收消息的JMS客戶。
JMS消息:包括可以在JMS客戶之間傳遞的數(shù)據(jù)的對象
JMS隊列:一個容納那些被發(fā)送的等待閱讀的消息的區(qū)域。與隊列名字所暗示的意思不同,消息的接受順序并不一定要與消息的發(fā)送順序相同。一旦一個消息被閱讀,該消息將被從隊列中移走。
JMS主題:一種支持發(fā)送消息給多個訂閱者的機制。
3. JMS服務(wù)應(yīng)用程序結(jié)構(gòu)支持兩種模型
1、 點對點或隊列模型
在點對點或隊列模型下,一個生產(chǎn)者向一個特定的隊列發(fā)布消息,一個消費者從該隊列中讀取消息。這里,生產(chǎn)者知道消費者的隊列,并直接將消息發(fā)送到消費者的隊列。
這種模式被概括為:只有一個消費者將獲得消息,生產(chǎn)者不需要在接收者消費該消息期間處于運行狀態(tài),接收者也同樣不需要在消息發(fā)送時處于運行狀態(tài)。每一個成功處理的消息都由接收者簽收。
2、發(fā)布者/訂閱者模型
發(fā)布者/訂閱者模型支持向一個特定的消息主題發(fā)布消息。0或多個訂閱者可能對接收來自特定消息主題的消息感興趣。在這種模型下,發(fā)布者和訂閱者彼此不知道對方。這種模式好比是匿名公告板。
4. java動態(tài)代理、反射
- 通過反射的方式可以獲取class對象中的屬性、方法、構(gòu)造函數(shù)等
- 動態(tài)代理:在不修改原業(yè)務(wù)的基礎(chǔ)上,基于原業(yè)務(wù)方法,進行重新的擴展,實現(xiàn)新的業(yè)務(wù)。