Siapkan ApsaraMQ for RocketMQ C++ SDK V1.x.x di Linux atau Windows agar Anda dapat mengompilasi dan menjalankan contoh yang disertakan untuk mengirim dan menerima pesan.
Kami menyarankan Anda menggunakan SDK RocketMQ 5.x terbaru. SDK ini sepenuhnya kompatibel dengan broker ApsaraMQ for RocketMQ 5.x serta menyediakan lebih banyak fungsi dan fitur yang ditingkatkan. Untuk informasi selengkapnya, lihat Panduan Versi.
Alibaba Cloud hanya memelihara SDK client RocketMQ 4.x, 3.x, dan TCP. Kami menyarankan Anda hanya menggunakannya untuk bisnis yang sudah ada.
SDK RocketMQ 5.x terbaru sepenuhnya kompatibel dengan broker ApsaraMQ for RocketMQ 5.x serta menawarkan lebih banyak fitur dan performa yang lebih baik. Untuk detailnya, lihat Catatan Rilis. SDK client RocketMQ 4.x, 3.x, dan TCP berada dalam mode maintenance. Gunakan hanya untuk beban kerja yang sudah ada.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Instans Alibaba Cloud Elastic Compute Service (ECS) untuk men-deploy aplikasi Anda
Topik dan kelompok yang telah dibuat di Konsol ApsaraMQ for RocketMQ — tentukan tag pesan kustom dalam kode aplikasi Anda sesuai kebutuhan
Unduh SDK
C++ SDK V1.x.x mendukung Windows dan Linux dengan API yang terpadu. Di Linux, CentOS 6/RHEL 6 dan CentOS 7/RHEL 7 didukung. Untuk tautan unduhan, lihat Catatan Rilis.
Setelah Anda mengunduh dan mengekstrak paket tersebut, struktur direktori SDK adalah sebagai berikut:
aliyun-mq-linux-cpp-sdk/
├── demo/ # Hanya untuk Windows: proyek demo Visual Studio yang telah dikonfigurasi sebelumnya
├── example/ # Contoh pengiriman/penerimaan pesan biasa, terurut, dan satu arah
│ # Di Linux, mencakup Makefile untuk mengompilasi contoh
├── include/ # File header yang diperlukan oleh aplikasi Anda
├── lib/
│ ├── lib-boost-share/
│ │ └── libonsclient4cpp.so # Pustaka dinamis 64-bit (Linux)
│ ├── lib-boost-static/
│ │ └── libonsclient4cpp.a # Pustaka statis 64-bit (Linux)
│ └── 64/ # DLL 64-bit (Windows)
│ └── vc_redist.x64 # Runtime Visual C++ 2015 (diperlukan jika VS2015 tidak terinstal)
├── SDK_GUIDE.pdf # Dokumentasi SDK dan FAQ
└── changelog # Perbaikan bug dan fitur baru per rilisSiapkan lingkungan Linux
Mulai 2 Desember 2016, SDK C++ Linux bergantung pada Boost 1.62.0 (boost_system, boost_thread, boost_chrono, dan boost_filesystem). Pustaka-pustaka ini mengurangi penggunaan resource CPU dan meningkatkan efisiensi operasi.
Tersedia dua strategi penghubungan (linking): statis dan dinamis. Pilih yang sesuai dengan proyek Anda.
Pustaka statis
Dalam pendekatan pustaka statis, pustaka Boost di-link ke dalam libonsclient4cpp.a. Saat mengompilasi, cukup link ke arsip tunggal ini.
Bangun dengan Make:
Buka direktori SDK yang telah diekstrak:
cd aliyun-mq-linux-cpp-sdkBuka file sumber contoh di
example/dan masukkan nama topik, ID kelompok, serta kredensial access key Anda.Bangun contoh dengan linking statis:
cd example make static=1
Linking statis penuh memerlukan versi statis dari libstdc++ dan pthread di mesin Anda. Instalasi libstdc++ bawaan biasanya tidak menyertakan pustaka statis. Instal pustaka tersebut menggunakan yum atau apt-get sesuai kebutuhan.
Build statis penuh mungkin menghasilkan peringatan berikut:
warning: Using 'gethostbyaddr' in statically linked applications requires at runtime the shared libraries from the glibc version used for linkingPendekatan yang direkomendasikan — linking statis parsial:
Untuk menghindari masalah kompatibilitas glibc, lakukan linking statis hanya untuk onsclient4cpp dan lakukan linking dinamis untuk semua komponen lainnya:
g++ -ggdb -Wall -O3 -I../include \
../example/ProducerExampleForEx.cpp \
-Wl,-static -lonsclient4cpp -L../lib/lib-boost-static/ \
-Wl,-Bdynamic -lpthread -ldl -lrt \
-o ../example/ProducerExampleForExGCC 5.x memperkenalkan Dual ABI. Saat Anda mengompilasi dengan GCC 5.x atau versi yang lebih baru, tambahkan -D_GLIBCXX_USE_CXX11_ABI=0 ke perintah kompilasi.
Pustaka dinamis
Dalam pendekatan pustaka dinamis, SDK menyertakan libonsclient4cpp.so di lib/lib-boost-share/. Instal pustaka bersama Boost 1.62.0 secara terpisah dan hubungkan saat kompilasi.
Unduh Boost 1.62.0.
Ekstrak paket tersebut:
tar --bzip2 -xf /path/to/boost_1_62_0.tar.bz2Bangun dan instal Boost:
cd path/to/boost_1_62_0 ./bootstrap.sh ./b2 link=shared runtime-link=shared ./b2 installVerifikasi bahwa pustaka bersama Boost berada di jalur pencarian linker dinamis: Jika perintah ini menghasilkan output, pustaka telah terinstal dengan benar.
ldconfig -v | grep libboostKompilasi dan jalankan aplikasi Anda:
cd aliyun-mq-linux-cpp-sdk/example 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/" ./a.out
Siapkan lingkungan Windows
Visual Studio 2015
Buat proyek baru di Visual Studio 2015.


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


Buka Properties > Configuration Properties > General. Atur Output Directory ke suatu path (selanjutnya disebut /A). Salin semua file dari direktori SDK
lib/64/ke /A.
Buka Properties > Configuration Properties > C/C++ > General. Atur Additional Include Directories ke suatu path (selanjutnya disebut /B). Salin file header dari direktori SDK
include/ke /B.

Buka Properties > Configuration Properties > Linker > General. Atur Additional Library Directories ke /A.

Buka Properties > Configuration Properties > Linker > Input. Tambahkan ONSClient4CPP.lib ke Additional Dependencies.

Buka Properties > Configuration Properties > C/C++ > Preprocessor. Tambahkan WIN32 ke Preprocessor Definitions.

Setelah menyelesaikan langkah-langkah ini, klik Build untuk mengompilasi proyek Anda. Salin file DLL ke direktori yang berisi executable Anda (atau ke direktori sistem) sebelum menjalankan program.
Lingkungan selain Visual Studio 2015
Ikuti langkah-langkah konfigurasi yang sama seperti yang dijelaskan pada bagian "Visual Studio 2015" di atas.
Instal vc_redist.x64 (runtime Visual C++ 2015) di mesin target.
Untuk menghindari konfigurasi manual, gunakan proyek demo yang telah dikonfigurasi sebelumnya. Ekstrak paket SDK, buka proyek di direktori demo/ dengan Visual Studio 2015, lalu perbarui path file agar sesuai dengan pengaturan lokal Anda.


