RocketMQ学习1-3:SpringBoot整合RocketMQ 和 消费者获取消息实现消费

本文详细介绍了一个基于Spring Boot的RocketMQ消息队列应用案例,包括项目目录结构、pom依赖配置、实体类定义、生产者与消费者实现,以及如何通过控制台观察消息的投递与消费情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目目录结构

pom 依赖

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.0.RELEASE</version>
    </parent>

    <dependencies>
        <!-- springboot-web组件 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.rocketmq</groupId>
            <artifactId>rocketmq-spring-boot-starter</artifactId>
            <version>2.0.3</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
    </dependencies>

OrderEntity

package com.mayikt.entity;

import lombok.Data;

import java.io.Serializable;

@Data
public class OrderEntity implements Serializable {

    private String orderId;
    private String orderName;

    public OrderEntity(String orderId, String orderName) {
        this.orderId = orderId;
        this.orderName = orderName;
    }
}
ProducerController
package com.mayikt.producer;

import com.mayikt.entity.OrderEntity;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.core.annotation.Order;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@SpringBootApplication
public class ProducerController {

    @Autowired
    private RocketMQTemplate rocketMQTemplate;

    @RequestMapping("/sendOrder")
    public String sendOrder(){
        OrderEntity orderEntity = new OrderEntity("123456", "蚂蚁课堂");
        rocketMQTemplate.convertAndSend("mayikt-topic", orderEntity);
        return "success";
    }

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

application.yml

rocketmq:
  name-server: 192.168.144.172:9876
  producer:
    group: mayikt_producer
server:
  port: 8088

在ProducerController里启动项目 ,输入网址:127.0.0.1:8088/sendOrder   

 

在RocketMQ控制台可以看到这条消息,这样生产者就成功投递了消息

接下来是消费者消费消息了 

 

OrdeConsumer:
package com.mayikt.consumer;

import com.mayikt.entity.OrderEntity;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Service;


@Service
@RocketMQMessageListener(topic = "mayikt-topic", consumerGroup = "mayiktTopic")
public class OrdeConsumer implements RocketMQListener<OrderEntity> {
    @Override
    public void onMessage(OrderEntity o) {
        System.out.println("o:" + o.toString());
    }
}
AppRocketMq:
package com.mayikt;

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

@SpringBootApplication
public class AppRocketMq {

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

 启动项目AppRocketMq

输入网址:127.0.0.1:8088/sendOrder   

然后在RocketMQ的控制台的消息里面,选择主题:mayikt-topic 

里面可以看到所有的未消费和已消费的信息,都在这里面

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值