All Products
Search
Document Center

ApsaraMQ for RocketMQ:Persiapkan lingkungan (v1.x.x)

Last Updated:Aug 04, 2026

Topik ini menjelaskan cara mempersiapkan lingkungan untuk menggunakan C++ SDK v1.x.x agar dapat terhubung ke Message Queue for Apache RocketMQ, sehingga Anda dapat mengirim dan menerima pesan menggunakan SDK tersebut.

Sebelum memulai:

  • Topik ini hanya berlaku untuk C++ SDK v1.x.x.

  • Di Konsol, buat Topik dan ID kelompok yang akan digunakan oleh kode Anda. Anda dapat menyesuaikan tag pesan di dalam aplikasi. Untuk informasi lebih lanjut tentang cara membuat resource, lihat Buat resource.

  • Aplikasi yang menggunakan Message Queue for Apache RocketMQ harus dideploy pada Instance ECS.

Unduh Tablestore SDK untuk C++

C++ SDK mendukung sistem operasi Windows dan Linux dengan antarmuka yang identik. Di Linux, didukung seri CentOS 6 (RHEL 6) dan CentOS 7 (RHEL 7). Untuk informasi lebih lanjut tentang cara mengunduh C++ SDK, lihat Catatan rilis untuk TCP client SDK untuk C++.

Setelah pengunduhan selesai, ekstrak paket tersebut. Struktur direktorinya 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. Linux juga menyertakan Makefile untuk kompilasi dan manajemen example.

  • include/

    Direktori ini berisi file header yang diperlukan oleh program Anda sendiri.

  • lib/

    • Subdirektori berikut dari SDK Linux merupakan library statis dan dinamis 64-bit.

      lib-boost-share/
        libonsclient4cpp.so
      lib-boost-static/
        libonsclient4cpp.a                        
    • Subdirektori SDK Windows adalah sebagai berikut, yaitu library dll SDK pada sistem 64-bit. Jika lingkungan Visual Studio 2015 belum terinstal, salin instalasi vc_redist.x64. Ini adalah lingkungan waktu proses untuk Visual C++ 2015.

      64/
      vc_redist.x64                        
  • SDK_GUIDE.pdf

    Berisi dokumentasi dan pertanyaan umum (FAQ) tentang cara mempersiapkan lingkungan SDK.

  • changelog

    Berisi perbaikan bug dan fitur baru dalam rilis terbaru.

Linux C++ SDK

Sejak 2 Desember 2016, versi CPP Linux bergantung pada library boost berkinerja tinggi (versi 1.62.0), yang tidak hanya mengurangi laju pemanfaatan sumber daya CPU, tetapi juga meningkatkan efisiensi operasi. Saat ini, library tersebut terutama bergantung pada empat library: boost_system, boost_thread, boost_chrono, dan boost_filesystem. Terdapat dua solusi: library statis dan library dinamis.

Solusi Statis

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

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

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

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

warning: Using 'gethostbyaddr' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking            

Disarankan agar cara terbaik adalah tidak menggunakan tautan statis lengkap, melainkan hanya menautkan onsclient4cpp secara statis, sedangkan library lainnya dapat ditautkan secara dinamis. Kode berikut memberikan contoh cara mengatur bidang-bidang tersebut:

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 melakukan kompilasi dan penautan, tambahkan opsi kompilator -D_GLIBCXX_USE_CXX11_ABI=0.

Solusi Dinamis

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

  1. Unduh Boost 1.62.0.

    boost 1.62.0

  2. Dekompresi 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. Konfigurasi boost: ./bootstrap.sh

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

    4. Instal boost: ./b2 install

  4. Jalankan perintah ldconfig -v|grep libboost. Jika terdapat output yang relevan, hal ini menunjukkan bahwa library dinamis boost berada dalam jalur pencarian library dinamis.

  5. Saat menghasilkan file yang dapat dieksekusi, Anda perlu menautkan library dinamis boost dan library dinamis ApsaraMQ for RocketMQ. Metodenya adalah sebagai berikut.

    cd aliyun-mq-linux-cpp-sdk // Jalur tempat SDK yang diunduh diekstrak.
    cd example // Masuk ke direktori example, ubah file example, lalu masukkan topik dan kunci yang telah 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 untuk pemuatan dinamis.
    ./a.out  // Jalankan program.

