云消息队列 RocketMQ 版支持集成Spring框架的Java SDK收发消息,本文为您介绍如何使用云消息队列 RocketMQ 版提供的Spring框架的Demo工程。
背景信息
云消息队列 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配置文件。
参数 | 说明 | 示例值 |
---|---|---|
accessKey | AccessKey ID,阿里云身份验证标识。用于对客户端进行权限控制。 | LTAI5t6K7KY******VjAY3yS |
secretKey | AccessKey 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.java | OrderConsumerClient.java |
事务消息 | TransactionProducerClient.java | ConsumerClient.java |