本文以社区版Apache RocketMQ Client为例,提供操作示例帮助您从零开始搭建阿里云消息队列RocketMQ版收发消息的测试工程。Demo工程包含普通消息、顺序消息、事务消息的测试代码。

前提条件

  • 安装IDE。

    您可以使用IntelliJ IDEA或者Eclipse,本文以IntelliJ IDEA为例。

    https://www.jetbrains.com/idea/下载IntelliJ IDEA Ultimate版本,并参考IntelliJ IDEA说明进行安装。

  • 下载Demo工程。

    https://github.com/AliwareMQ/mq-demo下载Demo工程到本地,然后解压即可看到本地新增了mq-demo文件夹。

  • 下载安装JDK。

配置Demo工程

  1. 将Demo工程文件导入IntelliJ IDEA。
    1. 在IntelliJ IDEA界面,选择Import Project,选择mq-demo/rocketmq/java-rocketmq-demo文件夹。
    2. 选择Import类型为Maven
    3. 默认单击Next,直到导入完成。Demo工程需要加载依赖的JAR包,因此导入过程需要等待2-3分钟。
  2. 创建资源。

    您需要先到控制台创建所需资源,包括阿里云消息队列RocketMQ版的实例、Topic、Group ID(GID),以及鉴权需要的AccessKey(AK)。

    更多详细信息和操作指导,请参见创建资源

  3. 配置Demo。
    您需将在步骤2中创建好的资源信息配置到文件:MqConfig类。
    public static final String TOPIC = "刚才创建的Topic";
    public static final String GROUP_ID = "刚才创建的Group ID";
    public static final String ACCESS_KEY = "您的阿里云账号的AccessKeyId";
    public static final String SECRET_KEY = "您的阿里云账号AccessKeySecret";
    public static final String NAMESRV_ADDR = "您的阿里云RocketMQ实
    例的TCP接入点,在控制台实例详情页面的获取接入点信息区域获取";
    说明
    • 创建AccessKey(包括AccessKeyId和AccessKeySecret)的具体步骤,请参见创建AccessKey
    • 如果RAM子账号拥有该Topic的权限以及自己的AccessKey,那么也可以使用RAM用户的AccessKey。

以Main方式运行Demo

  1. 发送消息。
    • 发送普通消息:运行RocketMQProducer类。
    • 发送事务消息:运行RocketMQTransactionProducer类。

      LocalTransactionCheckerImpl类为本地事务Check接口类,用于校验事务。更多信息,请参见收发事务消息

    • 发送顺序消息:运行RocketMQOrderProducer类。

      注意创建的Topic应该为顺序消息的Topic。更多信息,请参见收发顺序消息

  2. 接收消息
    • 接收普通消息:运行RocketMQConsumer类。
    • 接收事务消息:运行RocketMQConsumer类。
    • 接收顺序消息:运行RocketMQOrderConsumer类。
    可以看到消息被接收打印的日志。因为有初始化,所以需等待几秒,在生产环境中不会经常初始化。
    消息队列RocketMQ版控制台进入Group详情,可以看到启动的消费端已经在线,并且订阅关系一致。

更多信息