压力测试 mqtt 代理(HiveMQ CE 代理)

Posted

技术标签:

【中文标题】压力测试 mqtt 代理(HiveMQ CE 代理)【英文标题】:Stress test mqtt broker (HiveMQ CE broker) 【发布时间】:2021-06-23 19:12:17 【问题描述】:

我必须在我的机器(或我的网络中的机器)上对 MQTT 代理进行压力测试(负载测试),以了解可以同时保持连接到该机器上的代理的客户端数量、消息数可以由不同的客户端同时发布到注册的主题和类似的东西。 我怎样才能做到这一点?

我对此很陌生,并且看过一些有关 Jmeter 的视频,但是我在哪里可以得到 Jmeter 中上述问题的答案?顺便说一句,Jmeter 没有内置的 MQTT 支持,人们为此制作了一些插件,即https://github.com/xmeter-net/mqtt-jmeter

附言Jmeter 不是必需品。我刚才提到它是因为我在上面找到了一些视频和资源。

【问题讨论】:

您可以通过多种方式对代理进行压力测试(构建一个运行多个应用程序实例的实验室或使用 jmeter、Gatling、mqtt-malaria 等工具)。但是,除非测试模拟您现实世界的工作负载(例如,连接的客户端数量、QOS、消息大小/体积/时间、订阅数量、加密与未加密连接等),否则我不确定测试会取得多大成就。请注意,要求工具推荐的问题是off-topic。 【参考方案1】:
    MQTT Connect 采样器打开一个连接(每个 JMeter 线程一个连接 - 虚拟用户),因此如果您在 Thread Group 中定义了 2 个线程 - 将打开 2 个连接。 MQTT Pub Sampler 通过现有连接向定义的主题发送消息。如果您想从同一用户向不同主题发送消息 - 您可以使用 CSV Data Set Config 参数化主题名称,这同样适用于消息负载 完成后,您可以致电MQTT DisConnect

如果需要,请参阅Testing the MQTT Messaging Broker for IoT - A Guide 文章了解更多详细信息。

【讨论】:

以上是关于压力测试 mqtt 代理(HiveMQ CE 代理)的主要内容,如果未能解决你的问题,请参考以下文章

MQTT压力测试之Tsung的使用

Android 中基于 Websocket 的 MQTT

MQTT图形化客户端比较

MQTT---HiveMQ源码详解结构与启动

在云服务器上搭建了mqtt,为啥手机连接不上mqtt,要怎么做才能连接上?求求大神帮忙

MQTT.js 无法建立本地代理连接