全部产品
Search
文档中心

ApsaraMQ for RocketMQ:Persiapan Lingkungan (V1.x.x)

更新时间:Jul 02, 2025

Sebelum menggunakan SDK untuk C++ untuk terhubung ke ApsaraMQ for RocketMQ dalam mengirim dan menerima pesan, Anda harus menyiapkan lingkungan. Topik ini menjelaskan persiapan, instruksi, dan perhatian yang diperlukan untuk menggunakan SDK untuk C++ V1.x.x.

Sebelum memulai, perhatikan hal-hal berikut:

  • Topik ini hanya mencakup persiapan lingkungan untuk SDK untuk C++ V1.x.x.

  • Anda harus membuat topik dan grup di konsol ApsaraMQ for RocketMQ yang akan digunakan dalam kode. Anda dapat menentukan tag pesan kustom di aplikasi Anda. Untuk informasi lebih lanjut tentang cara membuat tag pesan, lihat Buat Sumber Daya.

  • Aplikasi yang menggunakan ApsaraMQ for RocketMQ harus diterapkan pada instance Elastic Compute Service (ECS) Alibaba Cloud.

Unduh Tablestore SDK untuk C++

SDK C++ mendukung sistem operasi Windows dan Linux dengan antarmuka yang identik. Seri CentOS 6 (RHEL 6) dan CentOS 7 (RHEL 7) didukung di Linux. Untuk informasi lebih lanjut tentang cara mengunduh SDK C++, lihat Catatan Rilis.

Setelah unduhan selesai, ekstrak paket tersebut. Struktur direktori adalah sebagai berikut:

  • demo/ (hanya untuk Windows)

    Berisi demo C++ Windows yang telah dibuat.

  • example/

    Contoh mencakup pengiriman pesan normal, pengiriman pesan satu arah, pengiriman pesan terurut, konsumsi pesan normal, dan konsumsi pesan terurut. Pada Linux, juga termasuk Makefile untuk kompilasi dan manajemen example.

  • include/

    Direktori ini berisi file header yang diperlukan oleh program Anda.

  • lib/

    • Subdirektori berikut dari SDK Linux adalah pustaka statis dan dinamis 64-bit.

      lib-boost-share/
        libonsclient4cpp.so
      lib-boost-static/
        libonsclient4cpp.a                        
    • Subdirektori SDK Windows adalah sebagai berikut, yang merupakan pustaka dll dari SDK dalam sistem 64-bit. Jika tidak ada lingkungan Visual Studio 2015 yang terinstal, salin instalasi vc_redist.x64. Ini adalah lingkungan runtime untuk Visual C++ 2015.

      64/
      vc_redist.x64                        
  • SDK_GUIDE.pdf

    Berisi dokumentasi dan pertanyaan yang sering diajukan (FAQ) tentang cara menyiapkan lingkungan SDK.

  • changelog

    Berisi perbaikan bug dan fitur baru dalam rilis baru.

Linux C++ SDK

Sejak 02 Desember 2016, versi Linux CPP bergantung pada pustaka boost berperforma tinggi (versi 1.62.0), yang tidak hanya mengurangi tingkat pemanfaatan sumber daya CPU tetapi juga meningkatkan efisiensi operasi. Saat ini, terutama bergantung pada empat pustaka: boost_system, boost_thread, boost_chrono, dan boost_filesystem. Ada dua solusi: pustaka statis dan pustaka dinamis.

Solusi Statis

File pustaka ApsaraMQ for RocketMQ berada di direktori lib/lib-boost-static. Pustaka boost secara statis ditautkan ke libonsclient4cpp.a. Untuk pihak bisnis yang tidak bergantung pada pustaka boost, Anda dapat langsung memilih solusi pustaka statis. Dalam solusi pustaka statis, pustaka boost yang sesuai telah ditautkan ke libonsclient4cpp.a. Anda hanya perlu menautkan libonsclient4cpp.a selama kompilasi, tanpa memerlukan operasi lainnya. Kode berikut memberikan contoh tentang cara mengatur bidang:

cd aliyun-mq-linux-cpp-sdk // Jalur tempat SDK yang diunduh diekstraksi.
cd example // Masuk ke direktori contoh, modifikasi file contoh, dan masukkan informasi tentang topik dan kunci yang Anda buat.
make static=1            
Penting

Untuk tautan statis penuh, pastikan bahwa pustaka statis terkait seperti libstdc++, pthread, dan lainnya terinstal di mesin. Secara default, libstdc++ tidak memiliki pustaka statis yang terinstal, jadi Anda perlu menginstal pustaka statis terkait melalui yum atau apt-get.

Selain itu, beberapa pesan peringatan akan muncul saat menggunakan metode di atas.

warning: Menggunakan 'gethostbyaddr' dalam aplikasi yang ditautkan secara statis memerlukan pustaka bersama dari glibc versi yang digunakan untuk penautan            

