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接口来处理收到的消息。
  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT_WEH_coder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值