Apache RocketMQ C++ 5.0系列SDK底層基於gRPC,本文為您介紹如何使用源碼編譯RocketMQ C++ Client。
前提條件
為了確保與gRPC保持相同的相容性矩陣,編譯環境需滿足以下要求:
編譯最低需要C++ 11環境,對應GCC版本最低為4.8.5,推薦使用GCC 10.2以上的版本。
可選通過宏支援C++ 17環境,對應GCC版本為7,可以通過
-std=c++17或-std=gnu++17開啟。
需要安裝3.13及以上版本。
需要安裝 1.1.1版本。
具體版本可根據專案需求選擇。
操作步驟
安裝gflags和gRPC依賴。
編譯安裝gflags。
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 需要load lib cat >> ~/.bashrc << EOF export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:/usr/local/lib EOF source ~/.bashrc編譯安裝gRPC。推薦使用1.46.3版本的gRPC,更高版本的gRPC與SDK存在相容性問題。
export MY_INSTALL_DIR=$HOME/grpc mkdir -p $MY_INSTALL_DIR # Add the local bin folder to your path variable, for example: export PATH="$MY_INSTALL_DIR/bin:$PATH" 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 \ ../.. make -j 32 make install popd
源碼構建。RocketMQ C++ Client支援CMake和Bazel兩種構建方式,推薦使用CMake進行構建。本文以Apache RocketMQ C++ SDK 5.0.2版本為例進行說明。
使用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使用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 //...擷取資源資訊。
範例程式碼中涉及的相關資源資訊,包括執行個體存取點、Topic名稱、Group ID等,需要在控制台提前建立。具體操作,請參見建立資源。