SDK for C ++ を使用してApsaraMQ for RocketMQに接続してメッセージを送受信する前に、環境を準備する必要があります。 このトピックでは、SDK for C ++ V1.x.xを使用するための準備、手順、および注意事項について説明します。
開始する前に、次の項目に注意してください。
このトピックでは、SDK for C ++ V1.x.xの環境準備についてのみ説明します。
ApsaraMQ for RocketMQコンソールに移動して、コードに関連するトピックとグループを作成する必要があります。 アプリケーションでカスタムメッセージタグを指定できます。 メッセージタグの作成方法については、「リソースの作成」をご参照ください。
ApsaraMQ for RocketMQを使用するアプリケーションは、Alibaba Cloud Elastic Compute Service (ECS) インスタンスにデプロイする必要があります。
Tablestore SDK for C ++ のダウンロード
C ++ SDKは、同じインターフェイスを持つWindowsおよびLinuxオペレーティングシステムをサポートします。 CentOS 6(RHEL 6) およびCentOS 7(RHEL 7) シリーズはLinuxでサポートされています。 C ++ SDKのダウンロード方法の詳細については、「リリースノート」をご参照ください。
ダウンロードが完了したら、パッケージを解凍します。 ディレクトリ構造は次のとおりです。
デモ /(Windowsのみ)
作成されたWindows C ++ デモが含まれています。
例/
例は、通常のメッセージ送信、一方向メッセージ送信、順序付けられたメッセージ送信、通常のメッセージ消費、および順序付けられたメッセージ消費を含む。 Linuxには、
たとえば
コンパイルと管理用のMakefile
も含まれています。include/
このディレクトリには、独自のプログラムで必要なヘッダーファイルが含まれます。
lib/
Linux SDKの次のサブディレクトリは、64の静的および動的ライブラリです。
lib-boost-share / libonsclient4cpp.so lib-boost-static / libonsclient4cpp.a
Windows SDKサブディレクトリは次のとおりです。64ビットシステムのSDKのdllライブラリです。 Visual Studio 2015環境がインストールされていない場合は、インストール
vc_redist.x64
をコピーします。 これは、Visual C ++ 2015のランタイム環境です。64 / vc_redist.x64
SDK_GUIDE.pdf
SDK環境の準備方法に関するドキュメントとよくある質問 (FAQ) が含まれています。
変更ログ
新しいリリースのバグ修正と新機能が含まれています。
Linux C ++ SDK
2016年12月2日以降、Linux CPPバージョンは高性能ブーストライブラリ (バージョン1.62.0) に依存しているため、CPUリソースの使用率が低下するだけでなく、運用効率も向上します。 現在、主にboost_system
、boost_thread
、boost_chrono
、boost_filesystem
の4つのライブラリに依存しています。 静的ライブラリと動的ライブラリの2つのソリューションがあります。
静的ソリューション
ApsaraMQ for RocketMQライブラリファイルはlib/lib-boost-static
ディレクトリにあります。 ブーストライブラリは、libonsclient4cpp.a
に静的にリンクされています。 ブーストライブラリに依存しないビジネスパーティの場合は、静的ライブラリソリューションを直接選択できます。 静的ライブラリソリューションでは、対応するブーストライブラリがlibonsclient4cpp.a
にリンクされています。 コンパイル中にlibonsclient4cpp.a
をリンクするだけで、他の操作は必要ありません。 次のコードは、フィールドを設定する方法の例を示しています。
cd aliyun-mq-linux-cpp-sdk // The path where the downloaded SDK is decompressed.
cd example // Go to the example directory, modify the example file, and enter the information about the topic and key that you created.
make static=1
完全静的リンクの場合は、libstdc ++ 、pthread、およびその他の関連する静的ライブラリがマシンにインストールされていることを確認してください。 デフォルトでは、libstdc ++ には静的ライブラリがインストールされていないため、yum
またはapt-get
を使用して関連する静的ライブラリをインストールする必要があります。
さらに、上記の方法を使用すると、いくつかの警告メッセージが次のように表示されます。
warning: Using 'gethostbyaddr' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
最適な方法は、完全な静的リンクではなく、onsclient4cppを静的にリンクするだけで、他のライブラリを動的にリンクできることをお勧めします。 次のコードは、フィールドを設定する方法の例を示しています。
g ++ -ggdb -Wall -O3 -I ../include。./example/ProducerExampleForEx.cpp -Wl,-static -lonsclient4cpp -L ../lib-boost-static/ -Wl,-Bdynamic -lpthread -ldl -lrt -o. ./example/ProducerExampleForEx
さらに、GCC 5.xではDual ABIが導入されているため、リンクのコンパイル時に -D_GLIBCXX_USE_CXX11_ABI=0コンパイラオプションを追加します。
動的ソリューション
ApsaraMQ for RocketMQライブラリファイルはlib/lib-boost-share
ディレクトリにあり、ビジネス側は実行可能ファイルを生成するときにboostダイナミックライブラリとlibonsclient4cpp.so
をリンクする必要があります。 ビジネス側がすでにブーストライブラリに依存しており、動的ライブラリソリューションを選択する必要がある場合、ブーストライブラリに依存するには次の作業を行う必要があります。
Boost 1.62.0をダウンロードします。
解凍ブースト1.62.0。
tar -- bzip2 -xf /path/to/boost_1_62_0.tar.bz2
ブーストバージョン1.62.0をインストールする:
ブースト1.62.0解凍後のパスに移動します。
cd path/to/boost_1_62_0
ブーストの設定:
. /bootstrap.sh
コンパイルブースト:
./b2 link=shared runtime-link=shared
ブーストをインストール:
./b2インストール
ldconfig -v | grep libboost
の実行。 関連する出力がある場合は、ブースト動的ライブラリが動的ライブラリ検索パスにあることを示します。実行可能ファイルを生成するときは、ブースト動的ライブラリとApsaraMQ for RocketMQ動的ライブラリをリンクする必要があります。 その方法は次のとおりです。
cd aliyun-mq-linux-cpp-sdk // The path where the downloaded SDK is decompressed. cd example // Go to the example directory, modify the example file, and enter the topics and keys that you created in the Message Queue for Apache RocketMQ console. g++ -Wall -Wno-deprecated -L ../lib/lib-boost-share/ -I ../include/ ProducerExampleForEx.cpp -lonsclient4cpp -lboost_system -lboost_thread -lboost_chrono -lboost_filesystem -lpthread export LD_LIBRARY_PATH="../lib/lib-boost-share/" //Add dynamically loaded search paths. ./a.out //Run the program.
Windows C ++ SDK
Visual Studio 2015環境でのSDK for C ++ の使用
Visual Studio 2015を使用してプロジェクトを作成します。
プロジェクトを右クリックし、[プロパティ] > [Configuration Manager] を選択します。 Active solution configurationパラメーターをreleaseに、Active solution platformパラメーターをx64に設定します。
プロジェクトを右クリックし、[プロパティ] を選択します。 表示されるウィンドウで、[設定のプロパティ] > [全般] を選択し、[出力ディレクトリ] をクリックし、[/A] を選択します。 64ビットlibディレクトリ内のすべてのファイルを、Active solution platformパラメーターの設定に基づいて /Aディレクトリにコピーします。
プロジェクトを右クリックし、[プロパティ] を選択します。 表示されるウィンドウで、[設定のプロパティ] > [C/C ++]> [全般] を選択し、[追加のディレクトリを含める] をクリックし、[/B] を選択します。
include
ディレクトリのヘッダーファイルを /Bディレクトリにコピーします。プロジェクトを右クリックし、[プロパティ] を選択します。 表示されるウィンドウで、[設定のプロパティ] > [リンカー] > [一般] を選択し、[追加のライブラリディレクトリ] をクリックし、[/A] を選択します。
プロジェクトを右クリックし、[プロパティ] を選択します。 表示されるウィンドウで、[設定のプロパティ] > [リンカー] > [入力] を選択し、[追加の依存関係] をクリックし、[ONSClient4CPP.lib] を選択します。
プロジェクトを右クリックし、[プロパティ] を選択します。 表示されるウィンドウで、[構成プロパティ] > [C/C ++]> [プリプロセッサ] を選択し、[プリプロセッサの定義] をクリックしてWIN32マクロを追加します。
Visual Studio 2015以外の環境でSDK for C ++ を使用する
前述の手順に従って、Visual Studio 2015環境に基づいてプロジェクトを構成します。
Visual C ++ 2015のランタイム環境vc_redist.x64をインストールします。
重要複雑な設定を防ぐために、C ++ デモ用の事前設定済みSDKを使用できます。 SDK for C ++ パッケージをダウンロードして解凍し、デモディレクトリに移動して、Visual Studio 2015でプロジェクトを開くことができます。
サンプルコード:
上記の操作を実行すると、環境はコンパイルされます。 次に、[ビルド] をクリックして実行可能プログラムをコンパイルし、実行可能プログラムが存在するディレクトリまたはプログラムを実行するシステムディレクトリにDLLファイルをコピーします。