JMS入門(一)–JMS基礎

來源:互聯網
上載者:User

1. JMS基本概念

    JMS(Java Message Service) 即JavaMessage Service。它提供標準的產生、發送、接收訊息的介面,簡化公司專屬應用程式的開發。它支援兩種訊息通訊模型:點到點(point-to-point)(P2P)模型和發布/訂閱(Pub/Sub)模型。P2P 模型規定了一個訊息只能有一個接收者;Pub/Sub
模型允許一個訊息可以有多個接收者。
    對於點到點模型,訊息生產者產生一個訊息後,把這個訊息發送到一個Queue(隊列)中,然後訊息接收者再從這個Queue中讀取,一旦這個訊息被一個接收者讀取之後,它就在這個Queue中消失了,所以一個訊息只能被一個接收者消費。
    與點到點模型不同,發布/訂閱模型中,訊息生產者產生一個訊息後,把這個訊息發送到一個Topic中,這個Topic可以同時有多個接收者在監聽,當一個訊息到達這個Topic之後,所有訊息接收者都會收到這個訊息。

總結:簡單的講,點到點模型和發布/訂閱模型的區別就是前者是一對一,後者是一對多。

2.幾個重要概念 

1)Destination:訊息發送的目的地,也就是前面說的Queue和Topic。建立好一個訊息之後,只需要把這個訊息發送到目的地,訊息的寄件者就可以繼續做自己的事情,而不用等待訊息被處理完成。至於這個訊息什麼時候,會被哪個消費者消費,完全取決於訊息的接受者。

2)Message:從字面上就可以看出是被發送的訊息。它有下面幾種類型:
        A)StreamMessage:Java 資料流訊息,用標準流操作來順序的填充和讀取。
        B)MapMessage:一個Map類型的訊息;名稱為 string 類型,而值為 Java 的基本類型。
        C)TextMessage:一般字元串訊息,包含一個String。
        D)ObjectMessage:對象訊息,包含一個可序列化的Java 對象
        E)BytesMessage:位元組訊息,包含一個byte[]。
        F)XMLMessage:  一個XML類型的訊息。
      備忘:其中最常用的是TextMessage和ObjectMessage。

3)Session:與JMS提供者所建立的會話,通過Session我們才可以建立一個Message。
4) Connection:與JMS提供者建立的一個串連。可以從這個串連建立一個會話,即Session。
5) ConnectionFactory:那如何建立一個Connection呢?這就需要下面講到的ConnectionFactory了。通過這個工廠類就可以得到一個與JMS提供者的串連,即Conection。6)Producer:訊息的生產者,要發送一個訊息,必須通過這個生產者來發送。
7)MessageConsumer:與生產者相對應,這是訊息的消費者或接收者,通過它來接收一個訊息。
   前面多次提到JMS提供者,因為JMS給我們提供的只是一系列介面,當我們使用一個JMS的時候,還是需要一個第三方的提供者,它的作用就是真正管理這些Connection,Session,Topic和Queue等。

通過下面這個簡圖可以看出上面這些概念的關係。

  ConnectionFactory---->Connection--->Session--->Message
  Destination + Session------------------------------------>Producer
  Destination + Session------------------------------------>MessageConsumer

 
    那麼可能有人會問: ConnectionFactory和Destination 從哪兒得到?
    這就和JMS提供者有關了. 如果在一個JavaEE環境中, 可以通過JNDI尋找得到, 如果在一個非JavaEE環境中, 那隻能通過JMS提供者提供給我們的介面得到了.
關於JMS入門的知識轉自:http://blog.csdn.net/zhangxs_3/article/category/625599


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.