云消息队列 RocketMQ 版支持集成Spring框架的Java SDK收发消息,本文为您介绍如何使用云消息队列 RocketMQ 版提供的Spring框架的Demo工程。

背景信息

云消息队列 RocketMQ 版支持以下消息类型的生产者和消费者与Spring集成:
  • 普通消息的生产者和消费者
  • 事务消息的生产者和消费者
  • 顺序消息的生产者和消费者
说明 云消息队列 RocketMQ 版暂不支持Spring框架下定时消息和延时消息的收发。

环境准备

步骤一:下载Demo工程

云消息队列 RocketMQ 版提供SpringBoot和Spring两种方式的Demo,本文以SpringBoot的工程为例为您介绍如何使用SDK收发消息,Spring方式的Demo工程使用步骤和SpringBoot类似。

步骤二:创建资源

您需要先到云消息队列 RocketMQ 版控制台创建所需资源。

  • 创建云消息队列 RocketMQ 版实例
  • 创建Topic

    创建Topic时,Topic的消息类型必须和发送的消息类型一致,不能混用。例如您发送普通消息,则需要创建普通消息类型的Topic,发送顺序消息时,则创建顺序消息类型的Topic。

  • 创建Group ID

    Group的协议类型需要和SDK的协议类型一致,云消息队列 RocketMQ 版提供的Spring框架的Java SDK为TCP协议,因此您在创建Group ID时需要选择TCP协议。

  • 获取实例的TCP协议接入点

    云消息队列 RocketMQ 版提供的Spring框架的Java SDK为TCP协议,因此您需要获取TCP协议的接入点。

  • 创建AccessKey

步骤三:Demo工程配置

在IDEA中创建Java工程并导入步骤一:下载Demo工程中获取的Demo文件,然后配置以下内容。

修改pom.xml文件

pom.xml文件中的依赖如下,建议您将ons-client修改至最新版本。具体版本信息,请参见版本说明

<dependencies>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>com.aliyun.openservices</groupId>
            <artifactId>ons-client</artifactId>
            <version>1.8.8.8.Final</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

参数配置

根据步骤二:创建资源中的资源信息,修改java-springboot-demo/src/main/resources路径下的application.properties配置文件。

参数说明示例值
accessKeyAccessKey ID,阿里云身份验证标识。用于对客户端进行权限控制。LTAI5t6K7KY******VjAY3yS
secretKeyAccessKey Secret,阿里云身份验证密钥。用于对客户端进行权限控制。P6z2pkIKAZ******n61JZ5e1lofFG9
nameSrvAddr云消息队列 RocketMQ 版实例的TCP协议接入点,用户访问云消息队列 RocketMQ 版服务端。http://MQ_INST_XXXXXX.cn-hangzhou.mq.aliyuncs.com:80
topic您在控制台创建的Topic,用于发送消息。noamal_topic
groupId您在控制台创建的Group ID,用于订阅消息。GID_test
tag订阅消息时的过滤表达式,例如“*”表示订阅指定Topic中的所有消息;“Tag A||Tag B”表示消费者订阅了Topic中带有Tag A和Tag B两种Tag的消息。更多信息,请参见消息过滤*
orderTopic您在控制台创建的用于发送顺序消息的Topic。order_topic
orderGroupId您在控制台创建的用于订阅顺序消息的Group ID。GID_order
orderTag订阅顺序消息时的过滤表达式。更多信息,请参见消息过滤tagA

步骤四:以Main方式运行Demo

运行示例代码时,请确保java-springboot-demo/src/main/java/com/aliyun/openservices/springboot/example路径下的类已导入到工程中。

消息类型发送消息示例代码订阅消息示例代码
普通消息ProducerClient.java
顺序消息OrderProducerClient.javaOrderConsumerClient.java
事务消息TransactionProducerClient.javaConsumerClient.java