C# 消息隊列-Microsoft Azure service bus 服務總線


先決條件

  1. Visual Studio 2015或更高版本。本教程中的示例使用Visual Studio 2015。
  2. Azure訂閱。
  注意

  要完成本教程,您需要一個Azure帳戶。您可以激活MSDN訂閱者優惠注冊一個免費帳戶

1.使用Azure門戶創建一個命名空間

如果已經創建了Service Bus命名空間,請跳轉到使用Azure門戶部分創建隊列+

創建服務命名空間

要在Azure中開始使用服務總線隊列,必須首先創建一個命名空間。命名空間提供了一個用於在應用程序中尋址服務總線資源的作用域容器。

創建命名空間:

  1. 登錄到Azure門戶
  2. 在門戶的左側導航窗格中,單擊新建,然后單擊企業集成,然后單擊服務總線。
  3. 在“ 創建命名空間 ”對話框中,輸入命名空間名稱。系統立即檢查該名稱是否可用。
  4. 確保命名空間名稱可用后,選擇定價層(基本,標准或高級)。
  5. 在預訂字段中,選擇要在其中創建命名空間的Azure訂閱。
  6. 在“ 資源組”字段中,選擇命名空間將存在的現有資源組,或創建一個新的資源組。
  7. 在位置中,選擇應托管您的命名空間的國家或地區。

    創建命名空間

  8. 單擊創建系統現在創建您的命名空間並啟用它。您可能需要等待幾分鍾,因為系統為您的帳戶提供資源。

獲取管理憑據

  1. 在命名空間列表中,單擊新創建的命名空間名稱。
  2. 在命名空間刀片中,單擊共享訪問策略。
  3. 在共享訪問策略刀片中,單擊RootManageSharedAccessKey。

    連接信息

  4. 在策略:RootManageSharedAccessKey刀片中,單擊連接字符串主鍵旁邊的復制按鈕,將連接字符串復制到剪貼板以備將來使用。將此值粘貼到記事本或某個其他臨時位置。

    連接字符串

  5. 重復上一步驟,將主鍵的值復制並粘貼到臨時位置以備將來使用。

2.使用Azure門戶創建隊列

如果已經創建了服務總線隊列,請跳轉到向隊列發送消息部分。

請確保你已經創建了一個服務總線命名空間,如圖所示這里

  1. 登錄到Azure門戶
  2. 在門戶的左側導航窗格中,單擊服務總線(如果未看到服務總線,請單擊更多服務)。
  3. 選擇要創建隊列的命名空間。在這種情況下,它是nstest1。

    創建隊列

  4. 在Service Bus命名空間刀片中,選擇隊列,然后單擊添加隊列。

    選擇隊列

  5. 輸入隊列名稱,並保留其他值及其默認值。

    選擇新建

  6. 在刀片的底部,單擊創建。

3.將消息發送到隊列

要將消息發送到隊列,我們​​將使用Visual Studio編寫一個C#控制台應用程序。

創建控制台應用程序

  • 啟動Visual Studio並創建一個新的控制台應用程序。

添加服務總線NuGet包

  1. 右鍵單擊新創建的項目,然后選擇管理NuGet包。
  2. 單擊瀏覽選項卡,然后搜索“Microsoft Azure服務總線”並選擇Microsoft Azure服務總線項目。單擊安裝完成安裝,然后關閉此對話框。

    選擇一個NuGet包

編寫一些代碼以將消息發送到隊列

  1. 將以下using語句添加到Program.cs文件的頂部。

    using Microsoft.ServiceBus.Messaging;

     

  2. 下面的代碼添加到Main方法,設置的connectionString變量,創建命名空間時所獲得的,並設置連接字符串QUEUENAME作為創建隊列時使用的隊列名稱。

    var connectionString = "<Your connection string>";
     var queueName = "<Your queue name>";
    
     var client = QueueClient.CreateFromConnectionString(connectionString, queueName);
     var message = new BrokeredMessage("This is a test message!");
     client.Send(message);

     

     

    這里是你的Program.cs應該是什么樣子。

     using System;
     using Microsoft.ServiceBus.Messaging;
    
     namespace GettingStartedWithQueues
     {
         class Program
         {
             static void Main(string[] args)
             {
                 var connectionString = "<Your connection string>";
                 var queueName = "<Your queue name>";
    
                 var client = QueueClient.CreateFromConnectionString(connectionString, queueName);
                 var message = new BrokeredMessage("This is a test message!");
    
                 client.Send(message);
             }
         }
     }

     

  3. 運行程序,並檢查Azure門戶。在命名空間概要刀片中單擊隊列的名稱。請注意,活動消息計數值現在應為1。

    消息計數

4.從隊列接收消息

  1. 創建一個新的控制台應用程序並添加對Service Bus NuGet包的引用,類似於上一個發送應用程序。
  2. 將以下語句using添加到Program.cs文件的頂部。

     using Microsoft.ServiceBus.Messaging;
  3. 下面的代碼添加到Main方法,設置的connectionString變量,創建命名空間時所獲得的,並設置連接字符串QUEUENAME如您在創建隊列時使用的隊列名稱。

     var connectionString = "";
     var queueName = "samplequeue";
    
     var client = QueueClient.CreateFromConnectionString(connectionString, queueName);
    
     client.OnMessage(message =>
     {
       Console.WriteLine(String.Format("Message body: {0}", message.GetBody<String>()));
       Console.WriteLine(String.Format("Message id: {0}", message.MessageId));
     });
    
     Console.ReadLine();

     

    這里是你的Program.cs文件應該是什么樣子:

    using System;
     using Microsoft.ServiceBus.Messaging;
    
     namespace GettingStartedWithQueues
     {
       class Program
       {
         static void Main(string[] args)
         {
           var connectionString = "";
           var queueName = "samplequeue";
    
           var client = QueueClient.CreateFromConnectionString(connectionString, queueName);
    
           client.OnMessage(message =>
           {
             Console.WriteLine(String.Format("Message body: {0}", message.GetBody<String>()));
             Console.WriteLine(String.Format("Message id: {0}", message.MessageId));
           });
    
           Console.ReadLine();
         }
       }
     }

     

  4. 運行程序,並檢查門戶。請注意,隊列長度值現在應為0。

    隊列長度

恭喜!您現在已創建一個隊列,發送了一條消息,並收到了一條消息。

 

參考資料:https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-dotnet-get-started-with-queues

 
 
 


免責聲明!

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



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