全部產品
Search
文件中心

ApsaraMQ for RocketMQ:環境準備

更新時間:Jul 01, 2024

本文介紹使用TCP協議的.NET SDK方式接入雲訊息佇列 RocketMQ 版的環境準備工作,以便您後續使用TCP協議的.NET SDK收發訊息。

使用前,請注意以下幾點:

  • 使用雲訊息佇列 RocketMQ 版服務的應用程式需要部署在阿里雲ECS上。

  • 代碼裡涉及到的Topic和Group ID,需要到控制台上建立。Message Tag可以完全由應用自訂。建立步驟,請參見快速入門中的建立資源

Windows .NET SDK簡介

阿里雲提供的.NET版本是基於雲訊息佇列 RocketMQ 版的CPP版本的託管封裝,這樣能保證.NET完全不依賴於Windows.NET公用庫。內部採用C++多線程並發處理,保證.NET版本的高效穩定。

在使用Visual Studio(VS)開發.NET的應用程式和類庫時,預設的目標平台為“Any CPU”,即運行時可根據CPU類型自動選擇x86或x64。在運行時,CLR才會將其JIT發射為x86或x64的機器碼。而C/C++編譯產生的DLL就是機器碼。所以,其平台的決策是在編譯時間決定的。通過編譯選項的設定,將C/C++專案編譯為x64的64位DLL,因此提供了包含VS2015和.NET Framework 4.5.2編譯的release64位版本DLL。其他VS版本也可以使用。

重要
  • .NET SDK僅支援Windows 64-bit作業系統。
  • C++ DLL檔案需要Visual C++ 2015運行時環境安裝包。如果沒有安裝Visual Studio 2015運行時環境,請執行SDK中提供的vc_redist.x64.exe來完成安裝。

下載Windows .NET SDK

新使用者或者不考慮升級成本的老使用者請下載新版SDK。最新版本的.NET SDK下載連結,請參見版本說明

下載完成後進行解壓,會有以下目錄結構,各目錄的說明如下:
  • lib/
    底層的C++ DLL相關檔案,以及Visual C++ 2015運行時環境安裝包。如果沒有安裝Visual Studio 2015運行時環境,需要拷貝安裝vc_redist.x64.exe,如下所示。不同版本間SDK檔案可能有所差異,具體檔案內容請以實際下載的SDK版本為準。
      64/
          ONSClient4CPP.lib
          ONSClient4CPP.dll
          ONSClient4CPP.pdb
        vc_redist.x64.exe                    
  • demo/

    包含了普通訊息發送、Oneway訊息發送、順序訊息發送、普通訊息消費、順序訊息消費等程式碼範例。

  • interface/

    封裝PINVOKE調用的代碼,需要包含到您的專案代碼中。

  • SDK_GUIDE.pdf

    SDK環境準備文檔和FAQ。

  • changelog

    新版本發布解決的問題和引入的新特性列表。

Visual Studio 2015使用.NET SDK配置說明

  1. 使用Visual Studio 2015建立自己的專案。createproject
  2. 按右鍵專案選擇添加 > 現存在項,將下載的SDK中的interface目錄下的所有檔案都添加進去。interface
  3. 按右鍵專案選擇屬性 > 組態管理員。設定活動解決方案配置release;設定活動解決方案平台x64
  4. 編寫測試程式,然後進行編譯,最後將SDK下的DLL放到和可執行檔同一級目錄下,或者系統目錄下即可運行。ddl
    說明

    SDK提供了設定好的Demo,直接開啟工程進行編譯即可。啟動並執行時候將相關的DLL檔案拷貝到和可執行檔同級目錄下,如下圖。

    copyddl

Visual Studio 2015配置ASP.NET使用雲訊息佇列 RocketMQ 版SDK

  1. 使用VS2015建立一個ASP.NET的Web Forms專案。Web Forms
  2. 按右鍵專案選擇屬性 > 組態管理員。設定活動解決方案配置release;設定活動解決方案平台x64x64
  3. 按右鍵專案選擇添加 > 現存在項,將下載的SDK中的interface目錄下的所有檔案都添加進去。

    請參考上文中配置普通的.NET專案的步驟2。

  4. Global.asax.cs檔案中添加啟動和關閉SDK的代碼。
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Optimization;
    using System.Web.Routing;
    using System.Web.Security;
    using System.Web.SessionState;
    using ons;    // 這個命名空間是SDK所在的命名空間。
    using test;   // 這是一個簡單封裝SDK的類所在命名空間。
    namespace WebApplication4
    {
      public class Global : HttpApplication
      {
           void Application_Start(object sender, EventArgs e)
           {
               // Code that runs on application startup
               RouteConfig.RegisterRoutes(RouteTable.Routes);
               BundleConfig.RegisterBundles(BundleTable.Bundles);
               try
               {
                   // 啟動SDK的代碼,下面是簡單封裝SDK後的代碼。
                   OnscSharp.CreateProducer();
                   OnscSharp.StartProducer();
               }
               catch (Exception ex)
               {
               // 處理異常。
               }
           }
           protected void Application_End(object sender, EventArgs e)
           {
               try
               {
                  // 關閉SDK的代碼。
                 OnscSharp.ShutdownProducer();
               }
               catch (Exception ex)
               { 
               // 處理異常。
               }
           }
      }
    }                  
  5. 編寫測試程式,然後進行編譯。
  6. 將SDK下的DLL放到和可執行檔同一級目錄下,或者系統目錄下即可運行。ddl
  7. 選擇工具 > 選項 > 專案和解決方案 > Web專案,然後選中對網站和專案使用IIS Express的64位版。iisexpressproject&sultion