本文介绍使用C++ SDK v2.0.0版本接入消息队列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 v2.0.0版本进行说明,若您需从当前使用的v1.x.x版本的SDK升级至v2.0.0,请参见环境准备(v1.x.x)完成升级。
- 代码里涉及到的Topic和Group ID,需要到控制台上创建。Message Tag可以完全由应用自定义,更多信息,请参见创建资源。
- 使用消息队列RocketMQ版服务的应用程序需要部署在阿里云ECS上。
v2.0.0版本的C++ SDK暂时仅支持Linux操作系统,系统版本包含CentOS 6(RHEL 6)和CentOS 7(RHEL 7)系列。C++ SDK的下载链接,请参见版本说明。
下载完成后选择对应操作系统内核的版本进行解压,会有如下目录结构,各目录的说明如下:
- demos/
包含了普通消息发送、Oneway消息发送、顺序消息发送、普通消息消费、顺序消息消费等例子,还包含了
CMakeList.txt
用于demos
的编译和管理。 - include/
包含您自己编写的程序需要的头文件。
- lib/
包含基于x86_64的动态库,分别为接口库(libonsclient4cpp.so)和内核库(librocketmq_client_core.so)。
- changelog
新版本发布解决的问题和引入的新特性列表。
Linux C++ SDK动态库方案
自2019年6月28日起,新版本的SDK将只提供动态库方案。消息队列RocketMQ版的库文件在lib/
目录下,需要业务方生成可执行文件时链接librocketmq_client_core.so
和libonsclient4cpp.so
。由于demos
引入了C++ 11的特性和使用CMake来管理,需要提前安装CMake 3.0以上版本和g++ 4.8及以上版本。
注意 由于GCC 5.x及以上版本引入了Dual ABI,编译链接时,请添加
-D_GLIBCXX_USE_CXX11_ABI=0
编译选项。
demos
的使用方法如下:
cd aliyun-mq-linux-cpp-sdk // 下载的SDK解压后的路径。
cd demos // 进入demos目录,修改demos文件,填入自己在消息队列RocketMQ版控制台创建的Topic和Key等相关的信息。
cmake . // 检测依赖和生成编译脚本。
make // 执行编译操作。
cd bin // 到生成的可执行文件目录下运行程序。