本文以社区版Apache RocketMQ Client为例,提供操作示例帮助您从零开始搭建阿里云云消息队列 RocketMQ 版收发消息的测试工程。Demo工程包含普通消息、顺序消息、事务消息的测试代码。
前提条件
安装IDE。
您可以使用IntelliJ IDEA或者Eclipse,本文以IntelliJ IDEA为例。
在IntelliJ IDEA官网下载IntelliJ IDEA Ultimate版本,并参考IntelliJ IDEA说明进行安装。
下载Demo工程。
在消息队列RocketMQ版代码库下载Demo工程到本地,然后解压即可看到本地新增了mq-demo-master文件夹。
下载安装JDK。
配置Demo工程
将Demo工程文件导入IntelliJ IDEA。
在IntelliJ IDEA界面,选择Import Project,选择mq-demo-master/rocketmq/java-rocketmq-demo文件夹。
选择Import类型为Maven。
默认单击Next,直到导入完成。Demo工程需要加载依赖的JAR包,因此导入过程需要等待2-3分钟。
创建资源。
您需要先到控制台创建所需资源,包括阿里云云消息队列 RocketMQ 版的实例、Topic、Group ID(GID),以及鉴权需要的AccessKey(AK)。
更多详细信息和操作指导,请参见创建资源。
配置Demo。
您需将在步骤2中创建好的资源信息配置到文件:
MqConfig
类。public static final String TOPIC = "您已创建的Topic"; public static final String GROUP_ID = "您已创建的Group ID"; public static final String ORDER_TOPIC = "您已创建的用于收发顺序消息的Topic"; public static final String ORDER_GROUP_ID = "您已创建的用于收发顺序消息的Group ID"; public static final String ACCESS_KEY = "您的阿里云账号的AccessKey ID,获取方式,请参见创建AccessKey"; public static final String SECRET_KEY = "您的阿里云账号的AccessKey Secret,获取方式,请参见创建AccessKey"; public static final String TAG = "您自定义的消息Tag属性"; public static final String NAMESRV_ADDR = "您已创建的消息队列RocketMQ版实例的TCP接入点,可在消息队列RocketMQ版控制台实例详情页面的接入点区域查看";
说明创建AccessKey(包括AccessKeyId和AccessKeySecret)的具体步骤,请参见创建AccessKey。
如果RAM子账号拥有该Topic的权限以及自己的AccessKey,那么也可以使用RAM用户的AccessKey。
以Main方式运行Demo
发送消息。
接收消息。
接收普通消息:运行
RocketMQConsumer
类。接收事务消息:运行
RocketMQConsumer
类。接收顺序消息:运行
RocketMQOrderConsumer
类。
可以看到消息被接收打印的日志。因为有初始化,所以需等待几秒,在生产环境中不会经常初始化。
从云消息队列 RocketMQ 版控制台进入Group详情,可以看到启动的消费端已经在线,并且订阅关系一致。