Todos os produtos
Search
Central de documentação

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

Última atualização: Jun 27, 2026

Este tópico descreve os preparativos, as instruções e as observações para usar o SDK C++ no envio e recebimento de mensagens com o ApsaraMQ for RocketMQ.

Importante
  • Recomendamos o uso dos SDKs mais recentes do RocketMQ 5.x. Eles são totalmente compatíveis com os brokers do ApsaraMQ for RocketMQ 5.x e oferecem mais funções e recursos aprimorados. Para obter mais informações, consulte Informações da versão do SDK C++.

  • A Alibaba Cloud mantém apenas os SDKs cliente do RocketMQ 4.x, 3.x e TCP. Recomendamos seu uso exclusivamente para cargas de trabalho existentes.

Antes de começar, observe os seguintes pontos:

  • Este guia aplica-se somente ao SDK C++ v1.x.x.

  • Crie previamente no console o Topic e o group ID usados no código. Você pode personalizar totalmente as tags de mensagem na aplicação. Para instruções sobre como criar esses recursos, consulte Criar recursos.

  • Implante as aplicações que usam o ApsaraMQ for RocketMQ em instâncias ECS.

Baixe o SDK

O SDK C++ oferece uma API idêntica para Windows e Linux. As distribuições Linux suportadas incluem CentOS 6 (RHEL 6) e CentOS 7 (RHEL 7). Para baixar o SDK C++, consulte Notas de versão do SDK cliente TCP para C++.

Após baixar e extrair o pacote, a seguinte estrutura de diretórios estará disponível:

  • demo/ (Somente para Windows)

    Projeto de demonstração C++ pré-compilado para Windows.

  • example/

    Exemplos de envio de mensagens normais, unidirecionais e ordenadas, além de consumo de mensagens normais e ordenadas. No Linux, este diretório também contém um Makefile para compilar e gerenciar os arquivos de example.

  • include/

    Arquivos de cabeçalho necessários para a aplicação.

  • lib/

    • Subdiretórios do SDK para Linux contendo a biblioteca estática e a biblioteca dinâmica de 64 bits.

      lib-boost-share/
        libonsclient4cpp.so
      lib-boost-static/
        libonsclient4cpp.a                        
    • Subdiretório do SDK para Windows contendo a DLL de 64 bits. Caso não tenha o Visual Studio 2015 instalado, instale o vc_redist.x64, que corresponde ao runtime do Visual C++ 2015.

      64/
      vc_redist.x64                        
  • SDK_GUIDE.pdf

    Documentação e perguntas frequentes sobre a configuração do ambiente do SDK.

  • changelog

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

SDK C++ para Linux

Desde 2 de dezembro de 2016, o SDK C++ para Linux depende da biblioteca Boost de alto desempenho (versão 1.62.0) para reduzir o uso de CPU e melhorar a eficiência. Ele depende principalmente de quatro bibliotecas: boost_system, boost_thread, boost_chrono e boost_filesystem. Estão disponíveis soluções de vinculação estática e dinâmica.

Vinculação estática

Os arquivos de biblioteca do ApsaraMQ for RocketMQ estão no diretório lib/lib-boost-static, onde a biblioteca Boost é vinculada estaticamente ao libonsclient4cpp.a. Se sua aplicação não depender da biblioteca Boost, use diretamente esta solução de biblioteca estática. Como a biblioteca Boost já está vinculada ao libonsclient4cpp.a, basta vincular o libonsclient4cpp.a durante a compilação. Nenhuma outra operação é necessária. O uso é descrito a seguir.

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            
Importante

Para uma vinculação totalmente estática, certifique-se de que bibliotecas estáticas relacionadas, como libstdc++ e pthread, estejam instaladas na máquina. A instalação padrão da libstdc++ não inclui a biblioteca estática. Use yum ou apt-get para instalar as bibliotecas estáticas necessárias.

O uso desse método pode gerar o seguinte aviso:

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

Como prática recomendada, evite a vinculação totalmente estática. Em vez disso, vincule estaticamente apenas o onsclient4cpp e vincule dinamicamente as outras bibliotecas. Utilize o seguinte comando:

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        

