全部产品
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 perlu menyiapkan lingkungan. Topik ini menjelaskan langkah-langkah persiapan, petunjuk, dan perhatian yang diperlukan untuk menggunakan SDK untuk C++.

Penting
  • Kami merekomendasikan penggunaan RocketMQ 5.x SDK terbaru. SDK ini sepenuhnya kompatibel dengan broker ApsaraMQ for RocketMQ 5.x dan menyediakan lebih banyak fungsi serta fitur yang ditingkatkan. Untuk informasi lebih lanjut, lihat Deskripsi Versi.

  • Alibaba Cloud hanya memelihara RocketMQ 4.x, 3.x, dan TCP client SDK. Kami merekomendasikan agar Anda hanya menggunakannya untuk bisnis yang sudah ada.

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 yang digunakan dalam kode melalui konsol ApsaraMQ for RocketMQ. Anda dapat menentukan tag pesan kustom di aplikasi Anda. Untuk panduan pembuatan tag pesan, lihat Buat Sumber Daya.

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

Unduh SDK untuk C++

SDK untuk C++ dapat digunakan di Windows dan Linux dengan API yang sama. CentOS 6/RHEL 6 dan CentOS 7/RHEL 7 didukung di Linux. Untuk informasi tentang cara mengunduh SDK untuk C++, lihat Catatan Rilis.

Setelah mengunduh dan mengekstrak paket, struktur direktori berikut akan ditampilkan:

  • demo/ (hanya untuk Windows)

    Berisi demo C++ Windows yang telah dibuat.

  • example/

    Berisi contoh pengiriman dan penerimaan pesan normal serta pesan terurut, serta contoh pengiriman pesan dalam mode satu arah. Di Linux, direktori ini juga berisi file Makefile yang dapat digunakan untuk mengompilasi dan mengelola contoh-contoh.

  • include/

    Berisi file header yang diperlukan oleh program Anda.

  • lib/

    • Kode berikut menunjukkan subdirektori SDK di Linux, termasuk pustaka statis 64-bit dan pustaka dinamis 64-bit:

      lib-boost-share/
        libonsclient4cpp.so
      lib-boost-static/
        libonsclient4cpp.a                        
    • Kode berikut menunjukkan subdirektori SDK di Windows. Ini adalah pustaka SDK DLL 64-bit. Jika Visual Studio 2015 belum diinstal, Anda harus menginstal vc_redist.x64, yaitu 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

Mulai 2 Desember 2016, Linux CPP telah menambahkan pustaka Boost berperforma tinggi (V1.62.0) sebagai dependensinya. Hal ini mengurangi penggunaan sumber daya CPU dan meningkatkan efisiensi operasi. Linux CPP bergantung pada pustaka boost_system, boost_thread, boost_chrono, dan boost_filesystem. Solusi pustaka statis dan solusi pustaka dinamis tersedia untuk Linux CPP.

Solusi pustaka statis

File pustaka ApsaraMQ for RocketMQ berada di direktori lib/lib-boost-static, dan pustaka Boost secara statis tertaut ke libonsclient4cpp.a. Penyedia layanan yang tidak bergantung pada pustaka Boost dapat menggunakan solusi pustaka statis. Dalam solusi pustaka statis, pustaka Boost tertaut ke libonsclient4cpp.a. Saat mengompilasi file, Anda hanya perlu menautkan ke libonsclient4cpp.a. Kode berikut menunjukkan cara menggunakan metode ini:

cd aliyun-mq-linux-cpp-sdk  // Jalur tempat paket SDK untuk C++ yang diunduh diekstraksi.
cd example                  // Pergi ke direktori contoh dan masukkan informasi tentang topik yang Anda buat di konsol ApsaraMQ for RocketMQ dan informasi tentang kunci di file contoh.
make static=1            
Penting

Untuk tautan statis sepenuhnya, pastikan bahwa pustaka statis yang terkait dengan pustaka standar C++ (libstdc++) dan POSIX threads (pthread) diinstal di mesin Anda. libstdc++ yang diinstal secara default tidak berisi pustaka statis. Anda harus menjalankan perintah yum atau apt-get untuk menginstal pustaka statis.

Saat menggunakan metode sebelumnya, pesan peringatan berikut mungkin dikembalikan:

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

Kami merekomendasikan agar Anda hanya menautkan secara statis ke onsclient4cpp dan menautkan secara dinamis ke pustaka lainnya alih-alih menggunakan tautan statis sepenuhnya. Kode berikut menunjukkan cara menggunakan metode ini:

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        

Dual ABI diperkenalkan di GCC 5.x. Saat mengompilasi tautan, Anda harus menambahkan opsi -D_GLIBCXX_USE_CXX11_ABI=0.

Solusi pustaka dinamis

File pustaka ApsaraMQ for RocketMQ berada di direktori lib/lib-boost-share. Saat penyedia layanan menghasilkan file yang dapat dieksekusi, penyedia layanan harus menautkan pustaka dinamis Boost ke libonsclient4cpp.so. Jika penyedia layanan bergantung pada pustaka Boost dan ingin menggunakan solusi pustaka dinamis, lakukan langkah-langkah berikut untuk dependensi pustaka Boost:

  1. Unduh Boost 1.62.0.

    boost 1.62.0

  2. Ekstrak paket Boost 1.62.0.

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

  3. Instal Boost 1.62.0.

    1. Jalankan perintah cd path/to/boost_1_62_0 untuk masuk ke direktori tempat paket Boost 1.62.0 diekstraksi.

    2. Jalankan perintah ./bootstrap.sh untuk mengonfigurasi Boost.

    3. Jalankan perintah ./b2 link=shared runtime-link=shared untuk mengompilasi Boost.

    4. Jalankan perintah ./b2 install untuk menginstal Boost.

  4. Jalankan perintah ldconfig -v|grep libboost. Jika ada keluaran yang ditampilkan, pustaka dinamis Boost berada di jalur pencarian pustaka dinamis.

  5. Tautkan pustaka dinamis Boost ke pustaka dinamis ApsaraMQ for RocketMQ saat file yang dapat dieksekusi dihasilkan. Kode berikut menunjukkan detailnya:

    cd aliyun-mq-linux-cpp-sdk  // Jalur tempat paket SDK untuk C++ yang diunduh diekstraksi.
    cd example                  // Pergi ke direktori contoh dan masukkan informasi tentang topik yang Anda buat di konsol ApsaraMQ for RocketMQ dan informasi tentang kunci di file contoh.
    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++ di 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 sesuai dengan 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++ di lingkungan selain Visual Studio 2015

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

  2. Instal 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 membuka proyek di Visual Studio 2015.

    Gambar-gambar berikut memberikan contoh.

    demopropertiessetfilepath

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

Referensi

Contoh kode