【EMQX实践】IOT网关技术方案

一、架构

以EMQX为核心构建稳定、安全、高效的IoT网关,需要充分利用EMQX的强大基础架构、高可靠性、实时监控与运维、端到端数据加密、细粒度访问控制、多协议支持、高性能、灵活的扩展性和强大的数据处理能力等特点和优势。同时,还需要结合具体的业务场景和需求,进行定制化的开发和配置,以确保IoT网关的稳定、安全和高效运行。
image.png

二、EMQX集群

需要构建高可用性、容错性、容错性、支持大量连接和消息处理IOT网关,EMQX需要构建成集群模式。EMQX集群具备下面优点。

  1. 高可用性:EMQX支持分布式集群架构,能够在保证高可用性的同时,处理大量的客户端和消息。当一个或多个节点发生故障时,集群仍然能够保持运行,从而确保服务的连续性和可用性。
  2. 容错性:通过集群架构,EMQX能够在节点之间自动分配负载,并在节点出现故障时提供容错能力。集群中的每个节点都运行一个EMQX实例,并与其他节点通信,共享客户端连接、订阅、发布消息等信息。这种分布式设计允许集群在节点之间自动恢复故障,从而提供强大的容错能力。
  3. 可扩展性:EMQX集群支持水平扩展,可以随着业务的增长向集群添加新节点。特别是EMQX 5.0版本,采用了新的Mria集群架构,单节点能支持500万MQTT设备连接,集群可扩展至1亿并发MQTT连接。这种可扩展性使得EMQX能够处理越来越多的客户端和消息,而无需担心单个代理的限制。
  4. 数据冗余和一致性:EMQX集群在不同节点上维护数据的多个副本来提供数据冗余,即使一个节点发生故障,数据在集群中的其他节点上仍然可用。Mria架构为集群增加了最终的一致性,确保了数据在不同节点之间的一致性和准确性。
  5. 支持大量连接和消息处理:EMQX集群能够稳定承载大规模的MQTT客户端连接,单服务器节点支持百万连接,单集群支持千万规模的路由。这使得EMQX能够满足物联网应用中海量设备接入和实时消息处理的需求。

三、EMQX CLIENT组件

服务作为微服务系统的一部分,采用服务端多实例部署方式时,为确保系统的稳健运行,MQTT客户端代码必须体现高度的可维护性、可重用性、模块化和灵活性。因此,我们采用组件化的MQTT客户端设计,带来了以下显著优点:

  1. 可维护性: 组件化设计允许将复杂的系统分解为更小、更易于管理的部分。每个组件可以独立开发、测试和维护,降低了因修改一个部分而对整个系统造成影响的风险。这种分离关注点的设计方式使得代码更易于理解和调试。
  2. 可重用性: 组件通常设计为具有通用功能的独立单元,可以在不同的项目或应用程序中重复使用。这种可重用性不仅节省了开发时间,还减少了代码冗余,降低了潜在的错误和维护成本。
  3. 模块化: 组件化促进了模块化的编程,每个组件都可以被视为一个独立的模块,拥有自己的接口和内部实现。这种模块化结构使得系统更易于扩展和升级,因为新的功能可以通过添加或替换组件来实现,而无需修改现有组件的核心代码。
  4. 灵活性: 由于组件之间的松耦合,系统可以根据需求的变化灵活地调整其架构。例如,可以替换某个组件以集成新的技术或服务,而不影响其他组件的功能。这种灵活性对于适应快速变化的技术环境和业务需求至关重要。
  5. 降低复杂性: 通过将系统分解为多个独立的组件,可以有效地管理系统的复杂性。每个组件都有明确的职责和边界,这使得系统的设计、实现和维护变得更加简单和直观。
  6. 促进团队协作: 组件化设计也支持团队中的不同开发人员可以并行工作于不同的组件上,而不会相互干扰。这提高了开发效率,同时也便于团队之间的沟通和协作。
  7. 标准化和规范化: 组件化设计通常伴随着一套标准和规范,确保组件之间能够以一致的方式进行交互。这种标准化促进了组件之间的互操作性,简化了集成过程。

四、时序图

image.png

五、消息

设备消息

按照设备行为分为两种消息:service、event。

功能类型说明
服务(Service)指设备可供外部调用的指令或方法。服务调用中可设置输入和输出参数。输入参数是服务执行时的参数,输出参数是服务执行后的结果。相比于属性,服务可通过一条指令实现更复杂的业务逻辑,例如执行某项特定的任务。服务分为异步和同步两种调用方式。
事件(Event)设备运行时,主动上报给云端的信息,一般包含需要被外部感知和处理的信息、告警和故障。事件中可包含多个输出参数。例如,某项任务完成后的通知信息;设备发生故障时的温度、时间信息;设备告警时的运行状态等。事件可以被订阅和推送。

系统消息

EMQX BROKER系统消息

功能类型说明
设备上下线监听设备上线或者下线情况
设备统计统计设备在线数、设备历史最大值
系统告警EMQX BROKER 告警

六、其它

关注公众号【 java程序猿技术】获取EMQX实践系列文章

  • 15
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

后端马农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值