一、RocketMQ 用途
1.异步解耦:RocketMQ可以将消息的发送和接收进行异步解耦,提供了可靠的消息传递机制。在高并发场景下,通过使用RocketMQ,可以将消息发送方和接收方解耦,提高系统的稳定性和可伸缩性。
2.流量削峰:在高并发的情况下,如果直接将请求发送到后端服务,可能会导致服务过载。而使用RocketMQ可以将请求转换为消息,并通过消息队列平滑地削峰填谷,保证后端服务的稳定性和响应速度。
3.异步通信:RocketMQ支持异步消息发送和接收,可以有效提高系统的吞吐量和性能。通过异步发送消息,发送方可以立即返回,而不需要等待消息被处理完毕,从而提升系统的响应速度。
4.顺序消息处理:RocketMQ提供了顺序消息的支持,可以确保消息按照发送的顺序被消费,适用于一些对消息顺序要求较高的场景,如订单处理、流程审批等。
5.消息广播:RocketMQ支持消息的广播模式,可以将消息发送给所有订阅者,适用于一些需要广播通知的场景。
二、业务功能测试
1、消息发送、消费主流成正常
2、异常数据:异常消息数据,正常处理,比如丢弃,不会造成消息处理不来,卡死的情况
3、异步延时:验证延时时间是否符合预期
4、消息丢失:消息发送、存储、消费过程中网络或者服务异常,都可能造成消息丢失。验证是否有重试机制,重试几次失败后,是否会落库,落库后是否有补偿处理机制,比如定时任务处理,还是人工干预
5、消息重复:造成消息重复的场景有:消息发送时重复,消费时消息重复、负载均衡时重新发送消息等情况,解决方法是消费端做幂等处理,验证幂等处理是否正确。
实现幂等性的4个方案,最后一个85%的程序员都不一定清楚 - 知乎
4、消息顺序:如果是顺序消息,验证消费是否按顺序,异常请下,比如网络异常、服务重启、负责均衡的情况下,是否还能保持顺序消费
保证顺序消费的方法:生产者只有一个,顺序产生消息,串行发送消息,消费者顺序消费消息,失败后,有限重试,重试失败后,抛弃
三、业务性能测试
验证三种场景:只生产、只消费、边消费边生产
资源使用情况、消息积压情况,TPS和延时性是否满足需求
四、RocketMQ本身的测试
如果不是使用腾讯云、阿里云等现成的RocketMQ服务,是公司自己搭建的RocketMQ集群,需要验证RocketMQ集群本身的功能