Rocketmq使用Docker测试用例(附源码)
问题背景
项目中需要使用rocketmq,做了一个测试用例
注意事项:
- 已安装虚拟机宿主机
- 已安装IDEA
- 可以直接复制文本的代码自己创建工程,也可以下载源码进行参考
项目搭建
1 在宿主机上安装rocketmq,可以参考我的另一篇安装文章
Docker无介绍快使用,docker拉取rocketmq(九)
2 创建IDEA项目,引入pom依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.6</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.yg</groupId>
<artifactId>rocketmq</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>rocketmq</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--rocketmq-->
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
3 启动类
package com.yg.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);
}
}
4 生产者向rocketmq发送消息
package com.yg.rocketmq.controller;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.spring.core.RocketMQTemplate;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* @Author suolong
* @Date 2022/4/8 18:05
* @Version 1.5
*/
@RestController
@RequestMapping("/rocketmq")
@Slf4j
public class RocketTestController {
@Resource
private RocketMQTemplate rocketMQTemplate;
@PostMapping("/send")
public String sendMessage(@RequestParam(defaultValue = "TOPIC_TEST") String topic, @RequestParam String message) {
log.info("send topic:{}, msg: {} ", topic, message);
rocketMQTemplate.convertAndSend(topic, message);
return "success";
}
}
5 创建消费者消费消息
package com.yg.rocketmq.service;
import lombok.extern.slf4j.Slf4j;
import org.apache.rocketmq.spring.annotation.RocketMQMessageListener;
import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Component;
/**
* @Author suolong
* @Date 2022/4/8 18:11
* @Version 1.5
*/
@Slf4j
@Component
@RocketMQMessageListener(topic = "TOPIC_TEST", consumerGroup = "group_consumer")
public class Consumer implements RocketMQListener<String> {
@Override
public void onMessage(String message) {
log.info("Receive message:" + message);
}
}
6 整个项目文件目录
代码测试
1 使用postman进行url接口调用发送消息到rocketmq,选择application/x-www-form-urlencoded类型
2 分别发送001,002,003到接口,查看打印,每次发送一条,消费者就消费一次消息
3 查看rocketmq主页,http://192.168.207.128:8080/#/message,点击查消息,选择TOPIC_TEST
4 点开一条MESSAGE DETAIL查看消息内容
总结
- 本文没有介绍mq是什么东西,因为已经很多了,可以使本文基本测试用例进行扩展
作为程序员第 103 篇文章,每次写一句歌词记录一下,看看人生有几首歌的时间,wahahaha …
Lyric: 能不能原谅我
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/110772.html