Apache RocketMQ 5.0 SDK for C++ は gRPC 上に構築されており、ソースからコンパイルする必要があります。このガイドでは、依存関係のインストール、gRPC のビルド、SDK のコンパイルについて説明し、ApsaraMQ for RocketMQ を使用してメッセージの送受信を開始できるようにします。
前提条件
開始する前に、次のツールとライブラリをインストールしてください。各コンポーネントには、公式のインストールガイドへのリンクが記載されています。
| コンポーネント | 必須バージョン | 目的 |
|---|---|---|
| GCC | 4.8.5+ (10.2+ を推奨) | C++11 が必須です。C++17 の場合は、GCC 7+ と -std=c++17 または -std=gnu++17 を使用してください。 |
| CMake | 3.13+ | SDK と gRPC のビルドシステム |
| OpenSSL | 1.1.1 | gRPC で必要な TLS/SSL ライブラリ |
| protobuf | 互換性のある任意のバージョン | プロトコルバッファのシリアル化ライブラリ |
この SDK は、gRPC と同じコンパイラの互換性マトリックスを共有しています。
ステップ 1: gflags のインストール
gflags 2.2.2 をダウンロード、コンパイル、インストールします。
wget -O gflags-2.2.2.tar.gz https://github.com/gflags/gflags/archive/v2.2.2.tar.gz
tar -xvzf gflags-2.2.2.tar.gz
cd gflags-2.2.2/
mkdir build && cd build
cmake -DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=ON -DINSTALL_HEADERS=ON -DINSTALL_SHARED_LIBS=ON -DINSTALL_STATIC_LIBS=ON ..
make
make install
cdリンカーがランタイムに gflags を見つけられるように、ライブラリパスを追加します。
cat >> ~/.bashrc << EOF
export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/local/lib
EOF
source ~/.bashrcステップ 2: gRPC のビルドとインストール
gRPC 1.46.3 を使用してください。これ以降のバージョンは、Apache RocketMQ 5.0 SDK for C++ と互換性がない可能性があります。
インストールディレクトリを設定し、PATH を更新します。
export MY_INSTALL_DIR=$HOME/grpc
mkdir -p $MY_INSTALL_DIR
export PATH="$MY_INSTALL_DIR/bin:$PATH"gRPC をクローンしてビルドします。
git clone --recurse-submodules \
-b v1.46.3 --depth 1 --shallow-submodules \
https://github.com/grpc/grpc
cd grpc
mkdir -p cmake/build
pushd cmake/build
cmake -DgRPC_INSTALL=ON \
-DgRPC_BUILD_TESTS=OFF \
-DCMAKE_INSTALL_PREFIX=$MY_INSTALL_DIR \
../..
# Adjust -j based on available CPU cores.
make -j 32
make install
popdヒント:-j 32フラグは 32 個の並列コンパイルジョブを実行します。CPU コア数が少ない、またはメモリが限られているマシンでは、この数値を減らしてください。例えば、4 コアのマシンでは-j 4を使用します。
ステップ 3: ソースからの SDK のコンパイル
この SDK は、CMake (推奨) と Bazel の 2 つのビルドシステムをサポートしています。
オプション A: CMake を使用したビルド (推奨)
wget -O rocketmq-clients-cpp-5.0.3.tar.gz https://github.com/apache/rocketmq-clients/archive/refs/tags/cpp-5.0.3.tar.gz
tar -xvzf rocketmq-clients-cpp-5.0.3.tar.gz
cd rocketmq-clients-cpp-5.0.3/cpp
mkdir build && cd build
cmake ..
makeオプション B: Bazel を使用したビルド
wget -O rocketmq-clients-cpp-5.0.3.tar.gz https://github.com/apache/rocketmq-clients/archive/refs/tags/cpp-5.0.3.tar.gz
tar -xvzf rocketmq-clients-cpp-5.0.3.tar.gz
cd rocketmq-clients-cpp-5.0.3/cpp
bazel build //...ステップ 4: 必要なリソースの作成
サンプルコードを実行する前に、次のリソースを ApsaraMQ for RocketMQ コンソール で作成してください。
インスタンス: RocketMQ サービスインスタンス
トピック: メッセージの送信先
コンシューマーグループ: コンシューマーの論理的なグループ
詳細な手順については、「リソースの作成」をご参照ください。
ステップ 5: サンプルコードの実行
リソースを作成した後、ステップ 4 で取得したリソース情報に基づいてサンプルコード内のパラメーターを更新し、サンプルをコンパイルして実行します。