如何与不可见的主服务器建立主从连接?

如何与不可见的主服务器建立主从连接?

我知道,这个问题一开始听起来可能很奇怪,但让我解释一下一些事情,我相信你会明白我的问题:

我有一个树莓派记录我家里气象站的所有数据。所有这些数据存储在一个MariaDB 数据库。它每分钟更新一次。树莓派从外面是看不见的。

现在我想将此数据库复制到我的网络服务器。不必完全同步,延迟1-5分钟也可以(如果没有更好的解决方案)。

我的问题是主机是客户端,从机是服务器。我无法(也不想)让客户端在外部可见。有什么方法可以解决我的问题吗?

我创建了下面的图片来形象化地表达我的想法:

我的想法

答案1

PI 有一个 MariaDB(或 MySQL)主服务器(又称“Master”),对吗?而你正在考虑在“公共网络”中拥有一个副本。

如上所述,副本服务器从主服务器“拉取”,由于网络设置,这并不容易。但如果您使用的是 Linux,这是可能的 - 让 PI 设置“ssh 隧道”。

您的意思是连接不稳定?PI 必须能够注意到故障并在必要时重新建立连接。

另一种方法可以避免多个问题——跳过复制概念。毕竟,除了保存要传输到真实数据库的数据之外,PI 还有什么用处呢?

PI 向“公共”网络服务器发送 HTTP 请求应该不成问题。只需编写少量 PHP(或其他)代码即可将一分钟的读数存储在数据库中。(每分钟一个请求很简单;没有问题。)

1-5 分钟的延迟?我没看到任何计划出现这种情况。即使出现,数据也会丢失。天气数据(可能包括游泳池深度)变化速度不够快,甚至不足以保证每分钟一次。

另一个话题——看看最终会有多少数据。一年中会有 0.5M 个温度。尝试将这么多的数据发送到图形程序;它可能会阻塞。我建议您汇总数据,无论是在数据进入时,还是按小时汇总——最小值、最大值、最后值。对于平均值,保留总和并计数;然后计算平均值作为总和/计数总和。

相关内容