数据库 – 机器到机器通信的协议选择 – 级别:n00b
我正在为灌溉泵和连接的管道建立一个监控系统.到目前为止,我已经完成了传感器网络.一切都连接到微控制器板(实际上是4
Teensy 3.0板),并且板被编程为以预定间隔输出一串格式化数据(读数).
我想要做的是通过USB-serial将电路板连接到RaspberryPI(或其他一些SBC),让计算机将从传感器板接收的读数发送到远程服务器进行记录. 我考虑的选项是: 1 – Syslog …它很早就让我印象深刻,因为它似乎提供了我所需要的一切.虽然复杂性让我害怕. 2 – REST …让RaspberryPI将数据一行一行地通过网络发送到服务器上的CouchDB. 3 – HTTP …与node.js保持开放的HTTP连接并“写入”数据行.它当然需要由第二个node.js脚本接收以存储在DB中. 现在要求: ?它需要轻巧且相对快速.会有很多数据(1s间隔),RaspberryPI不是强大的. ?我非常想要压缩字符串的选项.上行链路通过3G,我希望采用“小”月度计划. ?加密会很好,但不是强制性的.偏执狂是强大的乡下人…… ?我真的需要这个像K.I.S.S.尽可能. 简而言之,我将此作为某种网络串行连接,计算机一行一行地连接到另一台计算机. 那么,我在这里的选择是否更可取?或者甚至更好,谁有更好的主意? 如果有人有一个好的观点,我老实说愿意接受编辑甚至重新发布问题. 编辑: 到目前为止,所有评论和答案都得到了赞赏和考虑. Syslog真的很棒,但我真的需要避免复杂性和开销.此外,经过一些测试后,RaspberryPI似乎在启动rsyslog后不久就停止了. 到目前为止,已经确定DBMS将成为CouchDB. 显而易见的选择是使用curl或残余的node.js服务器在数据到达时立即对数据库服务器进行REST调用.这虽然简单有效,但出于多种原因并不可取.安全也是一个问题;我不喜欢在直接调用DBMS的字段中使用微型PC的想法. 我开始获得赏金的原因是我希望有人可以提出以下几点的想法:“远程微型PC和DBMS之间的某种持久连接.数据将通过某种协议格式化并通过此连接转发为了在另一端接收.这种连接需要尽可能轻,尽可能少的开销“. 解决方法你有没有想过使用SMTP(电子邮件)? Raspberry有两个进程:一个读取数据并将它们附加到一个文件,另一个(可能在crontab中)移动文件(可能聚合一些)并通过电子邮件将它们发送到目标机器.这样,如果您可以(例如每20秒或每分钟发送一封电子邮件),您在采样频率和记录频率之间就没有耦合.邮件可以压缩,加密(使用SMTP TLS).此外它具有弹性:如果您丢失了上行链路,我们将在链路恢复时发送数据.从日志记录过程的角度来看,链接始终是“向上”. 在您的couchdb服务器(或连接到couchdb的其他计算机)上,您创建一个专用用户并在其.forward中放入一个脚本,解压缩消息并将其提供给couchdb. 如果您想进行身份验证,可以使用从共享密钥到PGP签名的许多方案! 我们这样做是为了提供我们的数据仓库,因为我们不希望它上面有任何类型的传入连接(https或ssh),诚然不是1s采样率(但数据量更大). 最后但并非最不重要的是,您可以单独测试每个组件(记录器,发送器,接收器和db-feeder),而无需运行所有基础结构. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |