一种基于EMQX的多集群动态扩展方法及系统技术方案

技术编号:33775897 阅读:40 留言:0更新日期:2022-06-12 14:29
本发明专利技术公开了一种基于EMQ X的多集群动态扩展方法及系统,方法包括:设备连接于默认集群后生成订阅成功消息,并发送至集群分配模块;集群分配模块判断设备当前连接集群是否与集群配置表中对应的应分配集群一致;若一致则将设备所属集群更新至数据库,若不一致,则将应分配集群的入网信息下发至设备;设备重新连接至应分配集群,并由集群分配模块重新判断;应用程序根据账户设备列表与设备应分配集群建立MQTT连接,实现MQTT通信。通过本发明专利技术的技术方案,能够动态调整多个集群的不同负载权重,根据业务承载需求自由扩展集群,提高了连接的稳定性,提升了通信质量,降低了通信延迟,能够有效阻隔连接波动或雪崩对其他集群的影响。响。响。

【技术实现步骤摘要】
一种基于EMQ X的多集群动态扩展方法及系统


[0001]本专利技术涉及物联网
,尤其涉及一种基于EMQ X的多集群动态扩展方法以及一种基于EMQ X的多集群动态扩展系统。

技术介绍

[0002]目前,随着WIFI模块和5G等接入技术日益成熟,智能家居场迸发出强大的生机。目前最流行的物联网联网方案是基于MQTT协议的长连接,其最关键的组件是MQTT Broker
‑‑
负责维护MQTT长连接及消息发布订阅的路由。这个领域有一个出色的开源项目EMQ X,是基于Erlang开发的分布式高性能MQTT Broker。
[0003]随着公司业务增长,面对越来越多的设备连接,EMQ X集群的运行压力会越来越大。面对这样这种情况,运维人员一般只能通过增加集群的节点数、升级节点机器配置或简单增加集群数量来增加承载能力。
[0004]具体地,EMQ X具有以下问题:
[0005]1.EMQ X开源版本核心功能依赖于Erlang mnesia分布式数据库,每个EMQ X节点也是一个mnesia数据节点。mnesia集本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于EMQ X的多集群动态扩展方法,其特征在于,包括:设备连接于默认集群后,所述默认集群生成订阅成功消息,并通过消息队列发送至集群分配模块;所述集群分配模块根据所述设备的用户ID Hash值以及预设的集群配置表,判断所述设备当前连接集群是否与所述集群配置表中对应的应分配集群一致;若判定一致,则将设备所属集群更新至数据库,若判定不一致,则将所述应分配集群的入网信息下发至所述设备;所述设备断开与所述默认集群的连接,并连接至所述应分配集群,所述应分配集群发送订阅成功消息至所述集群分配模块进行重新判断;应用程序由所述数据库中拉取账户设备列表,所述账户设备列表中当前设备的入网域名修改为该设备所属集群的域名;所述应用程序根据所述账户设备列表与所述设备应分配集群建立MQTT连接,通过对应域名实现与所述设备的MQTT通信连接。2.根据权利要求1所述的基于EMQ X的多集群动态扩展方法,其特征在于,所述集群配置表中针对每个集群配置Hash边界值,使得每个集群对应一组Hash值范围,根据设备的用户ID Hash值所属Hash值范围确定对应的应分配集群,通过每个集群对应的Hash值范围调整多集群的负载权重。3.根据权利要求1或2所述的基于EMQ X的多集群动态扩展方法,其特征在于,所述集群分配模块预设有灰度功能,在所述设备的用户ID Hash值符合预设的灰度范围时对所述用户ID Hash值进行判断,不符合时则结束判断。4.根据权利要求1所述的基于EMQ X的多集群动态扩展方法,其特征在于,集群在连接设备后生成的订阅成功消息中,通过插件附加集群编号,用于表示当前设备所连接集群,所述集群分配模块根据所述集群编号判断当前设备所连接集群与应分配集群是否一致。5.根据权利要求3所述的基于EMQ X的多集群动态扩展方法,其特征在于,所述集群分配模块判断所述设备当前连接集群是否与所述集群配置表中对应的应分配集群一致的启动触发事件为接收到所述订阅成功消息或所述设备与集群连接成功实现上线,若启动触发...

【专利技术属性】
技术研发人员:胡瀚文方鹏宇王宝王瑶
申请(专利权)人:杭州觅恒科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1