一种基于EMQ插件及Redis的MQTT自动转发系统及转发方法与流程

    技术2025-01-31  39


    本发明涉及物联网,尤其涉及一种基于emq插件及redis的mqtt自动转发系统及转发方法。


    背景技术:

    1、随着物联网(internet of things,iot)技术的快速发展,越来越多的设备通过网络互联,形成了庞大的物联网生态系统。在这个系统中,传感器、执行器、智能家居设备和工业控制设备等通过数据采集、监控、控制和自动化等功能实现相互通信,高效且可靠的数据传输和处理成为关键需求。

    2、mqtt(message queuing telemetry transport)作为一种轻量级消息传输协议,采用发布/订阅模式,专为资源受限的设备和低带宽、不稳定网络环境设计。它以轻量级、发布/订阅模式和可靠性而著称,在物联网设备间的数据传输中得到广泛应用。但随着设备数量的增加,传统mqtt消息服务器在处理大量设备连接和消息转发时可能遭遇性能瓶颈和扩展性不足的问题。

    3、emq,即erlang mqtt broker,是一个基于erlang/otp平台的高性能、分布式mqtt消息服务器,以其高并发处理能力和良好的扩展性而受到认可。emq支持通过插件机制进行功能扩展,以适应特定的业务需求。尽管拥有高并发性、扩展性和插件机制等优势,emq在处理大量消息转发时也可能遇到性能瓶颈,特别是在消息需要存储和处理的场景下。

    4、redis是一个开源的内存数据结构存储系统,能够作为数据库、缓存和消息中间件使用。以其高性能、丰富的数据类型、持久化功能而闻名,在实时数据处理和高吞吐量应用中发挥着重要作用。redis的主要优势包括高效性、多数据接口、持久性和分布性。

    5、在物联网应用中,面对庞大的设备数量和频繁的数据传输,系统必须具备高并发处理能力和良好的扩展性。例如,在智能家居或其他智能控制场景中,传统mqtt消息服务器通常要求设备订阅特定主题,控制端在该主题上发布控制信息以实现远程智能控制。然而,随着设备数量的增加,控制端需要订阅和发布的消息主题数量也随之增加,这可能导致错误和不稳定性。


    技术实现思路

    1、本发明的目的就在于为了解决上述问题而提供一种基于emq插件及redis的mqtt自动转发系统及转发方法,本发明允许手机智能app应用只需订阅和自己手机号码登录app相关的cid的主题,而无需根据绑定的智能设备sn订阅多个和设备sn相关的主题,从而为家庭中多个iot智能设备提供了一种高效、可靠、可扩展的mqtt消息自动转发解决方案。

    2、本发明通过以下技术方案来实现上述目的:

    3、一种基于emq插件及redis的mqtt自动转发系统,包括mqtt服务器、emq插件、redis数据库、云端服务;

    4、所述mqtt服务器作为消息传输的中心枢纽,用于mqtt协议的连接管理和消息传输;

    5、所述emq插件负责拦截、处理mqtt消息,并将消息存储到redis数据库中;

    6、redis数据库:存储mqtt消息和转发规则,提供快速的读写操作;

    7、云端服务:实时监控系统状态,收集性能指标,记录日志,支持系统的优化和问题诊断。

    8、进一步方案为,还包括app端及智能设备端;

    9、所述智能设备端与mqtt服务器进行通信,发送设备状态数据,并接收来自app端的控制指令;

    10、所述app端用于绑定智能设备,并通过调用云端服务配置管理的restful api接口,实现转发规则的实时更新。

    11、进一步方案为,所述智能设备端和app端连接mqtt服务器时采用固定格式,cid和sn的关系存储于redis中。

    12、进一步方案为,智能设备端连接mqtt服务器固定格式为:“特定字符+分隔符+设备唯一标识”;

    13、app端连接mqtt服务器固定格式为:“特定字符+分隔符+app端唯一标识”。

    14、进一步方案为,所述emq插件包括:

    15、消息拦截模块:用于监控并截获mqtt协议下的发布和订阅请求,确保所有消息流都能被系统所识别和处理,为后续处理提供入口;

    16、规则匹配模块:对拦截到的消息进行分析,根据预设的转发规则在redis数据库中查找匹配项,以确定消息是否需要被转发以及如何转发;

    17、消息转换模块:一旦消息与转发规则匹配成功,将根据规则对消息进行必要的转换,以适应不同接收方的需求;

    18、转发执行模块:执行实际的消息转发,将处理后的消息按照既定规则转发至指定的接收方,完成消息的实际传递任务。

    19、本发明另一方面还提供了一种基于emq插件及redis的mqtt自动转发系统的转发方法,包括以下步骤:

    20、设置转发规则:通过配置管理接口,用户定义消息的转发规则;

    21、存储转发规则:将用户设置的转发规则进行序列化,并存储于redis数据库中,以便于快速检索和应用;

    22、消息拦截:emq插件负责拦截通过mqtt服务器传输的消息;

    23、规则匹配查询:emq插件查询redis数据库,获取与拦截到的消息相匹配的转发规则;

    24、执行消息转发:根据查询到的匹配规则,emq插件执行相应的消息转发操作。

    25、进一步方案为,所述转发规则包括以下一项或多项:主题模式、消息内容、qos级别、客户端id、时间条件。

    26、进一步方案为,上述消息转发包括以下一项或多项操作:主题重写、消息内容转换、qos级别调整、消息过滤。

    27、进一步方案为,具体转发过程如下、;

    28、智能设备标识:每个智能设备都有一个唯一的标识符,用于在mqtt服务器上注册客户端id,格式为“d:sn”;

    29、app端标识:app端拥有一个唯一的标识符,用于登录mqtt服务器,格式为“a:cid”;

    30、智能设备与app端绑定:通过app界面,用户发现并绑定智能设备;绑定过程中,app端通过restful api将cid和sn的映射关系存储在redis中;

    31、简化订阅:设备端只需要订阅一个与自身sn相关的主题,接收来自app的控制命令;

    32、控制命令发布:app端在用户选择特定设备后,向该设备的主题发布控制命令;

    33、状态上报:设备端在状态发生变化时,向主题上报状态信息;

    34、消息转发:emq插件截获主题的消息,查询redis以找到与sn相关联的所有cid;

    35、消息转换与分发:emq插件将原始消息转换为面向特定app的主题消息,并分发这些消息给订阅了相应cid主题的智能app;

    36、实时状态同步:通过这种方式,即使智能app没有直接订阅设备的状态上报主题,也能够实时接收到设备的状态更新。

    37、本发明的有益效果在于:

    38、本发明的一种基于emq插件及redis的mqtt自动转发系统及转发方法,通过将emq的高并发处理能力与redis的高效数据存储和管理功能相结合,采用分布式系统架构,将负载均衡和任务分配到多个服务器节点,增强了系统的并发处理能力和扩展性。同时将系统功能模块化,每个模块作为独立的微服务运行,便于水平扩展和独立部署。利用emq的高性能消息队列功能,支持大规模并发连接,而emq的集群功能进一步提升了系统的并发处理能力和可靠性。同时使用redis的发布/订阅机制和列表数据结构,实现高效的消息队列处理。通过这种集成方法,本发明显著提升了mqtt消息处理的性能和扩展性,极大地减少了开发过程中订阅主题的数量,能够广泛应用于物联网通信领域。


    技术特征:

    1.一种基于emq插件及redis的mqtt自动转发系统,其特征在于,包括mqtt服务器、emq插件、redis数据库、云端服务;

    2.如权利要求1所述的一种基于emq插件及redis的mqtt自动转发系统,其特征在于,还包括app端及智能设备端;

    3.如权利要求2所述的一种基于emq插件及redis的mqtt自动转发系统,其特征在于,所述智能设备端和app端连接mqtt服务器时采用固定格式,cid和sn的关系存储于redis中。

    4.如权利要求3所述的一种基于emq插件及redis的mqtt自动转发系统,其特征在于,智能设备端连接mqtt服务器固定格式为:“特定字符+分隔符+设备唯一标识”;

    5.如权利要求1所述的一种基于emq插件及redis的mqtt自动转发系统,其特征在于,所述emq插件包括:

    6.如权利要求1-5任一项所述的一种基于emq插件及redis的mqtt自动转发系统的转发方法,其特征在于,包括以下步骤:

    7.如权利要求6所述的一项所述的一种基于emq插件及redis的mqtt自动转发系统的转发方法,其特征在于,所述转发规则包括以下一项或多项:主题模式、消息内容、qos级别、客户端id、时间条件。

    8.如权利要求6所述的一项所述的一种基于emq插件及redis的mqtt自动转发系统的转发方法,其特征在于,所述消息转发包括以下一项或多项操作:主题重写、消息内容转换、qos级别调整、消息过滤。

    9.如权利要求6所述的一项所述的一种基于emq插件及redis的mqtt自动转发系统的转发方法,其特征在于,具体转发过程如下、;


    技术总结
    本发明公开了一种基于EMQ插件及Redis的MQTT自动转发系统及转发方法,通过将EMQ的高并发处理能力与Redis的高效数据存储和管理功能相结合,采用分布式系统架构,将负载均衡和任务分配到多个服务器节点,增强了系统的并发处理能力和扩展性;同时将系统功能模块化,每个模块作为独立的微服务运行,便于水平扩展和独立部署;利用EMQ的高性能消息队列功能,支持大规模并发连接,而EMQ的集群功能进一步提升了系统的并发处理能力和可靠性。

    技术研发人员:袁伟,邓宏,张新星,文俊
    受保护的技术使用者:四川虹美智能科技有限公司
    技术研发日:
    技术公布日:2024/10/24
    转载请注明原文地址:https://symbian.8miu.com/read-25655.html

    最新回复(0)