環(huán)境準(zhǔn)備
本文介紹使用TCP協(xié)議的.NET SDK方式接入云消息隊(duì)列 RocketMQ 版的環(huán)境準(zhǔn)備工作,以便您后續(xù)使用TCP協(xié)議的.NET SDK收發(fā)消息。
使用前,請注意以下幾點(diǎn):
使用云消息隊(duì)列 RocketMQ 版服務(wù)的應(yīng)用程序需要部署在阿里云ECS上。
代碼里涉及到的Topic和Group ID,需要到控制臺上創(chuàng)建。Message Tag可以完全由應(yīng)用自定義。創(chuàng)建步驟,請參見快速入門中的創(chuàng)建資源。
Windows .NET SDK簡介
阿里云提供的.NET版本是基于云消息隊(duì)列 RocketMQ 版的CPP版本的托管封裝,這樣能保證.NET完全不依賴于Windows.NET公共庫。內(nèi)部采用C++多線程并發(fā)處理,保證.NET版本的高效穩(wěn)定。
在使用Visual Studio(VS)開發(fā).NET的應(yīng)用程序和類庫時,默認(rèn)的目標(biāo)平臺為“Any CPU”,即運(yùn)行時可根據(jù)CPU類型自動選擇x86或x64。在運(yùn)行時,CLR才會將其JIT發(fā)射為x86或x64的機(jī)器碼。而C/C++編譯生成的DLL就是機(jī)器碼。所以,其平臺的決策是在編譯時決定的。通過編譯選項(xiàng)的設(shè)置,將C/C++項(xiàng)目編譯為x64的64位DLL,因此提供了包含VS2015和.NET Framework 4.5.2編譯的release64位版本DLL。其他VS版本也可以使用。
- .NET SDK僅支持Windows 64-bit操作系統(tǒng)。
- C++ DLL文件需要Visual C++ 2015運(yùn)行時環(huán)境安裝包。如果沒有安裝Visual Studio 2015運(yùn)行時環(huán)境,請執(zhí)行SDK中提供的vc_redist.x64.exe來完成安裝。
下載Windows .NET SDK
新用戶或者不考慮升級成本的老用戶請下載新版SDK。最新版本的.NET SDK下載鏈接,請參見版本說明。
- lib/ 底層的C++ DLL相關(guān)文件,以及Visual C++ 2015運(yùn)行時環(huán)境安裝包。如果沒有安裝Visual Studio 2015運(yùn)行時環(huán)境,需要拷貝安裝vc_redist.x64.exe,如下所示。不同版本間SDK文件可能有所差異,具體文件內(nèi)容請以實(shí)際下載的SDK版本為準(zhǔn)。
64/ ONSClient4CPP.lib ONSClient4CPP.dll ONSClient4CPP.pdb vc_redist.x64.exe
- demo/
包含了普通消息發(fā)送、Oneway消息發(fā)送、順序消息發(fā)送、普通消息消費(fèi)、順序消息消費(fèi)等代碼示例。
- interface/
封裝PINVOKE調(diào)用的代碼,需要包含到您的項(xiàng)目代碼中。
- SDK_GUIDE.pdf
SDK環(huán)境準(zhǔn)備文檔和FAQ。
- changelog
新版本發(fā)布解決的問題和引入的新特性列表。
Visual Studio 2015使用.NET SDK配置說明
- 使用Visual Studio 2015創(chuàng)建自己的項(xiàng)目。
- 右鍵單擊項(xiàng)目選擇添加 > 現(xiàn)存在項(xiàng),將下載的SDK中的interface目錄下的所有文件都添加進(jìn)去。
- 右鍵單擊項(xiàng)目選擇 。設(shè)置活動解決方案配置為release;設(shè)置活動解決方案平臺為x64。
- 編寫測試程序,然后進(jìn)行編譯,最后將SDK下的DLL放到和可執(zhí)行文件同一級目錄下,或者系統(tǒng)目錄下即可運(yùn)行。說明
SDK提供了設(shè)置好的Demo,直接打開工程進(jìn)行編譯即可。運(yùn)行的時候?qū)⑾嚓P(guān)的DLL文件拷貝到和可執(zhí)行文件同級目錄下,如下圖。
Visual Studio 2015配置ASP.NET使用云消息隊(duì)列 RocketMQ 版SDK
- 使用VS2015創(chuàng)建一個ASP.NET的Web Forms項(xiàng)目。
- 右鍵單擊項(xiàng)目選擇 。設(shè)置活動解決方案配置為release;設(shè)置活動解決方案平臺為x64。
- 右鍵單擊項(xiàng)目選擇
請參考上文中配置普通的.NET項(xiàng)目的步驟2。
,將下載的SDK中的interface目錄下的所有文件都添加進(jìn)去。 - 在Global.asax.cs文件中添加啟動和關(guān)閉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 { // 關(guān)閉SDK的代碼。 OnscSharp.ShutdownProducer(); } catch (Exception ex) { // 處理異常。 } } } }
- 編寫測試程序,然后進(jìn)行編譯。
- 將SDK下的DLL放到和可執(zhí)行文件同一級目錄下,或者系統(tǒng)目錄下即可運(yùn)行。
- 選擇 ,然后選中對網(wǎng)站和項(xiàng)目使用IIS Express的64位版。