SpringBoot3.0 + RocketMq 构建企业级数据中台(完结)

142 阅读2分钟

Spring Boot 3.0 是一个广泛应用的 Java 开发框架,能简化 Spring 应用的创建与开发;RocketMQ 是阿里巴巴开源的分布式消息中间件,具备高性能、高可靠、高可扩展等特性。将 Spring Boot 3.0 和 RocketMQ 结合使用,可构建出高效、稳定的消息驱动应用。以下为你详细介绍它们结合使用的相关内容:

SpringBoot3.0 + RocketMq 构建企业级数据中台完结_优课it

环境准备

  • Java 环境:Spring Boot 3.0 要求 Java 17 及以上版本,所以需要安装并配置好 Java 17 或更高版本的开发环境。
  • RocketMQ 服务:要提前安装并启动 RocketMQ 服务,可从 RocketMQ 官方 GitHub 仓库(github.com/apache/rock… )下载安装包,按照官方文档进行安装和配置。
  • Maven 或 Gradle:使用 Maven 或 Gradle 来管理项目依赖。如果使用 Maven,需在 pom.xml 中添加 Spring Boot 和 RocketMQ 相关依赖。

添加依赖

pom.xml 中添加以下依赖:

xml

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

配置 RocketMQ

application.propertiesapplication.yml 中配置 RocketMQ 的相关信息:

properties

# RocketMQ 名称服务器地址
rocketmq.name-server=127.0.0.1:9876

消息生产者示例

java

import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ProducerController {

    @Autowired
    private RocketMQTemplate rocketMQTemplate;

    @GetMapping("/sendMessage")
    public String sendMessage() {
        String message = "Hello, RocketMQ!";
        // 发送消息到指定主题
        rocketMQTemplate.convertAndSend("TestTopic", message);
        return "Message sent successfully";
    }
}

消息消费者示例

java

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

@Service
@RocketMQMessageListener(topic = "TestTopic", consumerGroup = "TestConsumerGroup")
public class ConsumerService implements RocketMQListener<String> {

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

代码解释

  • 生产者:通过 RocketMQTemplate 向指定主题(TestTopic)发送消息。convertAndSend 方法将消息对象转换为字节流并发送到 RocketMQ 服务器。
  • 消费者:使用 @RocketMQMessageListener 注解标记一个类为消息监听器,指定要监听的主题和消费者组。实现 RocketMQListener 接口,在 onMessage 方法中处理接收到的消息。

启动应用

创建一个 Spring Boot 主应用类:

java

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

运行 Application 类的 main 方法启动 Spring Boot 应用。启动成功后,访问 /sendMessage 接口即可发送消息,消费者会自动接收并处理消息。

注意事项

  • 异常处理:在生产者和消费者代码中,要添加适当的异常处理逻辑,以应对网络异常、消息发送失败等情况。
  • 消息顺序和事务:如果业务有消息顺序或事务处理的需求,需使用 RocketMQ 提供的顺序消息和事务消息功能,并在代码中进行相应的配置和处理。