Bu konu, ApsaraMQ for RocketMQ üzerinde mesaj göndermek ve almak için C++ SDK kullanımıyla ilgili hazırlıkları, talimatları ve notları kapsar.
En son RocketMQ 5.x SDK'larını kullanmanızı öneririz. Bu SDK'lar, ApsaraMQ for RocketMQ 5.x broker'larıyla tam uyumludur ve daha fazla işlev ile geliştirilmiş özellikler sunar. Daha fazla bilgi için bkz. C++ SDK sürüm bilgileri.
Alibaba Cloud yalnızca RocketMQ 4.x, 3.x ve TCP istemci SDK'larını destekler. Bunları yalnızca mevcut iş süreçleri için kullanmanızı öneririz.
Başlamadan önce aşağıdaki hususları dikkate alın:
Bu kılavuz yalnızca C++ SDK v1.x.x sürümü için geçerlidir.
Kodunuzda kullandığınız konu ve grup kimliğini konsolda oluşturmanız gerekir. Mesaj etiketlerini uygulamanızda tamamen özelleştirebilirsiniz. Bu kaynakların nasıl oluşturulacağına ilişkin talimatlar için bkz. Kaynak oluşturma.
ApsaraMQ for RocketMQ kullanan uygulamaları ECS örneklerine dağıtmanız gerekir.
SDK'yı indirin
C++ SDK, Windows ve Linux için aynı API'yi sunar. Desteklenen Linux dağıtımları arasında CentOS 6 (RHEL 6) ve CentOS 7 (RHEL 7) yer alır. C++ SDK'yı indirmek için bkz. C++ için TCP istemci SDK'sı sürüm notları.
Paketi indirip çıkardıktan sonra aşağıdaki dizin yapısını görürsünüz:
-
demo/ (Yalnızca Windows için)
Önceden derlenmiş bir Windows C++ demo projesi.
-
example/
Normal mesajlar, tek yönlü mesajlar ve sıralı mesajlar gönderme ile normal ve sıralı mesajları tüketme örnekleri. Linux'ta bu dizin,
Makefiledosyasını da içerir; bu dosyaexampledosyalarını derlemek ve yönetmek için kullanılır. -
include/
Uygulamanız için gereken başlık dosyaları.
-
lib/
-
Linux SDK alt dizinleri 64 bit statik kitaplığı ve dinamik kitaplığı içerir.
lib-boost-share/ libonsclient4cpp.so lib-boost-static/ libonsclient4cpp.a -
Windows SDK alt dizini 64 bit DLL dosyasını içerir. Visual Studio 2015 yüklü değilse
vc_redist.x64yüklemeniz gerekir. Bu, Visual C++ 2015 çalışma zamanıdır.64/ vc_redist.x64
-
-
SDK_GUIDE.pdf
SDK ortamını kurmaya yönelik belgeler ve SSS.
-
changelog
Yeni sürümlerdeki hata düzeltmelerinin ve yeni özelliklerin listesi.
Linux C++ SDK
2 Aralık 2016 tarihinden itibaren Linux C++ SDK, CPU kullanımını azaltmak ve verimliliği artırmak amacıyla yüksek performanslı Boost kitaplığına (sürüm 1.62.0) bağımlı hale gelmiştir. Temel olarak dört kitaplığa bağımlıdır: boost_system, boost_thread, boost_chrono ve boost_filesystem. Hem statik hem de dinamik bağlantı çözümleri mevcuttur.
Statik bağlantı
ApsaraMQ for RocketMQ kitaplık dosyaları lib/lib-boost-static dizininde bulunur; burada Boost kitaplığı libonsclient4cpp.a ile statik olarak bağlanır. Uygulamanızın Boost kitaplığına bağımlılığı yoksa bu statik kitaplık çözümünü doğrudan kullanabilirsiniz. Bu çözümde Boost kitaplığı zaten libonsclient4cpp.a ile bağlı olduğundan derleme sırasında yalnızca libonsclient4cpp.a ile bağlantı kurmanız yeterlidir. Başka bir işlem gerekmez. Kullanım şekli aşağıdaki gibidir.
cd aliyun-mq-linux-cpp-sdk // The directory where you extracted the SDK.
cd example // Enter the example directory and modify the example file with your topic, key, and other information.
make static=1
Tam statik bağlantı için makinenizde libstdc++ ve pthread gibi ilgili statik kitaplıkların yüklü olduğundan emin olun. Varsayılan libstdc++ kurulumu statik kitaplığı içermez. Gerekli statik kitaplıkları yüklemek için yum veya apt-get kullanmanız gerekir.
Bu yöntemin kullanılması aşağıdaki uyarıyı üretebilir:
warning: Using 'gethostbyaddr' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
En iyi uygulama olarak, tam statik bağlantıdan kaçınmanızı öneririz. Bunun yerine yalnızca onsclient4cpp için statik bağlantı kullanın ve diğer kitaplıklar için dinamik bağlantıyı tercih edin. Aşağıdaki komutu kullanın:
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
Ayrıca, GCC 5.x sürümü bir Çift ABI sunduğundan derleme ve bağlantı sırasında -D_GLIBCXX_USE_CXX11_ABI=0 seçeneğini ekleyin.
Dinamik bağlantı
ApsaraMQ for RocketMQ kitaplık dosyaları lib/lib-boost-share dizinindedir. Çalıştırılabilir dosyanızı oluştururken Boost dinamik kitaplıklarını ve libonsclient4cpp.so ile bağlantı kurmanız gerekir. Uygulamanız zaten Boost'a bağımlıysa ve dinamik bağlantı çözümünü kullanmanız gerekiyorsa aşağıdaki adımları uygulayın:
-
Boost sürüm 1.62.0'ı indirin.
-
Boost 1.62.0 paketini çıkarın.
tar --bzip2 -xf /path/to/boost_1_62_0.tar.bz2 -
Boost 1.62.0'ı yükleyin.
Boost 1.62.0'ı çıkardığınız dizine gidin:
cd path/to/boost_1_62_0Boost'u yapılandırın:
./bootstrap.shBoost'u derleyin:
./b2 link=shared runtime-link=sharedBoost'u yükleyin:
./b2 install
ldconfig -v|grep libboostkomutunu çalıştırın. Bu komuttan gelen herhangi bir çıktı, Boost dinamik kitaplıklarının dinamik kitaplık arama yolunda bulunduğunu doğrular.-
Çalıştırılabilir dosyayı oluştururken aşağıdaki komutları kullanarak Boost dinamik kitaplıklarını ve ApsaraMQ for RocketMQ dinamik kitaplığını bağlayın:
cd aliyun-mq-linux-cpp-sdk // The directory where you extracted the SDK. cd example // Enter the example directory and modify the example file with your topic, key, and other information from the ApsaraMQ for RocketMQ console. 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/" // Add the search path for dynamic loading. ./a.out // Run the program.
Windows C++ SDK
Visual Studio 2015 ortamında C++ SDK kullanma
Visual Studio 2015'te yeni bir proje oluşturun. New Project iletişim kutusunda Installed > Templates > Visual C++ seçeneklerini genişletin, Win32 öğesini seçin ve ardından Win32 Console Application seçeneğini belirleyin. Bir proje adı ayarladıktan sonra OK tıklayın. Win32 Application Wizard genel bakış sayfasında proje türünün Console application olduğunu onaylayın ve Next > tıklayın. Application Settings sayfasında Application type değerini Console application olarak ayarlayın, Empty project onay kutusunu işaretleyin ve ardından Finish tıklayın.
Solution Explorer'da projenize sağ tıklayın ve Properties > Configuration Manager seçin. Active solution configuration değerini release ve Active solution platform değerini x64 olarak ayarlayın.
Projeye sağ tıklayın, Properties > Configuration Properties > General seçin ve Output Directory değerini /A olarak ayarlayın. Active solution platform ayarına göre 64 bit lib dizinindeki tüm dosyaları /A çıkış dizinine kopyalayın. Projeye sağ tıklayın, Properties > Configuration Properties > General seçin ve Output Directory değerinin
$(SolutionDir)$(Platform)\$(Configuration)\(bu yol derlemeden sonra otomatik olarak oluşturulur) olduğunu onaylayın. Platform Toolset değerini Visual Studio 2015 - Windows XP (v140_xp) olarak ayarlayın. İndirilen SDK'nın lib dizinindekiONSClient4CPP.dll,ONSClient4CPP.libveONSClient4CPP.pdbdosyalarını bu çıkış dizinine kopyalayın.Projeye sağ tıklayın ve Properties > Configuration Properties > C/C++-General > Additional Include Directories: /B seçin.
includedizinindeki başlık dosyalarını include dizinine kopyalayın: /B.Projeye sağ tıklayın ve Properties > Configuration Properties > Linker > General > Additional Library Directories: /A seçin. İlgili DLL dosyalarını içeren SDK'nın
libdizininin yolunu ekleyin; örneğinE:\aliyun-mq-windows-cpp-sdk\lib\64. Windows 7'de Visual Studio 2015 kullanıyorsanızucrtkitaplık yolunu da eklemeniz gerekir; örneğinC:\Program Files (x86)\Windows Kits\10\Lib\10.0.10150.0\ucrt\x64.Properties > Configuration Properties > Linker > Input konumuna gidin. Additional Dependencies listesine ONSClient4CPP.lib ekleyin.
Properties > Configuration Properties > C/C++ > Preprocessor konumuna gidin. Preprocessor Definitions listesine WIN32 makrosunu ekleyin.
Visual Studio 2015 dışındaki bir ortamda C++ SDK kullanma
Önce Visual Studio 2015 ortamı için verilen adımları izleyerek projenizi yapılandırın.
-
Visual C++ 2015 çalışma zamanı olan vc_redist.x64 yükleyin.
ÖnemliManuel yapılandırmadan kaçınmak için önceden yapılandırılmış SDK demosunu kullanabilirsiniz. SDK'yı indirip çıkardıktan sonra
demodizinine gidin ve projeyi Visual Studio 2015'te açın.Solution Explorer'da demo projesine sağ tıklayın ve özelliklerini açın. Configuration değerini Release ve Platform değerini x64 olarak ayarlayın. Configuration Properties > C/C++ > General seçeneklerini genişletin. Additional Include Directories alanını düzenleyin ve şu iki yolu ekleyin:
../../includeveC:\Program Files (x86)\Windows Kits\10\Include\10.0.10150.0\ucrt. 10.0.10150.0 gibi sürüm numarasını makinenizde yüklü olan Windows Kits sürümüyle değiştirin.Derleme ortamınız artık yapılandırıldı. Yürütülebilir programı derlemek için Build tıklayın. Programı çalıştırmak için DLL dosyasını yürütülebilir dosya ile aynı dizine veya bir sistem dizinine kopyalayın.