日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

環境準備(v1.x.x)

本文為您介紹使用C++ SDK接入云消息隊列 RocketMQ 版所需完成的準備工作、使用說明以及注意事項,以便后續使用C++ SDK收發消息。

重要
  • 推薦您使用最新的RocketMQ 5.x系列SDK,5.x系列SDK作為主力研發版本,和云消息隊列 RocketMQ 版5.x服務端完全兼容,提供了更全面的功能并支持更多增強特性。更多信息,請參見5.x系列SDK
  • RocketMQ 4.x/3.x系列SDK和ONS系列SDK后續僅做功能維護,建議僅存量業務使用。

使用前,請注意以下幾點:

  • 本文僅針對C++ SDK v1.x.x版本進行說明。

  • 代碼里涉及到的Topic和Group ID,需要到控制臺上創建。Message Tag可以完全由應用自定義,具體創建過程請參見創建資源。

  • 使用云消息隊列 RocketMQ 版服務的應用程序需要部署在阿里云ECS上。

SDK下載

C++ SDK支持Windows和Linux兩個操作系統,而且接口完全一致。Linux下支持CentOS 6(RHEL 6)和CentOS 7(RHEL 7)系列。C++ SDK的下載鏈接,請參見版本說明。

下載完成后進行解壓,會有如下目錄結構,各目錄的說明如下:

  • demo/(只針對Windows系統)

    包含了一個創建好的Windows C++ 演示Demo。

  • example/

    包含了普通消息發送、Oneway消息發送、順序消息發送、普通消息消費、順序消息消費等例子,Linux下還包含了Makefile用于example的編譯和管理。

  • include/

    包含了用戶自己編寫的程序需要的頭文件。

  • lib/

    • Linux SDK子目錄如下,分別是64位的靜態庫和動態庫。

      lib-boost-share/
        libonsclient4cpp.so
      lib-boost-static/
        libonsclient4cpp.a                        
    • Windows SDK子目錄如下,是64位系統下SDK的dll庫。如果沒有安裝Visual Studio 2015環境,需要拷貝安裝vc_redist.x64。 這是Visual C++ 2015的運行時環境。

      64/
      vc_redist.x64                        
  • SDK_GUIDE.pdf

    SDK環境準備文檔和FAQ。

  • changelog

    新版本發布解決的問題和引入的新特性列表。

Linux C++ SDK

自2016年12月02日開始,Linux CPP版本依賴了高性能boost庫(1.62.0版本),不僅降低了CPU資源占用率,而且提高了運行效率。目前主要依賴了boost_system、boost_threadboost_chrono、boost_filesystem四個庫,有靜態庫和動態庫兩種解決方案。

靜態解決方案

云消息隊列 RocketMQ 版的庫文件在lib/lib-boost-static目錄下,boost庫靜態鏈接到libonsclient4cpp.a中。對于沒有依賴boost庫的業務方,可以直接選用靜態庫方案。靜態庫方案中,相應的boost庫已經鏈接到libonsclient4cpp.a,編譯時只需要鏈接libonsclient4cpp.a即可,無需執行其他操作。使用方式如下。

cd aliyun-mq-linux-cpp-sdk  //下載的SDK解壓后的路徑
cd example                  //進入example目錄,修改example文件,填入您創建的Topic和Key等相關的信息
make static=1            
重要

完全的靜態鏈接請確保機器上安裝了libstdc++、pthread等相關的靜態庫。默認安裝的libstdc++ 是沒有安裝靜態庫的,所以需要通過yum或者apt-get來安裝相關的靜態庫。

此外使用如上方式會出現一些警告信息如下。

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

建議最佳的方式,不要使用完全的靜態鏈接,而是只靜態鏈接onsclient4cpp,其他庫動態鏈接即可。使用方式如下。

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        

此外,由于GCC 5.x引入Dual ABI,編譯鏈接時,請添加-D_GLIBCXX_USE_CXX11_ABI=0編譯選項。

動態解決方案

云消息隊列 RocketMQ 版的庫文件在lib/lib-boost-share目錄下,需要業務方生成可執行文件時鏈接boost動態庫和libonsclient4cpp.so。對于業務方已經依賴了boost庫,需要選擇動態庫方案的情況,對boost庫的依賴需要做如下工作:

  1. 下載boost 1.62.0版本。

    boost 1.62.0

  2. 解壓boost 1.62.0。

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

  3. 安裝boost 1.62.0版本:

    1. 進入boost 1.62.0解壓后的路徑:cd path/to/boost_1_62_0

    2. 配置boost:./bootstrap.sh

    3. 編譯boost: ./b2 link=shared runtime-link=shared

    4. 安裝boost: ./b2 install

  4. 執行ldconfig -v|grep libboost。如果有相關的輸出,則表明boost動態庫在動態庫搜索路徑中。

  5. 生成可執行文件時,需要鏈接boost動態庫和云消息隊列 RocketMQ 版的動態庫。方法如下。

    cd aliyun-mq-linux-cpp-sdk  //下載的SDK解壓后的路徑
    cd example                  //進入example目錄,修改example文件,填入自己在消息隊列RocketMQ版控制臺創建的Topic和Key等相關的信息
    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  //運行程序

Windows C++ SDK

Visual Studio 2015環境下使用C++ SDK

  1. 使用Visual Studio 2015創建自己的項目。createprojectnextfinish

  2. 右鍵單擊項目,選擇屬性 > 配置管理器,設置活動解決方案配置為release,設置活動解決方案平臺為x64。x64CM

  3. 右鍵單擊項目,依次選擇屬性 > 配置屬性 > 常規 > 輸出目錄/A。按照活動解決方案平臺的設置,拷貝64位lib目錄下的所有文件到輸出目錄/A。path

  4. 右鍵單擊項目,依次選擇屬性 > 配置屬性 > C/C++-常規 > 附加包含目錄/B。 拷貝include目錄下的頭文件到包含目錄:/B。otherdirectoryadditional

  5. 右鍵單擊項目,依次選擇屬性 > 配置屬性 > 鏈接 > 常規 > 附加庫目錄/AadditionalA

  6. 右鍵單擊項目,依次選擇屬性 > 配置屬性 > 鏈接 > 輸入 > 附加依賴項ONSClient4CPP.lib。ONSClient4CPP.lib

  7. 右鍵單擊項目,依次選擇屬性 > 配置屬性 > C/C++-常規 > 預處理器定義:添加WIN32宏。WIN32

Visual Studio非2015環境下使用C++ SDK

  1. 首先需要按照Visual Studio 2015的環境來配置,配置過程同Visual Studio 2015環境下使用C++ SDK。

  2. 安裝vc_redist.x64。這是Visual C++ 2015的運行時環境。

    重要

    如果不想進行繁瑣的設置,您也可以使用設置好的SDK Demo,下載SDK后進行解壓,然后進入demo目錄,使用Visual Studio 2015打開工程。

    示例如下:

    demopropertiessetfilepath

    到此為止就設置好編譯環境了。單擊Build,即可編譯出可執行的程序,然后拷貝dll到可執行程序的目錄下即可運行,或者拷貝dll到系統目錄下。

更多信息

示例代碼