SpringBoot整合RocketMq

SpringBoot整合RocketMq

文章目录

  • SpringBoot整合RocketMq
    • 添加依赖
      • 步骤 1:添加 RocketMQ 的依赖 在你的 `pom.xml` 文件中添加以下依赖:
      • 步骤 2:配置 RocketMQ 的属性 在你的 `application.properties` 或 `application.yml` 文件中添加以下配置:
      • 步骤 3:编写发送者 创建一个发送者,用于向指定的主题发送消息。
      • 步骤 4:编写消费者 创建一个消费者,用于订阅指定的主题并消费消息。
      • 步骤 5:测试发送者和消费者 在你的应用程序中调用发送者,向指定主题发送消息。同时,确保你的消费者正在运行,以便接收到消息并处理。

添加依赖

步骤 1:添加 RocketMQ 的依赖 在你的 pom.xml 文件中添加以下依赖:

    <properties>
        <rocketmq.version>2.1.0rocketmq.version>
    properties>
    
    <dependency>
        <groupId>org.apache.rocketmqgroupId>
        <artifactId>rocketmq-spring-boot-starterartifactId>
        <version>${rocketmq.version}version>
    dependency>

步骤 2:配置 RocketMQ 的属性 在你的 application.propertiesapplication.yml 文件中添加以下配置:

rocketmq:
  name-server: 127.0.0.1:9876
  producer:
    group: variable-monitor-producer-group

步骤 3:编写发送者 创建一个发送者,用于向指定的主题发送消息。

package com.kang.grafana.rocketmq.producer;

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

/**
 * 编写发送者 创建一个发送者,用于向指定的主题发送消息
 */
@Service
public class Sender {
    @Autowired
    private RocketMQTemplate rocketMQTemplate;

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

步骤 4:编写消费者 创建一个消费者,用于订阅指定的主题并消费消息。

package com.kang.grafana.rocketmq.consume;

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

@Service
@RocketMQMessageListener(topic = "variable-monitor-topic", consumerGroup = "variable-monitor-consumer-group")
public class Consumer implements RocketMQListener<String> {
    @Override
    public void onMessage(String message) {
        System.out.println("Received message: " + message);
    }
}

步骤 5:测试发送者和消费者 在你的应用程序中调用发送者,向指定主题发送消息。同时,确保你的消费者正在运行,以便接收到消息并处理。

package com.kang.grafana.controller;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.kang.grafana.rocketmq.producer.Sender;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.concurrent.ThreadPoolExecutor;

/**
 * @Author Emperor Kang
 * @ClassName RocketMqController
 * @Description TODO
 * @Date 2023/9/12 14:17
 * @Version 1.0
 * @Motto 让营地比你来时更干净
 */
@RestController
@RequestMapping("/rocket")
public class RocketMqController {
    @Autowired
    private ThreadPoolExecutor bigdataThreadPoolExecutor;

    @Autowired
    private Sender sender;

    @RequestMapping("/send/message")
    public Object send(){
        String topic = "variable-monitor-topic";
        String message = JSON.toJSONString(bigdataThreadPoolExecutor, SerializerFeature.WriteMapNullValue);
        sender.send(topic,message);
        return Boolean.TRUE;
    }
}

SpringBoot整合RocketMq_第1张图片
SpringBoot整合RocketMq_第2张图片

你可能感兴趣的:(RocketMq,spring,boot,java-rocketmq,rocketmq)