<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    厚積而薄發

    山不辭土,故能成其高;海不辭水,故能成其深!
    posts - 15, comments - 0, trackbacks - 0, articles - 1

    深入掌握JMS(一):JMS基礎

    Posted on 2009-10-22 19:51 Robin 閱讀(364) 評論(0)  編輯  收藏
    1. JMS基本概念
         JMS(Java Message Service) 即Java消息服務。它提供標準的產生、發送、接收消息的接口簡化企業應用的開發。它支持兩種消息通信模型:點到點(point-to-point)(P2P)模型和發布/訂閱(Pub/Sub)模型。P2P 模型規定了一個消息只能有一個接收者;Pub/Sub 模型允許一個消息可以有多個接收者。
        對于點到點模型,消息生產者產生一個消息后,把這個消息發送到一個Queue(隊列)中,然后消息接收者再從這個Queue中讀取,一旦這個消息被一個接收者讀取之后,它就在這個Queue中消失了,所以一個消息只能被一個接收者消費。
        與點到點模型不同,發布/訂閱模型中,消息生產者產生一個消息后,把這個消息發送到一個Topic中,這個Topic可以同時有多個接收者在監聽,當一個消息到達這個Topic之后,所有消息接收者都會收到這個消息。
         
    簡單的講,點到點模型和發布/訂閱模型的區別就是前者是一對一,后者是一對多。
    2. 幾個重要概念
       Destination:消息發送的目的地,也就是前面說的Queue和Topic。創建好一個消息之后,只需要把這個消息發送到目的地,消息的發送者就可以繼續做自己的事情,而不用等待消息被處理完成。至于這個消息什么時候,會被哪個消費者消費,完全取決于消息的接受者。
      Message:從字面上就可以看出是被發送的消息。它有下面幾種類型:
            StreamMessage:Java 數據流消息,用標準流操作來順序的填充和讀取。
            MapMessage:一個Map類型的消息;名稱為 string 類型,而值為 Java 的基本類型。
            TextMessage:普通字符串消息,包含一個String。
            ObjectMessage:對象消息,包含一個可序列化的Java 對象
            BytesMessage:二進制數組消息,包含一個byte[]。
            XMLMessage: 一個XML類型的消息。
        最常用的是TextMessage和ObjectMessage。
       Session:與JMS提供者所建立的會話,通過Session我們才可以創建一個Message。
       Connection:與JMS提供者建立的一個連接。可以從這個連接創建一個會話,即Session。
       ConnectionFactory:那如何創建一個Connection呢?這就需要下面講到的ConnectionFactory了。通過這個工廠類就可以得到一個與JMS提供者的連接,即Conection。
       Producer:消息的生產者,要發送一個消息,必須通過這個生產者來發送。
       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提供者提供給我們的接口得到了.

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 又大又硬又粗又黄的视频免费看| 亚洲综合校园春色| 一级做a爱过程免费视频高清| 午夜视频免费观看| 亚洲va久久久久| 国产精品极品美女免费观看| 亚洲乱理伦片在线观看中字| 香蕉高清免费永久在线视频 | 最近中文字幕无吗免费高清| 国产精品亚洲自在线播放页码| 国产一卡2卡3卡4卡2021免费观看| 亚洲日韩AV无码一区二区三区人| 免费无码精品黄AV电影| 日韩成人精品日本亚洲| 亚洲日韩精品无码专区网站| a级毛片毛片免费观看久潮| 久久精品国产亚洲AV麻豆网站| 国产高清免费视频| 亚洲欧美日韩中文高清www777 | 国产亚洲福利精品一区| 99蜜桃在线观看免费视频网站| 亚洲伦理一二三四| 国产精品另类激情久久久免费| 一区二区三区免费电影| 亚洲一本综合久久| 99视频在线精品免费观看6| 乱爱性全过程免费视频| 亚洲一区二区成人| 国产精品另类激情久久久免费| 一级一级一片免费高清| 中文字幕亚洲精品资源网| 免费毛片在线播放| 中文字幕久精品免费视频| va天堂va亚洲va影视中文字幕 | 午夜亚洲AV日韩AV无码大全| 在线观看日本免费a∨视频| 一边摸一边桶一边脱免费视频| 久久久久亚洲AV无码麻豆| 日本久久久免费高清| 久久久久久久岛国免费播放 | 中文字幕在线视频免费观看|