Disarankan agar cara terbaik adalah tidak menggunakan tautan statis lengkap, tetapi hanya menautkan onsclient4cpp secara statis, dan pustaka lainnya dapat ditautkan secara dinamis. Kode berikut memberikan contoh tentang cara mengatur bidang:

g++ -ggdb -Wall -O3 -I../include    ../example/ProducerExampleForEx.cpp  -Wl,-static -lonsclient4cpp -L../lib/lib-boost-static/ -Wl,-Bdynamic  -lpthread -ldl -lrt -o ../example/ProducerExampleForEx        

Selain itu, karena GCC 5.x memperkenalkan Dual ABI, saat mengompilasi tautan, tambahkan opsi kompiler -D_GLIBCXX_USE_CXX11_ABI=0.

Solusi Dinamis

File pustaka ApsaraMQ for RocketMQ berada di direktori lib/lib-boost-share, dan pihak bisnis perlu menautkan pustaka dinamis boost dan libonsclient4cpp.so saat menghasilkan file executable. Jika pihak bisnis sudah bergantung pada pustaka boost dan perlu memilih solusi pustaka dinamis, pekerjaan berikut perlu dilakukan untuk bergantung pada pustaka boost:

  1. Unduh Boost 1.62.0.

    boost 1.62.0

  2. Ekstrak boost 1.62.0.

    tar --bzip2 -xf /path/to/boost_1_62_0.tar.bz2

  3. Instal boost versi 1.62.0:

    1. Masuk ke jalur setelah ekstraksi boost 1.62.0: cd path/to/boost_1_62_0

    2. Konfigurasikan boost: ./bootstrap.sh

    3. Kompilasi boost: ./b2 link=shared runtime-link=shared

    4. Instal boost: ./b2 install

  4. Jalankan ldconfig -v|grep libboost. Jika ada output terkait, itu menunjukkan bahwa pustaka dinamis boost berada di jalur pencarian pustaka dinamis.

  5. Saat menghasilkan file executable, Anda perlu menautkan pustaka dinamis boost dan pustaka dinamis ApsaraMQ for RocketMQ. Metodenya adalah sebagai berikut.

    cd aliyun-mq-linux-cpp-sdk // Jalur tempat SDK yang diunduh diekstraksi.
    cd example // Masuk ke direktori contoh, modifikasi file contoh, dan masukkan topik dan kunci yang Anda buat di konsol Message Queue for Apache RocketMQ.
    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/"  //Tambahkan jalur pencarian yang dimuat secara dinamis.
    ./a.out  //Jalankan program.

Windows C++ SDK

Gunakan SDK untuk C++ dalam lingkungan Visual Studio 2015

  1. Gunakan Visual Studio 2015 untuk membuat proyek Anda.createprojectnextfinish

  2. Klik kanan proyek dan pilih Properties > Configuration Manager. Atur parameter Active solution configuration ke release dan parameter Active solution platform ke x64.x64CM

  3. Klik kanan proyek dan pilih Properties. Di jendela yang muncul, pilih Configuration Properties > General, klik Output Directory, dan kemudian pilih /A. Salin semua file di direktori lib 64-bit ke direktori /A berdasarkan pengaturan parameter Active solution platform.path

  4. Klik kanan proyek dan pilih Properties. Di jendela yang muncul, pilih Configuration Properties > C/C++ > General, klik Additional Include Directories, dan kemudian pilih /B. Salin file header di direktori include ke direktori /B.otherdirectoryadditional

  5. Klik kanan proyek dan pilih Properties. Di jendela yang muncul, pilih Configuration Properties > Linker > General, klik Additional Library Directories, dan kemudian pilih /A.additionalA

  6. Klik kanan proyek dan pilih Properties. Di jendela yang muncul, pilih Configuration Properties > Linker > Input, klik Additional Dependencies, dan kemudian pilih ONSClient4CPP.lib.ONSClient4CPP.lib

  7. Klik kanan proyek dan pilih Properties. Di jendela yang muncul, pilih Configuration Properties > C/C++ > Preprocessor, dan kemudian klik Preprocessor Definitions untuk menambahkan makro WIN32.WIN32

Gunakan SDK untuk C++ dalam lingkungan selain Visual Studio 2015

  1. Ikuti langkah-langkah sebelumnya untuk mengonfigurasi proyek Anda berdasarkan lingkungan Visual Studio 2015.

  2. Instal lingkungan runtime untuk Visual C++ 2015: vc_redist.x64.

    Penting

    Untuk mencegah pengaturan yang kompleks, Anda dapat menggunakan demo SDK untuk C++ yang telah dikonfigurasi sebelumnya. Anda dapat mengunduh dan mengekstrak paket SDK untuk C++, masuk ke direktori demo, dan kemudian membuka proyek di Visual Studio 2015.

    Kode contoh:

    demopropertiessetfilepath

    Setelah melakukan operasi di atas, lingkungan siap dikompilasi. Kemudian, Anda dapat mengklik Build untuk mengompilasi program executable dan menyalin file DLL ke direktori tempat program executable berada atau ke direktori sistem untuk menjalankan program.

Referensi