Mosquitto MQTT Broker 在 Docker 上的性能

问题描述 投票:0回答:0

以下是我在将数据引入 MQTT 代理时尝试的三种场景。

场景一

每秒 100 条记录,QoS = 1,持续 30 秒,来自 3 台机器(其中每台机器都是一个 docker 容器)与 MQTT 代理并行,它也是一个 docker 容器。 所以每台机器在 30 秒内总共生成 3000 条消息 每条消息的大小为 260 字节。

这里是接收方数据,下面是每台机器收到的记录数。

JSON_DATE:MACHINE_NAME                COUNT(*)
"09166423-892a-4c84-9717-83b91ecbf2d5"  1,956
"b05eb890-ed0a-4272-aa95-7dce4f066cdb"  2,037
"e1ede903-f8f5-4bc8-95bb-ee286e6c00c3"  2,419

推论:每台机器都有数据丢失

场景二

每 5 秒 100 条记录,QoS=1,持续 30 秒,来自 5 台机器(其中每台机器都是一个 docker 容器)与 MQTT 代理并行,它也是一个 docker 容器。 所以每台机器在 30 秒内总共生成 3000 条消息 每条消息的大小为 260 字节。

这是我在将数据引入 MQTT 代理时尝试过的两个场景。

JSON_DATE:MACHINE_NAME                 COUNT(*)
"043fc770-104c-4d0f-99e8-aae4a22bea60"  3,721
"06d39ec0-d799-43a9-9c58-16bbb67c0217"  3,085
"4374073b-6c75-4788-b1f7-bcd65aa755aa"  3,587
"675467d5-4361-4a61-becf-0a20fc5ad84f"  3,500
"825d3880-99db-425b-b867-3254fef394f3"  3,495

推论:任何机器都没有数据丢失。大多数机器都有多次交货

场景三

每 5 秒 100 条记录,QoS=1,持续 30 秒,来自 10 台机器(其中每台机器都是一个 docker 容器)与 MQTT 代理并行,它也是一个 docker 容器。 所以每台机器在 30 秒内总共生成 3000 条消息 每条消息的大小为 260 字节。

这是我在将数据引入 MQTT 代理时尝试过的两个场景。

JSON_DATE:MACHINE_NAME                 COUNT(*)
"06e08aeb-f258-40eb-adcd-efe1b2e3725e"  3,162
"0be5975c-b364-450e-b550-62834d32a18f"  3,181
"30f6cea9-efde-42b5-bcb2-b81e360d27b4"  2,959
"500465c1-7ff0-4097-a0d7-d22b55b73079"  3,142
"ac61be0c-ac40-44fd-930c-10b01d98aa4a"  3,235
"b259f4cd-cd69-4582-b428-53192ac5d13e"  3,027
"b8567bf2-cdc8-4907-8c03-7bbe78d36cb8"  3,212
"ca3bda96-4b60-4d97-a88a-22b10d500650"  2,932
"d6bb5650-1fdb-45cf-9bfc-a979594aba0f"  3,287
"dff45255-b48e-45a9-9e71-a7cfd9559139"  3,069

推断:部分机器有少量数据丢失

下面是场景2执行时docker stats的截图

这就是我要找的。

是否有一个阈值可以用作在 docker 上运行的 MQTT 代理的基准? 有没有办法可以提高性能?

docker mqtt mosquitto broker
© www.soinside.com 2019 - 2024. All rights reserved.