首页 » 网站推广 » nginxcoapphp技巧_EMQ vs VerneMQ

nginxcoapphp技巧_EMQ vs VerneMQ

duote123 2024-12-05 0

扫一扫用手机浏览

文章目录 [+]

背景

MQTT 是一个开放的工业标准,是一个轻量级的基于发布订阅模型的协议,特殊适宜用于一些非可靠网络环境下的小型和嵌入式设备利用,物联网行业兴盛下可选的MQTT Broker有很多,除了经典的Mosquitto和AWS、Azure,百度云、阿里云、IBM等几个供应物联网MQTT接入做事的产品外,可用于商业生产的MQTT Broker还有多款,本文将重点先容一些EMQ与VerneMq。

EMQ

nginxcoapphp技巧_EMQ vs VerneMQ

先容

nginxcoapphp技巧_EMQ vs VerneMQ
(图片来自网络侵删)

EMQ X (简称 EMQ), 是一款完备开源,高度可伸缩,高可用的分布式 MQTT 做事器,同时也支持 CoAP/LwM2M 一站式 IoT 协议接入。
EMQ 是 5G 时期万物互联的引擎,适用于 IoT、M2M 和移动运用程序,可处理千万级别的并发客户端,EMQ是国人出产的一个开源Broker,已经用于很多企业生产了,文档和资料也非常完好,除开源版本也有企业版。
EMQ 作为物联网运用开拓和物联网平台搭建必须用到的根本举动步伐软件,紧张在边缘和云端实现物联网设备互联与设备上云,供应物联网设备接入、协议处理、路由、数据存储、流数据处理等核心能力。

特性

EMQ 特性:

物联网设备一站式连接。
3G/4G/5G&NB-IoT 全网络支持,TLS/DTLS 多重网络安全,X.509 证书等多种身份认证;高并发低时延,大规模分布式。
千万级并发连接,百万级吞吐,毫秒级时延。
大规模分布式,高可用集群架构,弹性伸缩支配;扩展模块与插件。
EMQ 内置扩展插件架构,支持以插件办法供应认证、ACL、存储接口,能非常方便的与上层物联网运用及其他 IT系统快速集成;多种物联网协议支持。
完全支持 MQTT V5.0 协议规范,并下兼容 MQTT V3.1 和 V3.1.1,还可扩展支持 MQTT-SN、CoAP、LwM2M、WebSocket、STOMP或私有 TCP 等多种物联网协议;强大的规则引擎,快速运用集成。
内置强大的规则引擎,一站式数据提取、过滤与转换。
灵巧集成 SQL、NoSQL、时序数据库,及 Kafka 等流处理中间件。
快速运用集成与持续创新;边缘到云端,云端到跨云支配。
从资源受限的边缘打算设备,到私有云、稠浊云和公共云之上,到跨域、跨 IDC 与跨多云,EMQ 支持物理机、VM、容器/K8S 跨平台任意支配;完备开放源码。
EMQ 基于 Apache License 2.0 开源协议,无论是产品原型设计、物联网创业公司、还是大规模的商业支配,EMQ 都支持开源免费利用

EMQ 功能:

完全的 MQTT V3.1/V3.1.1 及 V5.0 协议规范支持(QoS0, QoS1, QoS2 支持、持久会话与离线、Retained 与Last Will 支持)TCP/SSL 连接支持,支持TLS/PSK 加密算法MQTT/WebSocket/SSL 支持HTTP 发布接口支持支持$SYS/# 系统主题、共享订阅 ($share/:group/topic)、客户端在线状态查询与订阅支持、延时 Publish ($delay/topic)支持客户端 ID 或 IP 地址认证,用户名密码认证,LDAP、数据库(Redis、MySQL、PostgreSQL、MongoDB)、HTTP 认证集成,浏览器 Cookie 认证基于客户端 ID、IP 地址、用户名的访问掌握 (ACL)多做事器节点集群 (Cluster)、网络分区自动愈合、按分区配置节点,且集群支持 manual、mcast、dns、etcd、k8s 等多种集群创造办法速率限定、连接速率限定桥接(开源版本支持桥接EMQ X,企业版本支持Kafka、RabbitMQ、Pulsar、RocketMQ桥接)支持Stomp 协议、MQTT-SN 协议、CoAP 协议、LwM2M 协议、Stomp/SockJS 支持Flapping 检测,规定客户端在指定时间内断开次数过大后将禁止客户端在一定韶光内登录黑名单支持,用户可以通过干系的 HTTP API 将指定客户端加入黑名单以谢绝该客户端访问规则引擎(开源版本支持重新发布、桥接数据到 MQTT Broker、发送数据到 Web 做事,企业版本支持编解码,桥接到其它中间件或者持久化到数据库,并可从持久化库中获取订阅关系)数据持久化(仅企业支持持久化到MySQL、Cassandra、InfluxDB等数据库中)

