字节面试:如何测试RocketMQ、RocketMQ?测试点有哪些?

news/2024/10/28 16:51:46/

字节面试RocketMQ是怎么测试的呢?

答:

  • 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性;

  • 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨)

01 先了解RocketMQ

作为测试也是要简单了解RocketMQ。简单来说,就是一个分布式发布-订阅消息中间件,底层基于队列模型来实现消息收发功能。

包含4个模块:Namesrv, Broker, Producer, Consumer。

  • Nameserver

    存储当前集群所有Brokers信息、Topic跟Broker的对应关系。

  • Broker

    集群最核心模块,主要负责Topic消息存储、消费者的消费位点管理(消费进度)。

  • Producer

    消息生产者,每个生产者都有一个ID(编号),多个生产者实例可以共用同一个ID。同一个ID下所有实例组成一个生产者集群。

  • Consumer

    消息消费者,每个订阅者也有一个ID(编号),多个消费者实例可以共用同一个ID。同一个ID下所有实例组成一个消费者集群。

图片

NameServer:注册地址,替代Zookeeper,为什么不用zookeeper,自行百度。

Broker:单个服务,可以有多个RocketMQ在不同的地方

02 整理测试点

1、消费主流程是正常的

2、逆向用例与异常值处理

对于Produce和Consumer两端的异常消息处理,如消息某个参数为空,为异常的情况,在Produce发送错误信息后,消费端是否能够有效处理错误问题。需要对日志和数据库等方面进行查看。

3、消息丢失时的处理情况,(模拟网络等问题)

如因为网络原因导致的消息丢失,是否有补发,通常情况下Produce会设置补发。如果是落库到OS存储、硬盘存储过程中的问题,如何保证消费正常?

4、消息避免重复发送

由于RocketMQ天生就有消息重复发送的机制,所以当产生消息重新发送时,如何对此问题进行处理?通常情况下要对消费端的服务做幂等处理,保证消息不被重复消费。

5、性能相关问题,消费积压

主要就是性能测试,可以通过查看RocketMQ的控制台,来查看对应消费的TPS,来保证消费的及时性,看是否有消息产生阻塞消费,导致TPS骤降等问题。

6、消费的先后顺序以及消费阻塞问题

  • 与定时消息同原理,生产者生产消息时指定特定的 MessageQueue ,消费者消费消息时,消费特定的 MessageQueue,当然如果只有单个MessageQueue,则不会有消费顺序的问题。

  • 同一个 MessageQueue 保证里面的消息是顺序消费的前提是:消费者是串行的消费该 MessageQueue,因为就算 MessageQueue 是顺序的,但是当并行消费时,还是会有顺序问题

    但是串行消费也同时引入了两个问题:

    -a) 引入锁来实现串行

    -b) 前一个消费阻塞时后面都会被阻塞

最后感谢每一个认真阅读我文章的人,下方这份完整的软件测试教程已经整理上传完成,需要的朋友们可以文末自行领取:【保证100%免费】

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!


http://www.ppmy.cn/news/1542638.html

相关文章

etcd之etcd分布式锁及事务(四)

1、etcd分布式锁及事务 1.1 前言 分布式锁是控制分布式系统之间同步访问共享资源的一种方式。在分布式系统中,常常需要协调他们的动作。如 果不同的系统或是同一个系统的不同主机之间共享了一个或一组资源,那么访问这些资源的时候,往往需要…

基于Ubuntu24.04,下载并编译Android12系统源码 (一)

1. 前言 1.1 编译源码可以干什么 定制Android系统将最新版本的Android系统刷入到自己的Android设备中将整个系统源码导入到Android Studio中(可以不用编译源码来实现)。 只要有对应的Android源码版本的android.iml和android.ipr文件,就可以…

移动开发(五):.NET MAUI中自定义主题设置

目录 一、.NET MAUI主题设置原理 二、.NET MAUI主题设置案例 2.1 创建主题文件 2.2 修改App.xaml 文件 2.3 设置默认主题的三种方式 2.4 通过按钮切换主题 三、.NET MAUI主题设置技巧 四、总结 今天给大家分享.NET MAUI应用中如何自定义主题,提升APP本身个性…

我在1024谈华为

华为的发展历程与技术创新 华为自成立以来,一直是通信技术领域的重要参与者。让我们回顾一下华为的一些关键发展里程碑: 1987年,华为在深圳成立,起初专注于电话交换网络的研发和销售。 进入1990年代,华为转型为通信…

k8s dockers 部署 k8s运行docker

资源:最低配置 2G、2CPU。三台机器 准备工作: 1:关闭防火墙 systemctl stop firewalld & systemctl disable firewalld2:关闭Swap sed -ri s/.*swap.*/#&/ /etc/fstab3:关闭selinux setenforce 04&#xff…

python 深度神经网络 归一化后的数据还原 pytorch ,tensorflow

归一化后的数据还原是指将经过Min-Max归一化处理的数据恢复到原始的尺度。这需要使用归一化时的最小值和最大值。如果你在使用MinMaxScaler进行归一化,可以通过inverse_transform方法来还原数据。 假设你有一组归一化后的数据和一个MinMaxScaler对象,你…

【Qt】系统相关——多线程、Qt多线程介绍、常用函数、线程安全、网络、UDP Socket、TCP Socket

文章目录 Qt系统相关1. 多线程1.1 Qt多线程介绍1.2 常用函数1.3 线程安全 2. 网络2.1 UDP Socket2.2 TCP Socket Qt 系统相关 1. 多线程 1.1 Qt多线程介绍 QThread 代表一个在应用程序中可以独立控制的线程,它还可以和进程中的其他线程共享数据。QThread 对象管理…

【线下+线上会议|国内外双会场】2024年第四届数字化社会与智能系统国际学术会议(DSInS 2024)-悉尼/郑州双会场

2024年第四届数字化社会与智能系统国际学术会议(DSInS 2024)-悉尼/郑州双会场 2024 4th International Conference on Digital Society and Intelligent Systems 会议官网:www.dsins.org 2024 4th International Conference on Digital Soc…