Rocketmq使用Docker测试用例(附源码)

导读:本篇文章讲解 Rocketmq使用Docker测试用例(附源码),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

Rocketmq使用Docker测试用例(附源码)

问题背景

项目中需要使用rocketmq,做了一个测试用例
注意事项:

项目搭建

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 整个项目文件目录
Rocketmq使用Docker测试用例(附源码)

代码测试

1 使用postman进行url接口调用发送消息到rocketmq,选择application/x-www-form-urlencoded类型
Rocketmq使用Docker测试用例(附源码)
2 分别发送001,002,003到接口,查看打印,每次发送一条,消费者就消费一次消息
Rocketmq使用Docker测试用例(附源码)
3 查看rocketmq主页,http://192.168.207.128:8080/#/message,点击查消息,选择TOPIC_TEST
Rocketmq使用Docker测试用例(附源码)
4 点开一条MESSAGE DETAIL查看消息内容
Rocketmq使用Docker测试用例(附源码)

总结

  • 本文没有介绍mq是什么东西,因为已经很多了,可以使本文基本测试用例进行扩展

作为程序员第 103 篇文章,每次写一句歌词记录一下,看看人生有几首歌的时间,wahahaha …
Rocketmq使用Docker测试用例(附源码)Rocketmq使用Docker测试用例(附源码)Rocketmq使用Docker测试用例(附源码)

Lyric: 能不能原谅我

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/110772.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!