Windows Azure Service Bus (2) 隊列(Queue)入門


  《Windows Azure Platform 系列文章目錄

 

  Service Bus 隊列(Queue)

  Service Bus的Queue非常適合分布式應用。當使用Service Bus Queue的時候,分布式應用的組件不直接進行通信。

  -  前端應用(發送方)創建一個Azure Service Bus Queue,插入需要處理的消息主體,然后繼續處理前端業務邏輯

  -  后端消息處理(接收方)從Service Bus Queue中取出消息,並進行處理

  -  發送方不需要等待接收方的答復,以便在前端處理和發送更多的消息

  -  Azure Service Bus Queue是First In First Out的,最先添加的消息主體,最先被處理。並且Service Bus Queue是會被多個接收方處理的,類似於競爭模式。但是同一時刻,一條消息主體只會被一個接收方處理,保證不會被多個接收方重復處理。

  這就好比是筆者進餐館吃飯,服務員(代表筆者作為發送方)幫助筆者點菜,廚師(代表接收方)在廚房燒菜。假設這家餐館有ABC三個廚師,筆者點的菜就會被ABC三個廚師進行競爭處理,最先點的菜最先被處理(FIFO),且同一個菜只會由一個廚師制作,不會被兩個或者多個廚師同時制作。

 

  Service Bus Queue 架構圖:

  

  Service Bus Queue是一種通用的技術,可以用於各種各樣的情景:

  1. 在一個多層(Multi-Tier) Azure應用程序的Web Role和Service Bus Worker Role之前的通信
  2. Azure公網應用程序和企業內網應用程序互相通信的混合雲的解決方案
  3. 企業內網中不同組織或者部門的分布式應用程序之前的互相通信

  使用Service Bus Queue可以讓你更好的擴展你的應用程序,並使架構更靈活。

 

  接下來,筆者將介紹使用Azure Management Portal和Visual Studio 2013來創建和使用Azure Service Bus Queue。

  本次Demo需要准備的前提條件:

  1. Windows Azure Global 賬號 (www.windowsazure.com)
  2. Visual Studio 2013
  3. Windows Azure SDK (筆者使用的是.NET SDK For VS2013)

  

  1.首先我們需要登陸Azure Management Portal (http://manage.windowsazure.com)

  2.點擊New -> App Service -> Service Bus ->Queue -> Custom Create。設置Service Bus的名稱和命名空間。如下圖:

  

  然后配置Azure Service Bus,如下圖:

  

  上圖中,可以按照需要設置Azure Service Bus Queue的Max Size等信息,筆者暫時使用默認設置。

  

  3.創建完畢后,我們可以通過顯示欄的Connection Information來查看Service Bus的訪問密鑰,如下圖:

  

  密鑰顯示如下:

  

  以上完成了Service Bus NameSpace的設置。

 

  4.然后我們以管理員身份打開VS2013。點擊工具欄的View -> Server Explorer。 

  在Server Explorer中,展開Windows Azure -> Service Bus,然后右鍵,點擊Add New Connection

  

  在下圖中,勾選Use connection string,然后復制我們在步驟三中的訪問密鑰連接字符串:

  

  

 

  5.設置完畢后,我們展開Service Bus -> leizhangservicebus-ns -> Queues,然后點擊Queue,右鍵,Create New Queue。如下圖:

  在彈出的窗口中,設置Name為LeiZhangServiceBusQueue。

  然后展開Queues的內容,可以查看到我們創建成功的Azure Service Bus Queue。

  

  階段性總結:

  步驟1-3,實現了創建Azure Service Bus Namespace的工作

  步驟4-5,實現了創建Azure Service Bus Queue的工作

 

  接下來,我們要測試通過Visual Studio 2013,向Service Bus Queue,發送和接受消息。

  1.我們點擊上圖中創建成功的Service Bus Queue,點擊右鍵Send a test message,進行發送消息的測試,如下圖:

  

  2.會彈出窗口,證明發送測試消息成功。如下圖:

  

  3.重復步驟1的Send a test message三次。

  4.回到Azure Management Portal,點擊leizhangservicebus-ns,可以查看到Queue Length為3,是因為在步驟3中,我們Send a test message執行了三次。如下圖:

  

  5.接下來,我們執行接收消息的步驟。我們右鍵點擊"Receive Message"

  

  6.點擊Receive Message之后,會顯示接受消息的結果。

  可以看到,下周中Id為1,即第一條消息。說明了Service Bus Queue是First-In-First-Out的,且Label的時間4:32:36 PM和步驟2的時間一致,也說明了是接受到了第一條消息。如下圖:

  

  7.重復步驟5的Receive Message,直至將所有的Azure Service Bus Message取出。

  8.然后我們回到Azure Management Portal,可以看到Queue Length又變成0了,因為筆者通過VS2013將Service Bus Queue的消息都Receive了。如下圖:

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM