Siapkan lingkungan pengembangan Linux atau Windows Anda untuk mengirim dan menerima pesan dengan ApsaraMQ for RocketMQ C++ SDK V1.x.x.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Akun Alibaba Cloud dengan ApsaraMQ for RocketMQ yang telah diaktifkan
Topik dan kelompok konsumen yang telah dibuat di Konsol ApsaraMQ for RocketMQ
Instans Elastic Compute Service (ECS) untuk men-deploy aplikasi Anda
Panduan ini hanya mencakup C++ SDK V1.x.x. Tag pesan didefinisikan oleh aplikasi dan tidak memerlukan konfigurasi di Konsol.
Unduh SDK
SDK C++ mendukung Windows dan Linux dengan antarmuka yang identik. Di Linux, CentOS 6 (RHEL 6) dan CentOS 7 (RHEL 7) didukung.
Unduh paket SDK dari halaman catatan rilis.
Isi paket
Setelah Anda mengekstrak paket tersebut, direktori berisi hal-hal berikut:
| Direktori atau file | Deskripsi |
|---|---|
demo/ | Proyek Visual Studio yang telah dikonfigurasi sebelumnya (hanya untuk Windows) |
example/ | Kode contoh untuk mengirim dan mengonsumsi pesan normal, satu arah, dan pesan terurut. Di Linux, menyertakan Makefile |
include/ | File header untuk aplikasi Anda |
lib/ | Pustaka statis dan bersama (lihat detail di bawah) |
SDK_GUIDE.pdf | Panduan penyiapan lingkungan SDK dan FAQ |
changelog | Perbaikan bug dan fitur baru per rilis |
File pustaka
Linux
| Jalur | File | Tipe |
|---|---|---|
lib/lib-boost-static/ | libonsclient4cpp.a | Pustaka statis dengan Boost yang ditautkan secara statis |
lib/lib-boost-share/ | libonsclient4cpp.so | Pustaka dinamis (memerlukan pustaka dinamis Boost) |
Windows
| Jalur | File | Deskripsi |
|---|---|---|
lib/64/ | SDK DLL | Pustaka dinamis 64-bit |
lib/ | vc_redist.x64 | Runtime Visual C++ 2015. Instal ini jika Visual Studio 2015 tidak tersedia |
Siapkan lingkungan Linux
Sejak 2 Desember 2016, SDK C++ Linux bergantung pada Boost 1.62.0 untuk penggunaan CPU yang lebih rendah dan throughput yang lebih baik.
SDK memerlukan pustaka Boost berikut:
| Pustaka | Diperlukan |
|---|---|
boost_system | Ya |
boost_thread | Ya |
boost_chrono | Ya |
boost_filesystem | Ya |
Pilih salah satu strategi penautan berikut berdasarkan kebutuhan proyek Anda.
Opsi 1: Penautan statis (direkomendasikan)
Gunakan opsi ini jika proyek Anda belum bergantung pada Boost. Pustaka statis di lib/lib-boost-static/libonsclient4cpp.a telah menggabungkan keempat pustaka Boost tersebut, sehingga tidak diperlukan instalasi Boost terpisah.
Bangun dengan Makefile yang disertakan
cd aliyun-mq-linux-cpp-sdk # Root dari SDK yang diekstrak
cd example # Edit file contoh untuk mengatur topik dan kunci akses Anda
make static=1Pembuatan sepenuhnya statis memerlukan libstdc++.a, libpthread.a, dan pustaka statis terkait lainnya. Secara default, libstdc++ tidak disertai pustaka statis di sebagian besar distribusi. Instal pustaka statis yang diperlukan melalui yum atau apt-get.
Pembuatan sepenuhnya statis dapat 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: tautkan SDK secara statis saja
Untuk menghindari peringatan ini, tautkan libonsclient4cpp secara statis sambil tetap menautkan pustaka sistem secara dinamis:
g++ -ggdb -Wall -O3 -I../include \
../example/ProducerExampleForEx.cpp \
-Wl,-static -lonsclient4cpp -L../lib/lib-boost-static/ \
-Wl,-Bdynamic -lpthread -ldl -lrt \
-o ../example/ProducerExampleForExJika Anda mengompilasi dengan GCC 5.x atau versi yang lebih baru, tambahkan flag -D_GLIBCXX_USE_CXX11_ABI=0 karena perubahan Dual ABI yang diperkenalkan di GCC 5.
Opsi 2: Penautan dinamis
Gunakan opsi ini jika proyek Anda sudah bergantung pada Boost atau jika Anda lebih memilih pustaka dinamis. Ini memerlukan instalasi lokal Boost 1.62.0.
Langkah 1: Instal Boost 1.62.0
Unduh Boost 1.62.0.
Ekstrak arsip 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 dinamis Boost berada dalam jalur pencarian linker: Jika tidak ada output yang muncul, tambahkan jalur pustaka Boost ke
/etc/ld.so.confdan jalankanldconfig.ldconfig -v | grep libboost
Langkah 2: Bangun aplikasi Anda
cd aliyun-mq-linux-cpp-sdk # Root dari SDK yang diekstrak
cd example # Edit file contoh untuk mengatur topik dan kunci akses Anda
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.outSiapkan lingkungan Windows
Visual Studio 2015
Buat proyek baru di Visual Studio 2015.
Buka Configuration Manager dan atur:
Active solution configuration ke release
Active solution platform ke x64
Konfigurasikan direktori output:
Buka Properties > Configuration Properties > General.
Atur Output Directory ke direktori pilihan Anda, misalnya
C:\myproject\output.Salin semua file dari direktori SDK
lib\64\ke direktori output tersebut.
Konfigurasikan jalur include:
Buka Properties > Configuration Properties > C/C++ > General.
Tambahkan direktori ke Additional Include Directories, misalnya
C:\myproject\include.Salin file header SDK dari
include\ke direktori tersebut.
Konfigurasikan jalur pustaka:
Buka Properties > Configuration Properties > Linker > General.
Tambahkan direktori output dari langkah 3 ke Additional Library Directories.
Tambahkan dependensi pustaka SDK:
Buka Properties > Configuration Properties > Linker > Input.
Tambahkan ONSClient4CPP.lib ke Additional Dependencies.
Tambahkan makro preprocessor:
Buka Properties > Configuration Properties > C/C++ > Preprocessor.
Tambahkan WIN32 ke Preprocessor Definitions.
Klik Build untuk mengompilasi. Sebelum menjalankan executable, salin SDK DLL ke direktori output atau ke direktori dalam PATH sistem.
Versi Visual Studio lainnya
Ikuti langkah-langkah Visual Studio 2015 di atas untuk mengonfigurasi proyek Anda.
Instal runtime Visual C++ 2015 (
vc_redist.x64) pada mesin target.
Untuk melewati konfigurasi manual, buka proyek demo yang telah dikonfigurasi sebelumnya di direktori SDK demo/ menggunakan Visual Studio 2015. Perbarui nilai topik dan kunci akses dalam kode contoh, lalu bangun dan jalankan.