А. В. Солопий1, Р. К. Классен2
1,2 Казанский национальный исследовательский технический университет им. А.Н. Туполева (КАИ) (г. Казань, Россия)
1 entityfx@yandex.ru, 2 klassen.rk@gmail.com
Постановка проблемы. Интернет вещей представляет собой множество устройств, соединенных сетью передачи данных, способных обмениваться сообщениями. Обычно в таких сетях имеется ядро, представленное брокером сообщений. Для построения распределенной Интернета вещей, способной обрабатывать миллионы сообщений в секунду, потребуется множество вычислительных узлов. Сократить их число можно, выбрав наиболее производительный, не требовательный к ресурсам, брокер сообщений.
Цель. Выбрать набор брокеров сообщений для проведения нагрузочного тестирования, лучшие из которых могут быть применены для организации высоконагруженного кластера брокеров сообщений. Подобрать инструментарий для проведения нагрузочного тестирования брокеров сообщений, провести серию испытаний. Определить критерий выбора брокера, провести анализ по результатам испытаний и выбрать наиболее производительные брокеры сообщений.
Результаты. Набор брокеров сообщений представлен Mosquitto, EMQX, ActiveMQ и Aedes. В качестве основного инструмента проведения нагрузочного тестирования выбрана библиотека NBomber. Выбор лучшего брокера сообщений проведен путем вычисления нормализованной оценки брокера для каждого сценария нагрузочного тестирования и сведения расчетов в общую таблицу. Установлено, что брокер сообщений Mosquitto показывает самый высокий RPS, но не обладает высокой надежностью. Он не может использовать более двух ядер CPU, поэтому при росте числа обслуживаемых клиентов растет и процент отказов. Отмечено, что в отличие от него, брокер ActiveMQ не ограничен в потреблении ресурсов CPU, что позволяет ему надежно обслуживать большое количество клиентов за счет повышенного потребления ресурсов.
Практическая значимость. Результаты исследования могут быть использованы при проектировании распределенных систем Интернета вещей.
Солопий А.В., Классен Р.К. Выбор брокера сообщений для Интернета вещей на основе нагрузочного тестирования // Динамика сложных систем. 2025. Т. 19. № 3. С. 44−51. DOI: 10.18127/j19997493-202503-04
- Ashton K. et al. That ‘internet of things’ thing. RFID journal. 2009. V. 22. № 7. P. 97–114.
- Rose K., Eldridge S., Chapin L. The internet of things: An overview. The internet society (ISOC). 2015. V. 80. № 15. P. 1–53.
- Kaur J., Kaur K. Internet of things: A review on technologies, architecture, challenges, applications, future trends. International Journal of Computer Network and Information Security. 2017. V. 9. № 4. P. 57.
- Mansour M. et al. Internet of things: a comprehensive overview on protocols, architectures, technologies, simulation tools, and future directions. Energies. 2023. V. 16. № 8. P. 3465.
- Bender M., Kirdan E., Pahl M.-O., Carle G. Open-Source MQTT Evaluation. 2021 IEEE 18th Annual Consumer Communications & Networking Conference (CCNC). Las Vegas. NV. USA. 2021. P. 1–4. DOI: 10.1109/CCNC49032.2021.9369499.
- Татарникова Т.М., Палкин И.И. Применение парадигмы интернета вещей в концепции «умного города» // Ученые записки Российского государственного гидрометеорологического университета. 2019. № 57. С. 187–197. DOI: 10.33933/2074-2762-2019-57-187-197.
- Fan Wang. Comparison of Open Source MQTT Brokers. 2023. URL: https://www.emqx.com/en/blog/a-comprehensive-comparison- of-open-source-mqtt-brokers-in-2023 (дата обращения: 30.04.2024).
- Antonielli F. Development and comparison of MQTT distributed algorithms for HiveMQ. 2021.
- Naik N. Choice of effective messaging protocols for IoT systems: MQTT, CoAP, AMQP and HTTP. 2017 IEEE international systems engineering symposium (ISSE). IEEE. 2017. P. 1–7.
- Крыловский А. MQTT benchmarking tool. URL: https://github.com/krylovsk/mqtt-benchmark (дата обращения: 30.04.2024).
- Lightweight MQTT Benchmark Tool written in Erlang. URL: https://github.com/emqx/emqtt-bench (дата обращения: 30.04.2024).
- XMeter. URL: https://www.emqx.com/en/products/xmeter (дата обращения: 30.04.2024).
- Halili E.H. Apache JMeter. 2008.
- NBomber overview. URL: https://nbomber.com/docs/getting-started/overview/ (дата обращения: 30.04.2024).
- Gheorghe-Pop I.D. et al. A performance benchmarking methodology for MQTT broker implementations. 2020 IEEE 20th International Conference on Software Quality, Reliability and Security Companion (QRS-C). IEEE. 2020. P. 506–513.
- Getting Started with MQTT Performance Testing: A Primer on Scenarios and Metrics // emqx.com URL: https://www.emqx.com/ en/blog/getting-started-with-mqtt-performance-testing-a-primer-on-scenarios-and-metrics (дата обращения: 11.08.2024).
- Mishra B., Mishra B., Kertesz A. Stress-testing MQTT brokers: A comparative analysis of performance measurements. Energies. 2021. V. 14. № 18. P. 5817.
- Standard O. MQTT version 3.1.1. URL: http://docs.oasis-open.org/mqtt/mqtt/v3. 2014. V. 1. P. 29.
- Lee S. et al. Correlation analysis of MQTT loss and delay according to QoS level. The International Conference on Information Networking 2013 (ICOIN). IEEE. 2013. P. 714–717.
- Quincozes S., Emilio T., Kazienko J. MQTT protocol: fundamentals, tools and future directions. IEEE Latin America Transactions. 2019. V. 17. № 09. P. 1439–1448.
- Солопий А.В. EntityFX Mqtt Benchmark, Слушатель топиков. URL: https://github.com/EntityFX/MqttBenchmark/tree/main/src/ EntityFX.MqttBenchmark.Counters (дата обращения: 30.04.2024).
- Turnbull J. Monitoring with Prometheus. Turnbull Press, 2018.
- Van Rossum G. et al. Python Programming Language. USENIX annual technical conference. 2007. V. 41. № 1. P. 1–36.
- Солопий А.В. EntityFX Mqtt Benchmark, Результаты измерения производительности брокеров MQTT. URL: https://github.com/ EntityFX/MqttBenchmark/tree/main/results (дата обращения: 30.04.2024).
- Солопий А.В. EntityFX Mqtt Benchmark. URL: https://github.com/EntityFX/MqttBenchmark (дата обращения: 30.04.2024).
- Солопий А.В. EntityFX Mqtt Stand. URL: https://github.com/EntityFX/mqs-stand (дата обращения: 30.04.2024).