Além disso, como o GCC 5.x introduz uma Dual ABI, adicione a opção -D_GLIBCXX_USE_CXX11_ABI=0 ao compilar e vincular.

Vinculação dinâmica

Os arquivos de biblioteca do ApsaraMQ for RocketMQ estão no diretório lib/lib-boost-share. Vincule as bibliotecas dinâmicas do Boost e o libonsclient4cpp.so ao gerar o arquivo executável. Se sua aplicação já depender do Boost e você precisar usar a solução de vinculação dinâmica, execute as etapas a seguir:

  1. Baixe o Boost versão 1.62.0.

    boost 1.62.0

  2. Extraia o pacote do Boost 1.62.0.

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

  3. Instale o Boost 1.62.0.

    1. Acesse o diretório onde você extraiu o 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. Qualquer saída deste comando confirma que as bibliotecas dinâmicas do Boost estão no caminho de busca de bibliotecas dinâmicas.

  5. Ao gerar o arquivo executável, vincule as bibliotecas dinâmicas do Boost e a biblioteca dinâmica do ApsaraMQ for RocketMQ usando os seguintes comandos:

    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.

SDK C++ para Windows

Usar o SDK C++ em um ambiente Visual Studio 2015

  1. Crie um novo projeto no Visual Studio 2015. Na caixa de diálogo New Project, expanda Installed > Templates > Visual C++, selecione Win32 e escolha Win32 Console Application. Após definir um nome para o projeto, clique em OK. Na página de visão geral do Win32 Application Wizard, confirme se o tipo de projeto é Console application e clique em Next >. Na página Application Settings, defina Application type como Console application, marque a caixa de seleção Empty project e clique em Finish.

  2. Clique com o botão direito do mouse no projeto no Solution Explorer e selecione Properties > Configuration Manager. Defina Active solution configuration como release e Active solution platform como x64.

  3. Clique com o botão direito do mouse no projeto, selecione Properties > Configuration Properties > General e 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. Clique com o botão direito do mouse no projeto, selecione Properties > Configuration Properties > General, confirme se o Output Directory é $(SolutionDir)$(Platform)\$(Configuration)\ (este caminho é gerado automaticamente após a compilação) e defina Platform Toolset como Visual Studio 2015 - Windows XP (v140_xp). Copie os arquivos ONSClient4CPP.dll, ONSClient4CPP.lib e ONSClient4CPP.pdb do diretório lib do SDK baixado para este diretório de saída.

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

  5. Clique com o botão direito do mouse no projeto e selecione Properties > Configuration Properties > Linker > General > Additional Library Directories: /A. Adicione o caminho para o diretório lib do SDK, como E:\aliyun-mq-windows-cpp-sdk\lib\64, que contém os arquivos DLL relevantes. Se você usar o Visual Studio 2015 no Windows 7, também deverá adicionar o caminho da biblioteca ucrt, como C:\Program Files (x86)\Windows Kits\10\Lib\10.0.10150.0\ucrt\x64.

  6. Acesse Properties > Configuration Properties > Linker > Input. Adicione ONSClient4CPP.lib em Additional Dependencies.

  7. Acesse Properties > Configuration Properties > C/C++ > Preprocessor. Adicione a macro WIN32 em Preprocessor Definitions.

Usar o SDK C++ em um ambiente diferente do Visual Studio 2015

  1. Primeiro, configure seu projeto seguindo as etapas para o ambiente Visual Studio 2015.

  2. Instale o vc_redist.x64, o runtime do Visual C++ 2015.

    Importante

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

    No Solution Explorer, clique com o botão direito do mouse no projeto demo e abra suas propriedades. Defina Configuration como Release e Platform como x64. Expanda Configuration Properties > C/C++ > General. Edite o campo Additional Include Directories e adicione dois caminhos: ../../include e C:\Program Files (x86)\Windows Kits\10\Include\10.0.10150.0\ucrt. Substitua o número da versão, como 10.0.10150.0, pela versão do Windows Kits instalada na sua máquina.

    Seu ambiente de compilação está configurado. Clique em Build para compilar o programa executável. Para executar o programa, copie o arquivo DLL para o mesmo diretório do executável ou para um diretório do sistema.

Mais informações

Código de exemplo