随着物联网技术的发展和兴起,越来越多的设备连入网络,与传统互联网相比,物联网设备由于其处理器能力,网络带宽等多方面的限制,对通信技术提出了更高的要求。近年来,采用MQTT作为通讯协议的移动设备和智能终端呈现出快速增长,MQTT服务器负载均衡技术的提出,解决了大量用户并发访问的问题,以及消除了系统中各节点负载不均衡的现象。Nginx作为一款优秀的HTTP服务器和反向代理服务器,负载均衡策略是其核心技术,采用Nginx作为负载均衡器也是当前较好的解决方案,负载均衡策略的好坏直接影响系统性能的发挥。 本文针对当前常用负载均衡算法未考虑MQTT 服务器状态信息,以及负载参数选取单一,权值固定不可变等缺点,通过分析Nginx 的源码,主要模块等工作原理,在现有WRR(加权轮询算法)的基础上进行改进,提出了一种MQTT服务器动态负载均衡算法,主要包括负载参数收集模块、权值计算模块、权值修改模块的具体实现。本文所设计的负载均衡算法通过收集性能参数实现了各服务器实时处理能力的计算,并且引入MQTT 服务器状态参数,通过设计的权值计算公式转换为对应的权值,结合负载参数收集策略和权值上报策略减少了负载均衡器对负载参数的处理压力,为MQTT 服务器集群中负载不均衡的问题提出了一种良好的解决方案。 最后,本文还搭建了实际的MQTT 服务器集群系统测试环境,利用测试工具Tsung 对改进算法和已有的WLC(加权最小连接算法),WRR(加权轮询算法)进行了比较测试。测试结果表明,本文提出的负载均衡调度算法能够使集群系统取得更好的负载均衡效果,达到了预期的目标。