Spring Boot如何集成RocketMQ

RocketMQ 架构图展示:

RocketMQ 有四个部分组成分别为:NameServer,Broker,Producer 生产者,Consumer 消费者;以及各自的作用分别为:发现、发、存、收,其主要目的是为了保证高可用。

以下是一个Spring Boot集成RocketMQ的项目实战代码示例,其中包括关键技术的详细说明:

1. 首先,你需要将RocketMQ的依赖添加到你的Spring Boot项目的pom.xml文件中:

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

2. 在application.properties或application.yml文件中添加RocketMQ的配置:

rocketmq.name-server=127.0.0.1:9876
rocketmq.producer.group=your-group-name
rocketmq.producer.send-message-timeout=3000
rocketmq.consumer.group=your-group-name
rocketmq.consumer.topic=your-topic-name
rocketmq.consumer.tags=*   // 支持消息过滤,你可以指定特定的标签

3. 创建一个消息生产者(Producer):

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

@Component
public class MessageProducer {
    
    

    @Autowired
    private RocketMQTemplate rocketMQTemplate;

    public void sendMessage(String message) {
    
    
        rocketMQTemplate.convertAndSend("your-topic-name", message);
    }
}

4. 创建一个消息消费者(Consumer):

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

@Component
@RocketMQMessageListener(topic = "your-topic-name", consumerGroup = "your-group-name")
public class MessageConsumer implements RocketMQListener<String> {
    
    

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

5. 运行应用程序并发送消息:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import javax.annotation.PostConstruct;

@SpringBootApplication
public class RocketMQApplication {
    
    

    @Autowired
    private MessageProducer messageProducer;

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

    @PostConstruct
    public void init() {
    
    
        messageProducer.sendMessage("Hello, RocketMQ!");
    }
}

关键技术说明:

  • NameServer是RocketMQ的路由服务,它用于注册和发现Broker的地址信息。配置文件中的rocketmq.name-server参数指定了NameServer的地址。
  • Broker是RocketMQ的消息存储和传输服务,它接收来自Producer的消息并将其保存在合适的topic和queue中。Broker地址由NameServer提供和管理。
  • Producer是消息的生产者,负责将消息发送到指定的topic。在示例代码中,我们使用了RocketMQTemplate类来发送消息。
  • Consumer是消息的消费者,负责从指定topic接收并处理消息。在示例代码中,我们使用了@RocketMQMessageListener注解来监听指定topic,并实现RocketMQListener接口来处理收到的消息。

猜你喜欢

转载自blog.csdn.net/IT_WEH_coder/article/details/141267226