RocketMQ-spring-boot-starter接入云RocketMQ5.0版本的文档有吗?

RocketMQ-spring-boot-starter接入云RocketMQ5.0版本的文档有吗?

展开
收起
嘟嘟嘟嘟嘟嘟 2024-05-03 07:52:11 205 分享 版权
阿里云 AI 助理回答

是的,根据提供的知识库资料,rocketmq-spring-boot-starter 可以用于接入云消息队列 RocketMQ 5.0 版本。以下是详细的接入说明和配置步骤:


1. 推荐版本

在使用 rocketmq-spring-boot-starter 接入云消息队列 RocketMQ 5.0 时,推荐使用以下版本:

  • gRPC协议SDK(推荐):

    <dependency>
      <groupId>org.apache.rocketmq</groupId>
      <artifactId>rocketmq-v5-client-spring-boot-starter</artifactId>
      <version>2.3.1</version>
    </dependency>
    
  • Remoting协议SDK

    <dependency>
      <groupId>org.apache.rocketmq</groupId>
      <artifactId>rocketmq-spring-boot-starter</artifactId>
      <version>2.3.1</version>
    </dependency>
    

注意
- 如果您的业务系统是全新接入,建议优先选择 gRPC协议SDK,以获得更好的性能和使用体验。 - 您可以通过仓库坐标判断使用的协议类型:rocketmq-client-java 表示 gRPC 协议,而 rocketmq-client 表示 Remoting 协议。


2. 配置步骤

2.1 创建资源

在接入之前,您需要在云消息队列 RocketMQ 控制台完成以下资源的创建: 1. 实例:创建一个云消息队列 RocketMQ 实例。 2. Topic:创建与消息类型一致的 Topic(例如普通消息或顺序消息)。 3. Group ID:创建 Group ID,并确保其协议类型与 SDK 的协议类型一致(如 TCP 协议)。 4. 接入点:获取实例的 TCP 协议接入点。 5. AccessKey 和 SecretKey:创建用于身份验证的 AccessKey 和 SecretKey。

2.2 修改 pom.xml 文件

在 Spring Boot 项目中,添加以下依赖:

<dependencies>
    <!-- Spring Boot Starter -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- RocketMQ Spring Boot Starter -->
    <dependency>
        <groupId>org.apache.rocketmq</groupId>
        <artifactId>rocketmq-spring-boot-starter</artifactId>
        <version>2.3.1</version>
    </dependency>

    <!-- 测试依赖 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

2.3 配置 application.properties 文件

根据控制台创建的资源信息,修改 application.properties 文件中的参数:

# 阿里云身份验证标识
accessKey=LTAI5t6K7KY******VjAY3yS
# 阿里云身份验证密钥
secretKey=P6z2pkIKAZ******n61JZ5e1lofFG9
# 实例的TCP协议接入点
nameSrvAddr=http://MQ_INST_XXXXXX.cn-hangzhou.mq.aliyuncs.com:80
# Topic名称
topic=normal_topic
# Group ID
groupId=GID_test

3. 示例代码

以下是一个简单的消息发送和消费示例:

3.1 消息发送

import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class MessageSender {

    @Autowired
    private RocketMQTemplate rocketMQTemplate;

    public void sendMessage(String topic, String message) {
        rocketMQTemplate.convertAndSend(topic, message);
    }
}

3.2 消息消费

import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Service;

@Service
@RocketMQMessageListener(topic = "normal_topic", consumerGroup = "GID_test")
public class MessageConsumer implements RocketMQListener<String> {

    @Override
    public void onMessage(String message) {
        System.out.println("Received message: " + message);
    }
}

4. 注意事项

  • 协议一致性:确保 Group ID 的协议类型与 SDK 的协议类型一致。例如,如果使用 rocketmq-spring-boot-starter,则 Group ID 必须选择 TCP 协议。
  • 环境要求:确保 JDK 版本为 1.8 或以上。
  • 运行时依赖:如果使用 .NET SDK,请确保安装了 Visual C++ 2015 运行时环境。

通过上述步骤,您可以成功使用 rocketmq-spring-boot-starter 接入云消息队列 RocketMQ 5.0 版本。如果有其他问题,请随时咨询!

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答

涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系列产品 Serverless 化。RocketMQ 中文社区:https://rocketmq-learning.com/

还有其他疑问?
咨询AI助理