首先:我是新手。这是我第一次在重要项目中工作。
这是我的计划:
现在如何工作:
锉刀的状态基于连接到同一计算机的其他锉刀。计算机具有一种算法来计算这些状态。
锉刀还会每秒生成一次数据,并使用http请求将其直接发送到服务器。
服务器根据锉刀属性向用户显示一个页面,用户希望在其中访问锉刀状态,内存负载,摄像机流以及发送命令。
每台新计算机都需要在服务器计算机上注册,每台计算机和Rasp属性也需要注册。
因此,如果我将新相机添加到锉刀,则需要有人更新服务器数据库。
这个方法不是很可扩展。我的目标是一个非常可扩展的解决方案。
所以,我正在考虑:
答案 0 :(得分:0)
您为什么要打扰中间计算机/数据库?让Raspberry向中央服务器发出HTTP请求以“注册”自身,并使其定期将其内容发送到该中央服务器。
如果负载太大,则将该集中式服务器划分为应用程序/数据库层,并对应用程序层进行负载平衡。如果数据库上的负载仍然过多,请重新构建数据库。
拥有多个“真相”来源是应用程序设计最大的失败之一。不要尝试使您的问题与之同步,只需创建一个真相即可。如果您需要将集中式数据库扩展到更高的级别,请查看适合该解决方案的解决方案,例如NoSQL解决方案,而不是尝试将其分发给客户端。
答案 1 :(得分:0)
用这种方法,最好是计算机发送信息或服务器要求它?
让服务器在需要时……在可能的时候请求数据!如果计算机在感觉到数据时就发送数据,则服务器可能会出现性能问题。
服务器可以通过数据库同步访问“计算机”数据库(我需要对此进行更好的研究)。因此,对于单个API而言,没有,对服务器同步的只有单个数据库。
尝试仅使复制成为单向复制,因此请确定用于计算机数据的表,并且不要在服务器中写入这些表。 数据库复制可能是信息共享的解决方案,但是由于架构结构,它意味着系统之间的大量耦合。隔离共享表。
建议?
每台新计算机都需要在服务器计算机上注册