Todos os produtos
Search
Central de documentação

ApsaraMQ for RocketMQ:Preparar o ambiente (v1.x.x)

Última atualização: Aug 04, 2026

Este tópico descreve como preparar o ambiente para usar o C++ SDK v1.x.x na conexão com o Message Queue for Apache RocketMQ. Assim, você pode utilizar o SDK para enviar e receber mensagens.

Antes de começar:

  • Este tópico aplica-se apenas ao C++ SDK v1.x.x.

  • No console, crie os tópicos e group IDs que seu código utilizará. Você pode personalizar tags de mensagem na aplicação. Para mais informações sobre a criação de recursos, consulte Create resources.

  • Implante as aplicações que utilizam o Message Queue for Apache RocketMQ em instâncias ECS.

Baixe o Tablestore SDK for C++

O C++ SDK oferece suporte aos sistemas operacionais Windows e Linux com interfaces idênticas. No Linux, há suporte para as séries CentOS 6 (RHEL 6) e CentOS 7 (RHEL 7). Para obter mais informações sobre como baixar o C++ SDK, consulte Release notes for the TCP client SDK for C++.

Após concluir o download, descompacte o pacote. A estrutura de diretórios é a seguinte:

  • demo/ (apenas para Windows)

    Contém um exemplo de C++ para Windows pré-criado.

  • example/

    Os exemplos incluem envio de mensagens normais, envio unidirecional, envio ordenado, consumo normal e consumo ordenado. O Linux também inclui um Makefile para compilar e gerenciar o diretório example.

  • include/

    Este diretório contém os arquivos de cabeçalho necessários para seus programas.

  • lib/

    • Os subdiretórios abaixo do SDK para Linux contêm as bibliotecas estáticas e dinâmicas de 64 bits.

      lib-boost-share/
        libonsclient4cpp.so
      lib-boost-static/
        libonsclient4cpp.a                        
    • O subdiretório do SDK para Windows apresentado a seguir contém a biblioteca DLL do SDK para sistemas de 64 bits. Caso o ambiente Visual Studio 2015 não esteja instalado, copie o arquivo de instalação vc_redist.x64. Este é o ambiente de tempo de execução do Visual C++ 2015.

      64/
      vc_redist.x64                        
  • SDK_GUIDE.pdf

    Contém a documentação e as perguntas frequentes (FAQ) sobre a preparação do ambiente do SDK.

  • changelog

    Lista correções de bugs e novos recursos das versões recentes.

C++ SDK para Linux

Desde 2 de dezembro de 2016, a versão CPP para Linux depende da biblioteca boost de alto desempenho (versão 1.62.0), o que reduz a utilização de recursos de CPU e melhora a eficiência operacional. Atualmente, ela depende principalmente de quatro bibliotecas: boost_system, boost_thread, boost_chrono e boost_filesystem. Existem duas soluções: biblioteca estática e biblioteca dinâmica.

Solução estática

O arquivo de biblioteca do ApsaraMQ for RocketMQ encontra-se no diretório lib/lib-boost-static. A biblioteca boost está vinculada estaticamente ao arquivo libonsclient4cpp.a. Se sua aplicação não depender da biblioteca boost, selecione diretamente a solução de biblioteca estática. Nessa modalidade, a biblioteca boost correspondente já está vinculada ao libonsclient4cpp.a. Basta vincular o libonsclient4cpp.a durante a compilação, sem necessidade de outras operações. O código a seguir mostra um exemplo de configuração dos campos:

cd aliyun-mq-linux-cpp-sdk // The path where the downloaded SDK is decompressed.
cd example // Go to the example directory, modify the example file, and enter the information about the topic and key that you created.
make static=1            
Importante

Para vínculos totalmente estáticos, certifique-se de que libstdc++, pthread e outras bibliotecas estáticas relacionadas estejam instaladas na máquina. Por padrão, a libstdc++ não vem com bibliotecas estáticas instaladas; portanto, instale-as via yum ou apt-get.

Além disso, algumas mensagens de aviso podem aparecer conforme mostrado abaixo ao usar o método acima.

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

Recomenda-se evitar vínculos completamente estáticos. Em vez disso, vincule estaticamente apenas o onsclient4cpp e utilize vínculos dinâmicos para as demais bibliotecas. O código a seguir exemplifica essa configuração:

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        

Adicionalmente, como o GCC 5.x introduziu o Dual ABI, adicione a opção de compilador -D_GLIBCXX_USE_CXX11_ABI=0 durante a compilação e vinculação.

Soluções dinâmicas

