OTHERS
沒用過JMS的人的JMS筆記

之前工作要寫個Windows Service,要用到Tibco EMS,兩個字對我來說都極度陌生,整個Task完全做得一塌糊塗 =_= Windows Service看了下還總算知是甚麼,而Tibco EMS(Enterprise messaging system)做完還是不太清楚,網上資料也不太多,所以先研究下一個叫JMS(Java Message Service)的同類。

#如以上所言,本人沒有用過JMS,只因JMS比EMS資料多才想透過JMS來了解下EMS。完全只是沒實際操作經驗的人的筆記。

以我所知的功能

一個API用來處理Client間不同步地傳送Message。

不同步是?

很失禮地經常對「不同步(Asynchronous)」這個字感到混淆,因為字面上「不同步」不就是有種慢、不是有需要時就出來的感覺嗎~~?

Synchronous: Request後會Keep住等Response
Asynchronous: Request後不等Response,直至有Response才會收到Notification,就是Push這樣

所以其實Asynchronous才是有需要是出來~

應用

Email等

JMS元素

JMS provider
提供JMS的介面,中間人。

JMS client
-JMS producer/publisher
Send Message的Client

-JMS consumer/subscriber
收Message的Client

JMS message

JMS queue
一條隊用來儲未讀的Message,雖然叫做「一條隊」,但Consumer不一定依順序收到Message。

JMS topic
一個散播機制用來傳送Message給多個Subscriber。

(以上From Wikipedia

總之就是Message會先Send到JMS Provider,然後Provider再給Consumer。

做法

A Simple Example of Asynchronous Message Consumption
http://docs.oracle.com/cd/E19798-01/821-1841/bncfh/index.html

總結

現階段對JMS的認識還是只有Asynchronous Messaging的API這樣,因公司要用到,所以要再努力研究下它的同類EMS…

參考

What is Java Message Service (JMS) for?
http://stackoverflow.com/questions/3015178/what-is-java-message-service-jms-for

Real world use of JMS/message queues? [closed]
http://stackoverflow.com/questions/1035949/real-world-use-of-jms-message-queues

Java Message Service
http://en.wikipedia.org/wiki/Java_Message_Service

What’s the difference between event-driven and asynchronous? Between epoll and AIO?
http://stackoverflow.com/questions/5844955/whats-the-difference-between-event-driven-and-asynchronous-between-epoll-and-a

Leave a Reply

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">