• RabbitMQ功能测试+性能测试简单方法


    一、如何测试RabbitMQ的功能

    1、联系开发找到队列的名称;登录MQ后台管理地址;点击Queues页,输入队列名搜索出目标队列(支持模糊查询)

     

    2、准备测试数据

    (1)已知json格式时,根据不同的场景,提前准备各种格式的json;

    (2)未知json格式时,点击队列名,在Get Messages输入数量,点击Get Message(s)按钮,下方显示数据。复制出格式后,根据不同的场景,提前准备各种格式的json;

     

    图1

    图2

    3、启动tomcat,如无异常,消费者线程已自动启动,重点关注自启动消费者

     

    4、产生消息

    1)运行QueueTest中的producer产生消息(从代码层测试时)

    (2)RabbitMQ上面直接publish

     

    3)产生MQ消息的地方操作产生

    5、验证程序是否正确消费此消息

     

    异常场景:

    1、消费者启动后,未显示在队列的Consumers

    2、消费者启动后,消费入库时报错

    3、消费者启动后,输入正确的json,重复入库

    4、消费者启动后,消费但未入库

    5、消费者启动后,消费者刚开始显示,但后来消失(消费者假死)

    6、消费者启动后,输入错误的json,消费失败

    7、消费者启动后,消费者堵塞(队列阻塞,无法继续添加数据,可能导致服务挂掉

    二、如何测试 rabbitmq 的性能

    测试持久化和非持久化状态下上述场景的收/发性能不同消息大小状态的收/发性能。

    轮持久化的重要性:持久化的服务器收到消息后就会立刻将消息写入到硬盘,就可以防止突然服务器挂掉,而引起的数据丢失了。但是服务器如果刚收到消息,还没来得及写入到硬盘,就挂掉了,这样还是无法避免消息的丢失。

    Rabbitmq原生是非持久化状态,需要重新封装才能为持久化状态。常用的exchange类型有三个direct发布与订阅fanout(广播)、topic(主题)

    测试方法(百度知道搜索的,未亲自实践):

    1、声明7个具有不同属性的queue,分别和名为test_exchage的exchange进行绑定(因为exchange为fanout类型,所以测试代码中的routing_key其实是不起作用的);

    2、向exchange发送具有persistent属性的消息(delivery_mode=2);

    3、创建7个消费者分别从上述7个queue中获取消息;

    4、测试结果如下

     

     

    三、学习资料

    RabbitMQ的一些概念

    RabbitMq中的交换机

    RabbitMQ系列二(构建消息队列)

    RabbitMQ之PublisherConfirm实战总结

  • 相关阅读:
    ovs tag
    从数据库分析OpenStack创建虚机流程
    Neutron中的二层网络服务架构
    Failed to bind port
    OpenStack网络参数segment
    OpenStack与SDN控制器的集成
    HDU 3709 Balanced Number
    HDU 5787 K-wolf Number
    HDU 5803 Zhu’s Math Problem
    CodeForces 258B Little Elephant and Elections
  • 原文地址:https://www.cnblogs.com/yulia/p/6369894.html
Copyright © 2020-2023  润新知