O arquivo de biblioteca do ApsaraMQ for RocketMQ está no diretório lib/lib-boost-share. Ao gerar o arquivo executável, vincule a biblioteca dinâmica boost e o libonsclient4cpp.so. Caso sua aplicação já dependa da biblioteca boost e você opte pela solução dinâmica, execute as etapas abaixo para configurar essa dependência:

  1. Baixe o Boost 1.62.0.

    boost 1.62.0

  2. Descompacte o boost 1.62.0.

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

  3. Instale o boost versão 1.62.0:

    1. Acesse o caminho após a descompactação do boost 1.62.0: cd path/to/boost_1_62_0

    2. Configure o boost: ./bootstrap.sh

    3. Compile o boost: ./b2 link=shared runtime-link=shared

    4. Instale o boost: ./b2 install

  4. Execute ldconfig -v|grep libboost. Se houver saída relevante, isso indica que a biblioteca dinâmica boost está no caminho de busca de bibliotecas dinâmicas.

  5. Ao gerar um arquivo executável, vincule a biblioteca dinâmica boost e a biblioteca dinâmica do ApsaraMQ for RocketMQ. Utilize o método abaixo.

    cd aliyun-mq-linux-cpp-sdk // The path where the downloaded SDK is decompressed.
    cd example // Go to the example directory, modify the example file, and enter the topics and keys that you created in the Message Queue for Apache 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 dynamically loaded search paths.
    ./a.out  //Run the program.

C++ SDK para Windows

Usar o C++ SDK no Visual Studio 2015

  1. Crie um projeto no Visual Studio 2015.

    Clique em New Project. Na caixa de diálogo New Project, selecione Installed > Templates > Visual C++ > Win32. Em seguida, escolha Win32 Console Application e clique em OK para criar o projeto.

    Na caixa de diálogo Win32 Application Wizard, confirme se o tipo de projeto é Console application e clique em Next para avançar à próxima etapa de configuração.

    Defina Application type como Console application, marque Empty project e clique em Finish para criar um projeto vazio.

  2. Clique com o botão direito no projeto e selecione Property > Configuration Manager. Defina Active solution configuration como release e Active solution platform como x64.

  3. Clique com o botão direito no projeto e acesse Property > Configuration Properties > General. Defina Output Directory como /A. Com base na configuração de Active solution platform, copie todos os arquivos do diretório lib de 64 bits para o diretório de saída /A.

    Defina Platform Toolset como Visual Studio 2015 - Windows XP (v140_xp). O valor de Output Directory é $(SolutionDir)$(Platform)\$(Configuration)\, gerado automaticamente após o build. Copie ONSClient4CPP.dll, ONSClient4CPP.lib e ONSClient4CPP.pdb do diretório lib do SDK para este diretório de saída de build.

  4. Clique com o botão direito no projeto e acesse Property > Configuration Properties > C/C++ > General. Defina Additional Include Directories como /B. Copie os arquivos de cabeçalho do diretório include para /B.

    Adicione o caminho do diretório include do SDK (por exemplo, E:\aliyun-mq-windows-cpp-sdk\include). Alternativamente, especifique outro diretório e copie os arquivos include do SDK para ele. Se estiver usando VS2015 no Windows 7, adicione também o caminho ucrt do Windows Kits, por exemplo, C:\Program Files (x86)\Windows Kits\10\Include\10.0.10150.0\ucrt.

  5. Clique com o botão direito no projeto e acesse Property > Configuration Properties > Linker > General. Defina Additional Library Directories como /A.

    Adicione os seguintes caminhos:

    • O caminho do diretório lib\64 do SDK (contém os arquivos DLL relevantes).

    • Se usar VS2015 no Windows 7, adicione também o caminho ucrt\x64 do Windows Kits, por exemplo, C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10150.0\ucrt\x64.

  6. Clique com o botão direito no projeto e acesse Property > Configuration Properties > Linker > Input. Defina Additional Dependencies como ONSClient4CPP.lib.

  7. Clique com o botão direito no projeto e acesse Property > Configuration Properties > C/C++ > Preprocessor. Adicione a macro WIN32 em Preprocessor Definitions.

    Defina Preprocessor Definitions como NDEBUG;WIN32_CONSOLE;%(PreprocessorDefinitions).

Usar o C++ SDK em ambientes diferentes do Visual Studio 2015

  1. Configure seu ambiente seguindo as etapas da seção "Usar o C++ SDK no Visual Studio 2015".

  2. Instale o vc_redist.x64, o tempo de execução do Visual C++ 2015.

    Importante

    Para evitar configurações complexas, utilize o demo pré-configurado do SDK. Após baixar e extrair o SDK, acesse o diretório demo e abra o projeto no Visual Studio 2015.

    1. No Solution Explorer, clique com o botão direito no projeto demo e selecione Properties para abrir a página de propriedades.

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

    3. Edite Additional Include Directories e adicione os caminhos ../../include e C:\Program Files (x86)\Windows Kits\10\Include\10.0.10150.0\ucrt.

    4. Substitua o número da versão no caminho ucrt (como 10.0.10150.0) pela versão do Windows SDK instalada na sua máquina.

    Clique em Build para compilar o projeto. Para executar o arquivo gerado, copie as DLLs necessárias para o diretório do executável ou para um diretório do sistema.

Tópicos relacionados