Windows C++ SDK

Gunakan C++ SDK di Visual Studio 2015

  1. Buat proyek di Visual Studio 2015.

    Klik New Project. Di kotak dialog New Project, pilih Installed > Templates > Visual C++ > Win32, lalu pilih Win32 Console Application dan klik OK untuk membuat proyek.

    Di kotak dialog Win32 Application Wizard, pastikan tipe proyek adalah Console application, lalu klik Next untuk melanjutkan ke langkah konfigurasi berikutnya.

    Atur Application type menjadi Console application, pilih Empty project, lalu klik Finish untuk membuat proyek kosong.

  2. Klik kanan proyek dan pilih Property > Configuration Manager. Atur Active solution configuration menjadi release dan Active solution platform menjadi x64.

  3. Klik kanan proyek dan navigasikan ke Property > Configuration Properties > General. Atur Output Directory menjadi /A. Berdasarkan pengaturan Active solution platform, salin semua file dari direktori lib 64-bit ke direktori output /A.

    Atur Platform Toolset menjadi Visual Studio 2015 - Windows XP (v140_xp). Nilai Output Directory adalah $(SolutionDir)$(Platform)\$(Configuration)\, yang dihasilkan secara otomatis setelah build. Salin ONSClient4CPP.dll, ONSClient4CPP.lib, dan ONSClient4CPP.pdb dari direktori lib SDK ke direktori output build ini.

  4. Klik kanan proyek dan navigasikan ke Property > Configuration Properties > C/C++ > General. Atur Additional Include Directories menjadi /B. Salin file header dari direktori include ke /B.

    Tambahkan jalur direktori include SDK (misalnya, E:\aliyun-mq-windows-cpp-sdk\include). Atau, tentukan direktori lain dan salin file include SDK ke dalamnya. Jika Anda menggunakan VS2015 di Windows 7, tambahkan juga jalur ucrt Windows Kits, misalnya, C:\Program Files (x86)\Windows Kits\10\Include\10.0.10150.0\ucrt.

  5. Klik kanan proyek dan navigasikan ke Property > Configuration Properties > Linker > General. Atur Additional Library Directories menjadi /A.

    Tambahkan jalur-jalur berikut:

    • Jalur direktori lib\64 SDK (berisi file DLL terkait).

    • Jika Anda menggunakan VS2015 di Windows 7, tambahkan juga jalur ucrt\x64 Windows Kits, misalnya, C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10150.0\ucrt\x64.

  6. Klik kanan proyek dan navigasikan ke Property > Configuration Properties > Linker > Input. Atur Additional Dependencies menjadi ONSClient4CPP.lib.

  7. Klik kanan proyek dan navigasikan ke Property > Configuration Properties > C/C++ > Preprocessor. Tambahkan makro WIN32 ke Preprocessor Definitions.

    Atur Preprocessor Definitions menjadi NDEBUG;WIN32_CONSOLE;%(PreprocessorDefinitions).

Gunakan C++ SDK di lingkungan selain Visual Studio 2015

  1. Konfigurasi lingkungan Anda dengan mengikuti langkah-langkah di bagian "Gunakan C++ SDK di Visual Studio 2015".

  2. Instal vc_redist.x64, yaitu runtime untuk Visual C++ 2015.

    Penting

    Untuk menghindari konfigurasi yang rumit, Anda dapat menggunakan demo SDK yang telah dikonfigurasi sebelumnya. Setelah mengunduh dan mengekstrak SDK, masuk ke direktori demo dan buka proyek di Visual Studio 2015.

    1. Di Solution Explorer, klik kanan proyek demo dan pilih Properties untuk membuka halaman properti.

    2. Bentangkan Configuration Properties > C/C++ > General.

    3. Edit Additional Include Directories dan tambahkan jalur ../../include serta C:\Program Files (x86)\Windows Kits\10\Include\10.0.10150.0\ucrt.

    4. Ganti nomor versi di jalur ucrt (seperti 10.0.10150.0) dengan versi Windows SDK yang terinstal di mesin Anda.

    Klik Build untuk mengompilasi proyek. Untuk menjalankan file yang dapat dieksekusi, salin DLL yang diperlukan ke direktori file tersebut atau ke direktori sistem.

Topik terkait