天天看點

MNS支援JMS協定的方案

jms即java message service,一般是用于兩個應用程式之間,或分布式系統中發送消息,進行異步通信。有大量的消息服務中間件都實作了jms協定,今天我們要介紹消息服務是阿裡雲提供的mns消息服務,mns消息服務現在也已經有了支援了jms協定的方案。

mns提供的java-messaging-lib已經支援jms1.1規範,已經在使用jms中間件的應用程式可以無縫遷移至mns。

具體配置過程:

1. 開通mns服務:www.aliyun.com/product/mns,在頁面内點選“立即開通”

MNS支援JMS協定的方案

2. 進入管理控制台:mns.console.aliyun.com,可以在控制台裡選擇一個離你最近的區域

    如果你還購買了對應區域的ecs虛拟機,那麼可以直接調用對應區域的私網位址,所有流量全部走内網流量(内網流量全免費哦)

MNS支援JMS協定的方案

3. 檢視所選區域的endpoint

MNS支援JMS協定的方案

4. 檢視ak資訊: ak-console.aliyun.com/#/accesskey, 頁面内可以建立和檢視你的ak資訊

5. 在代碼裡引入jms的jar包,有兩種方式:

       5.1 在pom檔案裡依賴對應的maven庫  

       5.2 從maven直接下載下傳jar包: 

              https://repo1.maven.org/maven2/com/aliyun/mns/java-messaging-lib/0.1.1/

6. 接下來就可以在代碼中直接使用mns啦,

    對于已經在使用jms的使用者來說,隻需要修改以下兩處代碼

    6.1 建立jms連接配接:  這裡需要修改為使用mnsconnectionfactory,建立出使用mns服務的connection 

    6.2 建立隊列,使用jms的時候,我們會需要建立一個session,并且連接配接到對應的隊列

            這裡可以選擇建立一個mns隊列,會調用mns消息服務的接口,在mns消息服務的server上建立一個隊列,用來存儲消息。

            如果已經通過其他途徑建立了mns隊列,那麼建立隊列這一步可以忽略。

        然後建立jms的session,需要注意,目前mns僅支援auto_acknowledge模式的session

    對于第一次使用jms的使用者來說,還需要添加以下代碼

    6.3 設定producer發送消息

    6.4 設定consumer監聽消息

     首先是設定一個messagelistener

     然後建立consumer

    6.5 關閉連接配接

    消息通信結束之後,可以選擇關閉connection

備注: 已經支援的jms接口:

      支援的 jms 1.1 常用接口:

connectionfactory

connection

destination

session

messageproducer

messageconsumer

      支援的消息類型

textmessage

bytemessage

objectmessage

      支援的消息确認模式

auto_acknowledge

本帖中的代碼建議在嚴格測試後再用于生産環境,以避免具體業務場景下可能産生的意想不到的問題。

有任何問題,都歡迎加入mns的旺旺技術支援群 51222373 ,或者在mns消息服務的論壇提問bbs.aliyun.com/thread/240.html