当前位置:   article > 正文

支持上亿物联网终端设备接入的MQTT集群(1)_emqx 开源版

emqx 开源版

MQTT客户端库用于在客户端设备上实现MQTT协议,以便与Broker进行通信。主流的MQTT客户端库包括Paho MQTT、MQTT.js、Eclipse Kura等,支持各种编程语言和平台,例如Java、Python、JavaScript等。

本文选取 EMQX 作为研究对象,基于 EMQX 开源版本搭建 MQTT 服务集群。

2. EMQX 企业版与开源版功能对比

在这里插入图片描述
备注:上图数据来源于EMQ官方网站–产品概览

如上图所示,红色部分为开源版本不支持的功能。开源版本与企业版本从伸缩性与性能上对比基本上一致,即不管是开源版本还是企业版本均支持至多1亿的连接以及500万每秒的消息,这样能够满足大部分业务场景,如果团队没有运维资源,则考虑使用企业版会有更高的 SLA 稳定性保障;如果团队有自己的运维力量,且对于企业版扩展的功能没有很强烈的需求,则可以考虑使用开源版本。

3. EMQX 集群部署

3.1 EMQX 集群架构

3.1.1 EMQX 4.x 以及以前版本架构

在这里插入图片描述
  EMQX 集群中所有节点之间两两互相连结的架构。

3.1.2 EMQX 5.x 基于 Mria 的新架构

在这里插入图片描述
  EMQX 集群的节点分为核心节点(Mria Core)与复制节点(Mria Replicant),核心节点之间两两互相连结。

  • 核心节点:核心节点作为数据库的数据层,节点间以全网状连接,每个节点都包含一个最新的数据副本,这保证了容错性:只要有一个节点存活,数据就不会丢失。核心节点一般是静态和持久的,不建议进行自动伸缩(即经常添加、删除或替换节点)。
  • 复制节点:复制节点会连接到核心节点,并被动地复制来自核心节点的数据更新。复制节点不允许执行任何的写操作,而是将其转交给核心节点代为执行。同时,由于复制节点有一个完整的本地数据副本,因此数据读取速度非常快,这样有助于降低 EMQX 路由的时延。

将这种数据复制模型当做无主复制和主从复制的一种混合,这种结构的优势在于:

  • 更高的水平可扩展性:EMQX 5.0 已能支持包含 23 个节点的大规模集群。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/786431
推荐阅读
相关标签
  

闽ICP备14008679号