赞
踩
MQTT客户端库用于在客户端设备上实现MQTT协议,以便与Broker进行通信。主流的MQTT客户端库包括Paho MQTT、MQTT.js、Eclipse Kura等,支持各种编程语言和平台,例如Java、Python、JavaScript等。
本文选取 EMQX
作为研究对象,基于 EMQX 开源版本搭建 MQTT 服务集群。
备注:上图数据来源于EMQ官方网站–产品概览。
如上图所示,红色部分为开源版本不支持的功能。开源版本与企业版本从伸缩性与性能上对比基本上一致,即不管是开源版本还是企业版本均支持至多1亿的连接以及500万每秒的消息,这样能够满足大部分业务场景,如果团队没有运维资源,则考虑使用企业版会有更高的 SLA 稳定性保障;如果团队有自己的运维力量,且对于企业版扩展的功能没有很强烈的需求,则可以考虑使用开源版本。
EMQX 集群中所有节点之间两两互相连结的架构。
EMQX 集群的节点分为核心节点(Mria Core)与复制节点(Mria Replicant),核心节点之间两两互相连结。
核心节点
:核心节点作为数据库的数据层,节点间以全网状连接,每个节点都包含一个最新的数据副本,这保证了容错性:只要有一个节点存活,数据就不会丢失。核心节点一般是静态和持久的,不建议进行自动伸缩(即经常添加、删除或替换节点)。复制节点
:复制节点会连接到核心节点,并被动地复制来自核心节点的数据更新。复制节点不允许执行任何的写操作,而是将其转交给核心节点代为执行。同时,由于复制节点有一个完整的本地数据副本,因此数据读取速度非常快,这样有助于降低 EMQX 路由的时延。将这种数据复制模型当做无主复制和主从复制的一种混合,这种结构的优势在于:
23
个节点的大规模集群。Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。