springboot 整合rocketMQ,实现发送提醒消息

下面是如何在Spring Boot项目中整合RocketMQ并实现发送提醒消息的详细过程和关键代码。这个过程包括配置RocketMQ客户端,编写消息发送和接收的代码,以及一些基本的Spring Boot配置。

一、环境准备

  1. 下载并启动RocketMQ

    • 下载并解压RocketMQ的安装包。
    • 启动Name Server和Broker。
      nohup sh mqnamesrv &
      nohup sh mqbroker -n localhost:9876 &
      

                添加Maven依赖: 在pom.xml文件中添加RocketMQ的依赖。 

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

二、配置文件

application.yml文件中添加RocketMQ的配置。

rocketmq:
  name-server: 127.0.0.1:9876
  producer:
    group: springboot-producer-group
  consumer:
    group: springboot-consumer-group
    topic: ReminderTopic

三、生产者代码

通过上述步骤,我们已经成功在Spring Boot项目中整合了RocketMQ,并实现了发送和接收提醒消息的功能。这个示例可以根据实际需求进一步扩展和优化,比如增加消息重试机制、消息过滤等功能。

创建消息发送服务

package com.example.rocketmq.producer;

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

@Service
public class ReminderProducer {

    @Autowired
    private RocketMQTemplate rocketMQTemplate;

    public void sendReminder(String message) {
        rocketMQTemplate.convertAndSend("ReminderTopic", message);
    }
}

调用消息发送服务

package com.example.rocketmq.controller;

import com.example.rocketmq.producer.ReminderProducer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ReminderController {

    @Autowired
    private ReminderProducer reminderProducer;

    @GetMapping("/sendReminder")
    public String sendReminder(@RequestParam String message) {
        reminderProducer.sendReminder(message);
        return "Reminder sent: " + message;
    }
}

四、消费者代码

创建消息接收服务

package com.example.rocketmq.consumer;

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

@Service
@RocketMQMessageListener(topic = "ReminderTopic", consumerGroup = "springboot-consumer-group", messageModel = MessageModel.CLUSTERING)
public class ReminderConsumer implements RocketMQListener<String> {

    @Override
    public void onMessage(String message) {
        System.out.println("Received reminder: " + message);
        // 在这里处理接收到的提醒消息
    }
}

五、启动项目

通过Spring Boot的主程序启动项目

package com.example.rocketmq;

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

@SpringBootApplication
public class RocketMqApplication {

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

六、测试

  1. 启动Spring Boot应用。
  2. 访问http://localhost:8080/sendReminder?message=HelloRocketMQ发送提醒消息。
  3. 检查控制台输出,确认消费者接收到消息。

七、详细解析

  1. 配置文件

    • rocketmq.name-server:指定RocketMQ Name Server的地址。
    • rocketmq.producer.group:指定生产者组的名称。
    • rocketmq.consumer.group:指定消费者组的名称。
    • rocketmq.consumer.topic:指定要消费的Topic。
  2. 消息发送服务

    • RocketMQTemplate:Spring提供的RocketMQ模板类,用于发送消息。
    • convertAndSend方法:用于将消息对象转换为字符串并发送到指定的Topic。
  3. 消息接收服务

    • RocketMQMessageListener注解:用于标记一个类为RocketMQ消息监听器。
    • onMessage方法:用于处理接收到的消息。

通过上述步骤,我们已经成功在Spring Boot项目中整合了RocketMQ,并实现了发送和接收提醒消息的功能。这个示例可以根据实际需求进一步扩展和优化,比如增加消息重试机制、消息过滤等功能。

 

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SpringBoot整合RocketMQ发送事务消息的步骤如下: 首先,定义一个生产者类,使用@Component注解将其标记为一个组件,并使用@Autowired注解注入RocketMQTemplate实例。在该类中,可以编写一个sendMsg方法来发送消息。该方法接受两个参数,分别是topic和msg,使用MessageBuilder构建一个消息对象,并通过rocketMQTemplate的sendMessageInTransaction方法发送消息。需要注意的是,该方法的第一个参数要与@RocketMQTransactionListener注解中的txProducerGroup属性保持一致。\[1\] 其次,定义一个消费者类,使用@Component和@RocketMQMessageListener注解将其标记为一个组件,并指定topic和consumerGroup。该类需要实现RocketMQListener接口,并实现其中的onMessage方法,用于处理接收到的消息。\[2\] 最后,在引导类中使用@SpringBootApplication注解标记该类为Spring Boot应用程序的入口,并在main方法中调用SpringApplication的run方法启动应用程序。\[3\] 通过以上步骤,就可以在SpringBoot整合RocketMQ发送事务消息了。 #### 引用[.reference_title] - *1* *2* *3* [springboot 整合 rocketmq 发送事务消息](https://blog.csdn.net/weixin_42494845/article/details/109362030)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值