全部產品
Search
文件中心

ApsaraMQ for RocketMQ:環境準備

更新時間:Jun 30, 2024

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

重要
  • 推薦您使用最新的RocketMQ 5.x系列SDK,5.x系列SDK作為主力研發版本,和雲訊息佇列 RocketMQ 版5.x服務端完全相容,提供了更全面的功能並支援更多增強特性。更多資訊,請參見5.x系列SDK
  • RocketMQ 4.x/3.x系列SDK和ONS系列SDK後續僅做功能維護,建議僅存量業務使用。

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,如下所示。

      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的代碼。

    重要

    建議將SDK的代碼封裝成一個單例類,這樣可以避免因為範圍的問題被記憶體回收行程回收。SDK的example目錄下提供了一個Example.cs,實現了一個簡單的單例實現。您需要把Example.cs包含到自己的專案中才能使用。

    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的類所在命名空間,建SDK的example目錄下的Example.cs。
    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