IOT网络中的数据库交互

问题描述 投票:0回答:1

假设我们在IOT网络中有几个(100)节点。每个节点都有有限的资源。在其中一个节点中运行了一个postgresql数据库服务器。现在每个节点都有几个(4-5)进程需要与此服务器交互以执行一些插入和选择查询。每个查询响应必须尽可能快,以使进程按预期工作。现在我想到一些方法可以做到这一点:

  1. 节点中的每个进程都会生成一个数据库客户端并执行查询。
  2. 节点中的所有进程都将其查询发送到localhost本身的目标,通过最佳数量的数据库客户端执行查询。这样,我们可以对数据库客户端的数量进行某种控制,例如通过优先级队列实现执行查询的优化,或者通过每个线程/进程中的单独数据库客户端在单独的线程/进程中执行查询。在这种情况下,我们可以控制客户端数量的优化,线程/进程的数量,必须执行的查询顺序的优先级。
  3. 每个节点通过某种网络协议将所有查询直接发送到数据库服务器,然后数据库服务器使用有限数量的数据库客户端现在在其自己的localhost数据库中执行查询,然后通过相同的通道将响应返回给每个节点。这样,它会增加延迟,但会使客户端数量保持最小。此外,我们还可以在这里实现一些优化,在不同的进程/线程中运行每个客户端等。在这种情况下数据库交互可以更快,因为客户端数量可以保持最小,它在localhost机器本身运行,但它增加了一些开销来传输查询响应数据回到节点的进程。

为了尽可能减少每个节点中的资源使用量并尽快查询响应,解决此问题的最佳策略是什么?

postgresql database-design architecture iot
1个回答
0
投票

在不知道网络细节的情况下,将正常使用选项3。原因:

  • 身份验证:通常,您不希望使用数据库用户对IoT设备进行身份验证。
  • 安全性:通过使用特定的IoT协议,您可以确保使用基于TLS和证书的服务器身份验证。
  • 协议兼容性:在升级情况下,必须确保可以独立于服务器节点升级客户机节点,反之亦然。数据库协议可能不是这种情况。
© www.soinside.com 2019 - 2024. All rights reserved.