企业级EMQ 一站式办理方案如下图所示

架构

技能架构

异步架构:EMQ X 是基于 Erlang/OTP 平台的全异步的架构,异步 TCP 连接处理、异步主题 (Topic) 订阅、异步发布。
只有在资源负载限定部分采取同步设计,比如 TCP 连接创建和 Mnesia 数据库事务实行。
EMQ X 3.0 版本中,一条 MQTT 从发布者 (Publisher) 到订阅者 (Subscriber),在 EMQ X Broker 内部异步流过一系列 Erlang 进程 Mailbox:

观点模型:EMQ X 观点上更像一台网络路由器 (Router) 或交流机 (Switch),而不是传统的企业级行列步队 (MQ)。
比较网络路由器按 IP 地址或 MPLS 标签路由报文,EMQ X 按主题树 (Topic Trie) 发布订阅模式在集群节点间路由 MQTT :

支配架构

EMQ X 集群可作为物联网接入做事(IoT Hub)支配,目前 EMQ 在青云、阿里云、AWS 等云做事供应商上均供应开箱即用的免费软件镜像,对付分外硬件平台和系统版本如树莓派、Linux ARM,可利用源码编译安装,LB (负载均衡器) 卖力分发设备的 MQTT 连接与到 EMQ X 集群,LB 提高 EMQ X 集群可用性、实现负载平衡以及动态扩容,开源 LB有Nginx、Haproxy。

范例支配架构:

VerneMQ

先容

VerneMQ 基于 Erlang/OTP 平台开拓,是高性能的分布式 MQTT 代理。
它可以在硬件上水平和垂直扩展,以支持大量并发客户端,同时保持较低的延迟和容错能力,它实现了 OASIS 行业标准MQTT 协议。
但 VerneMQ 还旨在通过供应一组与可扩展性、可靠性和高性能以及操作大略性干系的独特功能,将通报和物联网运用程序提升到一个新的水平。

特性

VerneMQ 特性:

完备开放源码。
基于 Apache License 2.0 开源协议,可免费进行商业修正和重用VerneMQ 无任何形式限定、无做事节点数量限定、无韶光限定、无并发限定,并可供应商业支持可随时更换VerneMQ,功能可以在任何实现 MQTT 规范的broker上运行灵巧,VerneMQ 支持自定义插件,通过Lua 脚本来扩充能力采取Erlang/OTP平台开拓,支持故障隔离和容错内置的可扩展指标,便于与第三方系统集成

VerneMQ 功能:

完全的 MQTT V3.1/V3.1.1 及 V5.0 协议规范支持,支持QoS 0、QoS 1、QoS 2做事级别支持基于文、数据库(PostgreSQL、MySQL、Redis 和 MongoDB )的身份验证和授权支持数据桥接(桥接到MQTT Broker)支持系统主题( $SYS )、共享订阅TCP/SSL 连接支持MQTT/WebSocket/SSL 支持支持集群支持集成Graphite 、 Prometheus可扩展插件架构,支持Lua 插件脚本支持会话平衡、负载避免过载(用于系统保护),当行列步队中数据大于配置量,将进行丢弃,支持行列步队数据FIFO 或 LIFO 处理办法数据持久化(基于LevelDB)支持PROXY v2 协议支持webhookHTTP 管理 API

架构

VerneMQ采取Erlang实现,Erlang 旨在支持高并发和高可用性(容错)系统,数据副本采取Plumtree协议实现,MQTT 中的保留是利用主题作为键存储在代理上的,每当客户端订阅该特定主题时,代理都会发送该的副本,设计和构建从 Basho 构建和打包 Riak 数据库的办法以及 Plumtree 中借鉴了很多,主题 trie 路由算法完备参考RabbitMQ MQTT 插件,采取LevelDB 作为数据持久化存储。

