开源 MQTT

到目前为止,比较流行的开源 MQTT 有几个:

  • Mosquitto:由Eclipse Paho项目提供,是一个流行的开源MQTT代理,支持MQTT 3.1和3.1.1协议版本。Mosquitto具有轻量级、易于安装和配置的特点,同时提供了良好的性能和可扩展性。它还支持多种操作系统和平台,包括Linux、Windows和MacOS等。Mosquitto的社区活跃,拥有广泛的用户群体和开发者支持。
  • VerneMQ:是一个高性能、可扩展的开源MQTT代理,支持MQTT 3.1.1和5.0协议版本。VerneMQ采用Erlang语言编写,具有出色的并发性能和容错能力。它支持集群部署和水平扩展,可以处理大量的连接和消息。VerneMQ还提供了丰富的插件和扩展机制,方便用户进行定制开发。
  • HiveMQ:是一个企业级的开源MQTT代理,支持MQTT 3.1、3.1.1和5.0协议版本。HiveMQ采用Java语言编写,具有高度的可配置性和可扩展性。它提供了丰富的功能和特性,包括集群支持、负载均衡、SSL/TLS加密、WebSockets支持等。HiveMQ还提供了商业支持和服务,适合企业级用户
  • EMQ X 是一个基于 Erlang/OTP 平台开发的开源物联网 MQTT 消息服务器,是目前开源社区中最流行的 MQTT
    消息服务器之一。它支持 MQTT 5.0 和 3.x 协议标准,具有良好的伸缩性、安全性和可靠性,同时也提供了丰富的功能和特性,如海量连接、高性能、低时延、高可用等。
  • NanoMQ:是一个轻量级、高性能的开源MQTT代理,由EMQ X项目提供。NanoMQ采用C语言编写,具有较低的资源消耗和出色的性能表现。它支持MQTT 3.1.1和5.0协议版本,同时提供了多种连接方式和认证机制。NanoMQ还具有良好的可移植性,可以部署在多种操作系统和平台上。

1.概览

本文选取的开源 MQTT Broker 主要基于以下两个标准:

  • 开源项目的社区规模、受欢迎程度和项目活跃度。
  • 与资源受限的工业设备和网关的兼容性。
    基于此,我们选出了三款最热门的开源 MQTT Broker:
  • EMQX:GitHub 上 Star 数最多的 MQTT Broker,拥有 11.6k Stars。EMQX 在启动时的内存占用约为
    50M,支持集群功能。
  • Mosquitto:Star 数位居第二但是使用最为广泛的 MQTT Broker。它采用单线程架构,在启动时的内存占用不到 1M。
  • NanoMQ:目前最新且最活跃的 MQTT Broker 之一。它支持多线程和异步 IO,在启动时的内存占用约为2M。

以下是这三个项目在 GitHub 上的相关概况:
在这里插入图片描述

2. Mosquitto

在这里插入图片描述
优点

  • 轻量级、占用资源少
  • 简单易用
    缺点
  • 不支持多线程和集群
  • 不支持在云端部署

3. NanoMQ

在这里插入图片描述
优点

  • 支持多线程和异步 IO
  • 启动占用资源少
  • 可以与无代理协议桥接
    缺点
  • 项目还处于早期阶段
  • 不支持集群

4. EMQX

在这里插入图片描述
优点

  • Masterless 集群和高可用性
  • 具有高性能和低延迟
  • 提供丰富的认证机制
  • 即可以在边缘部署也可以在云端部署
  • 首个支持 MQTT over QUIC 的 MQTT Broker
    缺点
  • 安装和配置相对复杂
  • CPU 和内存使用率较高
5. EMQX简单压测截图

在这里插入图片描述
原文链接:https://www.emqx.com/zh/blog/top-3-open-source-mqtt-brokers-for-industrial-iot-in-2023

MQTT是一种轻量级的消息传递协议,广泛应用于物联网设备和应用中。开源MQTT C语言源码提供了高度灵活性和可定制性,方便用户进行二次开发和定制。下面是对开源MQTT C语言源码的回答: MQTT C语言源码的开源意味着其代码对所有用户开放,并可免费使用和修改。这使得开发者能够根据项目需求自由地扩展和改进源码,以满足特定需求。 MQTT C语言源码通常包含客户端实现的代码,可用于连接到MQTT代理服务器,并进行发布和订阅消息。例如,这些源码可以帮助用户编写一个自定义的MQTT客户端,用于监控和控制物联网设备。它们提供了与MQTT协议相关的基本功能,如建立和维护与服务器的连接、订阅主题、发布消息等。 除了基本功能外,开源MQTT C语言源码通常还包含一些高级特性和扩展功能,例如负载均衡、QoS(服务质量)支持、数据压缩、安全认证等。这些特性可以帮助用户提高性能、可靠性和安全性。 通过使用开源MQTT C语言源码,开发者可以了解MQTT协议的实现细节,以及如何构建一个高效、可靠的物联网应用。他们可以学习和参考源码中的设计模式、数据结构和算法,进一步优化和定制代码。此外,开源社区也为使用者提供了相互交流和解决问题的机会。 总之,开源MQTT C语言源码为用户提供了自由灵活的物联网开发平台,它可以满足各种项目需求,并能够通过自定义和扩展代码实现更高级的功能和性能。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

兮++

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

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

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

打赏作者

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

抵扣说明:

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

余额充值