本文介紹使用.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配置說明
使用Visual Studio 2015創建自己的項目。
右鍵單擊項目選擇添加 > 現存在項,將下載的SDK中的interface目錄下的所有文件都添加進去。
右鍵單擊項目選擇
。設置活動解決方案配置為release;設置活動解決方案平臺為x64。編寫測試程序,然后進行編譯,最后將SDK下的DLL放到和可執行文件同一級目錄下,或者系統目錄下即可運行。
說明SDK提供了設置好的Demo,直接打開工程進行編譯即可。運行的時候將相關的DLL文件拷貝到和可執行文件同級目錄下,如下圖。
Visual Studio 2015配置ASP.NET使用云消息隊列 RocketMQ 版SDK
使用VS2015創建一個ASP.NET的Web Forms項目。
右鍵單擊項目選擇
。設置活動解決方案配置為release;設置活動解決方案平臺為x64。右鍵單擊項目選擇
,將下載的SDK中的interface目錄下的所有文件都添加進去。請參考上文中配置普通的.NET項目的步驟2。
在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) { // 處理異常。 } } } }
編寫測試程序,然后進行編譯。
將SDK下的DLL放到和可執行文件同一級目錄下,或者系統目錄下即可運行。
選擇
,然后選中對網站和項目使用IIS Express的64位版。