1. 引言
随着越来越多的工业设备接入物联网,因处理器能力、网络带宽等具有局限性,所以对其通信技术提出了更高的要求 [1]。作为网页标准的HTTP,已不能满足机器之间的大规模沟通,其请求/回答模式不再合适,取而代之的是发布/订阅模式 [1]。这种模式就是轻量级、可扩展的MQTT可以施展拳脚的舞台,MQTT技术在汽车软件、智能家居、智慧医疗等方面有着广泛的应用。近来MQTT的优势被深度发掘,当有大量的MQTT协议的用户数据和设备实时数据需要存储在服务器端,会使得设备与服务器的交互相当频繁,当服务器接收到大量的数据请求时,MQTT服务器可能会出现宕机等现象。因此,MQTT服务器的负载均衡问题变得突出。传统的单台MQTT服务器处理能力已无法适应现代物联网大量数据请求 [1] [2],所以需要部署服务器集群系统。对不同性能的MQTT服务器,如何给其分配最适合其性能的任务量,协同处理和合理分配外部请求等需要一个负载分配平衡系统。由此可见引入MQTT服务器的负载均衡显得尤为重要 [3]。
2. 概述
本文的方法在兼顾MQTT服务器成本的同时解决了MQTT服务器系统稳定性问题。利用动态负载数据平衡分配策略 [4],对消息队列、CPU利用率、内存利用率的比重系数进行分析,用权值修改函数update Weight(),对权值修改模块优化更新,把用户请求均衡地重定向到其它站点,让系统在不增加硬件投入的情况下发挥最大的效能。当出现高并发量但单台MQTT服务器无法满足需求时,传统方法需要高性能的服务器才可以获得额外的服务资源 [1] [5]。本文的方法是通过增加MQTT服务器的数量并增加MQTT服务器均衡算法就能解决问题。当一开始不知道到底需要多高性能的服务器才能够处理所有需要挂载在其下的设备的请求,每当有设备量增加时,本文通过计算与测试,准确的添加所