如何将规则和配置转移到边缘设备?

时间:2019-03-14 05:37:25

标签: database architecture iot data-synchronization

在我们的应用程序中,我们有一台服务器,其中包含实体以及它们之间的关系和存储在DB中的处理规则。到该服务器上,将连接n个客户端,例如raspberry pi,网关,android应用程序。

我想将配置和处理规则推送给这些客户端,以便他们读取某些数据时可以自行处理。这是为了使边缘设备具有可持续性,避免在服务器/网络出现故障时停机。

如何推/拉配置。我不想在客户端维护数据库并配置复制。但是问题在于,要为那些No.of客户端维护和修补DB会很困难。

还有其他更好的选择吗??

同时,我必须将日志推送到上游(服务器)。

谢谢。

1 个答案:

答案 0 :(得分:0)

我去过那里。您需要设备上的数据存储。对于这种范围的嵌入式Linux,按开发复杂度递增的顺序进行:

  • 变量:快速更改和检索,如果数据适合内存,则有意义。如果过程结束,则丢失。
  • 文件系统:不需要特殊的库,只需在某处进行读/写访问即可。如果数据足够小以适合内存并且在执行过程中变化不大(在缺少网络时在启动时读取,在服务器上写入更新)时可用。如果您可以将数据构造为一些对象变量,则可以将它们写入JSON文件,并且有许多关于Android应用程序其他文件存储选项的文档。
  • 内存数据存储,例如Redis:轻量级依赖性,可以自动执行消息传递和文件系统存储的备份。提供前两个的托管框架/混合体。
  • 轻量级数据库,尤其是 SQLite :轻量级SQL数据库,存储在一个文件中,在Android应用程序中很流行(可能已安装在许多目标设备上)。它可以在内存受限的环境中对较大的数据块进行频繁更改,但看起来不太合适。重的东西会变得更糟。

Redis replication很简单,但不加区别,因此,如果您的设备收到一个变化但相同的规则集,则通常是明智的。否则,在所有这些情况下,最简单的传输选项可能是请求并接收整个配置(获取字符串,下载JSON文件等)并解析接收到的值。