总结

EMQX 上风在于高并发连接与高吞吐的做事能力,以及物联网协议栈支持的完全性;扩展能力较强,无需过多开拓,VerneMQ供应根本的并发连接与高吞吐的做事能力,物联网协议栈的完全性较弱仅支持 MQTT 协议;扩展能力较差,根本的业务组件支持度不足,商业成熟度不敷客户量较少,缺少开箱即用的功能插件。
哀求数据持久化避免节点殒机数据丢失可考虑VerneMQ以及企业版EMQ X,开源版本EMQ X须要采取扩展办法实现数据持久化,但是EMQ X通过开放标准物联网协议 MQTT、CoAP 和 LwM2M 连接任何设备,基于 TLS/SSL 和 X.509 证书的认证机制确保通信安全。
利用 EMQ X 企业版本集群,可以绝不费力地弹性扩展到数千万个并发的 MQTT 连接,且由于是国产化软件支持、关注度以及功能丰富程度高于VerneMQ。

比拟项目

EMQ

VerneMQ

License

开源+商业版

开源+商业定制

公司/社区

EMQ

VerenMQ

开源协议

Apache License 2.0

Apache License 2.0

开拓团队

杭州映云科技有限公司

Octavo Labs AG,瑞士

开拓措辞

Erlang

Erlang

集群架构

支持

支持

支持协议

MQTT、CoAP、MQTT-SN、WebSocket、TCP、UDP、LwM2M

MQTT WebSocket

系统性能

集群支持千万级并发,单机开源十万企业版百万并发

集群支持百万级并发

MQTT

v3.1,v3.1.1,v5.0

v3.1,v3.1.1,v5.0

边缘打算

EMQ X Edge 支持树莓派,ARM 等架构,支持数据同步到云做事 Azure IoT Hub AWS

不支持

安全与认证

TLS/DTLS、X.509证书、JWT、OAuth2.0、运用协议(ID/用户名/密码)、数据库与接口形式的认证与 ACL 功能(LDAP、DB、HTTP)

TLS/DTLS、X.509证书、配置文件形式的认证与 ACL 功能、数据库形式的认证与 ACL 功能,但支持数据库较少

数据持久化

企业版支持将数据持久化至外部数据库如 Redis、MySQL、PostgreSQL、MongoDB、Cassandra、Dynamo 等,开源版在内存中宕机则丢失

支持持久化至 Google LevelDB

扩展办法

Webhook、Trigger、Plugin 等,支持 Erlang 与 Lua、Java、Python 扩展开拓

Webhook、Trigger、Plugin 等,支持 Erlang 与 Lua 扩展开拓

数据存储

仅企业版

适配数据库:Redis、Mysql、PostgreSQL、MongoDB、Cassandra、OpenTSDB、TimescaleDB、InfluxDB

适配行列步队:Kakfa、RabbitMQ、Pulsar

桥接模式:支持桥接至标准 MQTT 协议做事

开源版支持 HTTP 将数据同步、存储

适配数据库:无,供应 Erlang 和 Lua 扩展开拓

适配行列步队:无

桥接模式:支持桥接至标准 MQTT 协议做事

管理监控

支持可视化的 Dashboard,实现集群与节点的统一集中管理 支持第三方监控工具 Prometheus ,供应可视化 Grafana 界面模板

内置大略状态管理可视化界面 支持第三方监控工具 Prometheus ,可供应可视化 Grafana 界面

规则引擎

支持规则引擎,基于 SQL 的规则引擎给予 Broker 超越一样平常中间件的能力。
除了在接管转发之外,规则引擎还可以解析的格式(企业版)。

规则引擎由的订阅,发布,确认的事宜触发,根据的负载来实行相应的动作,降落运用开拓的繁芜度。

不支持

推举阅读

MQTT vs. AMQP 协议比拟

Apache Storm vs. Spark Streaming

Apache hive vs. impala 大数据生态系统中的SQL剖析引擎之争

HTTP vs. MQTT 物联网通信协议比拟

标签:

相关文章

php新建object技巧_PHP 面向对象

在现实天下里我们所面对的事情都是工具,如打算机、电视机、自行车等。工具的紧张三个特性:工具的行为:可以对 工具施加那些操作,开灯,...

网站推广 2024-12-10 阅读0 评论0