如何选择简单的轻量级物联网服务器进行开发?

物联网 联网 协议
2021-06-02 23:46:59

我们正在探索不同的物联网用例和解决方案。为了便于探索、实验、设计、开发和测试可能的解决方案,我正在研究在本地设置一个简单的物联网服务器的可能性。

因此,我想了解为 IoT 设备提供服务的服务器的底层架构。从广义上讲,物联网设备连接为数据提供服务并使信息可供其他设备使用的服务。这很简单。

目前可能的物联网边缘设备将使用 Wi-Fi,但计划迁移到低数据速率、低功耗协议,例如 ZigBee、BLE,或者可能是 Z-Wave,此时我将需要某种类型的集线器. 数据有效负载约为 100 字节,在高峰时传输可能高达每分钟一个事务。物联网边缘设备将主要上传数据,偶尔会下载到设备。

有人建议我研究MQTTRabbitMQ作为可能的选择。此外,我在撰写本文时正在研究“在浏览器中实时显示 MQTT 消息”。

以下是我认为相关的几个问题:

  • 物联网服务器与网络服务器、邮件服务器或 FTP 服务器有何不同?
  • 基本物联网服务器的底层架构是什么?
  • 在考虑简单、轻量级的物联网服务器时,哪些特性很重要?
2个回答

我来回答你的第一个问题。我认为每个...问题只问一个问题会更好:)

物联网服务器与网络服务器、邮件服务器或 FTP 服务器有何不同?

  • Web 服务器通过 HTTP 来提供网页。
  • 邮件服务器通过 POP/IMAP/SMTP 来交换电子邮件。
  • FTP 服务器使用 FTP 协议进行文件传输。

本质上,它们只是在客户端和服务器之间传输信息的所有方式。物联网服务器也不例外,它只是通过“物联网”协议在客户端和服务器之间进行通信。传递的信息不是网页、电子邮件或文件,而是诸如“当前温度为 20C”之类的消息。示例 IoT 协议是MQTTCoAP

物联网服务器与网络服务器、邮件服务器或 FTP 服务器有何不同?

正如@ralight 所指出的,物联网服务器与物联网协议栈一起工作。这不仅限于一个 OSI 层,实际上每个阶段都可以或可以针对 IoT 使用进行优化,当然也需要新的协议。

硬件也可能不典型:在小型设置中,像 Raspberry PI 这样的数据收集器设备可以全部或部分地保存服务器的任务。

部分意味着雾计算,数据在收集的地方进行处理,只有最终结果进入主服务器。

基本物联网服务器的底层架构是什么?

来自该站点的一些硬件规格:

在您的情况的假设假设中,假设 300 个客户端在服务器上同时保持打开状态,每个客户端每秒发送 10 条消息,相当于每秒 3000 条消息。相信我,即使是托管在具有 2 GB RAM 的双核上的代理也不会有任何显着消耗。

所以,基本的服务器硬件。

在考虑简单、轻量级的物联网服务器时,哪些特性很重要?

我对此没有太多了解,但我个人很想知道 Raspberry PI 作为某种 MQTT 服务器是否足够。我在 Quora 的某个地方读到 Esp8266 不是,但我看到了一个正常的桌面 Linux 在 RPI 上工作,所以为什么它也可以充当服务器。

不过,在尝试 Raspberry 之前要考虑的是所选服务堆栈的硬件要求。使用普通的服务器硬件,现在的内存量如此之高,不会有问题。

提到的 3000msg/sec 与 IoT 测试用例相比相对较高,并且 RPI3 具有 1G RAM。那是一半,所以这取决于在这种情况下消息是否填充了内存或裸 MQTT 需要多少。这会影响它的合适程度。