网络可用时同步两个脱机主机

时间:2019-08-11 19:24:35

标签: mongodb

我有一个用例,我需要在一个场地上建立两个物理站。每个站点将运行几个应用程序服务器和一个mongodb服务器。

我不能依靠该场所的互联网访问,因此我需要我的应用程序能够脱机工作并不时地“同步”数据库。

最初,我想到要有两个主服务器以某种方式与远程主机同步,但是TIL认为mongodb无法进行主-主机复制。

我已经读过关于主动-主动方法的信息,但是,当我离线时,这不会让我写到另一个分片上。

我的想法不多了,任何建议将不胜感激。

------更新我要达到的目标:

我正在一个有两个入口的场所工作。这个想法是为了能够从参加活动的人那里获取一些信息(姓名,电子邮件等)。注册后,我们将打印带有一些信息的名称标签。

一切听起来都很简单,但是,如果可能的话,我想不要依赖场地的网络(互联网)。因此,这就是我开始努力找出最佳方法的地方。我想我想拥有一个远程mongo,但是如果网络出现故障,请继续在本地保存记录,并在网络再次可用时将其发送到远程mongo实例。

其他注意事项: -活动持续了几天,有些人在一夜之间失去了名字标签,他们应该能够进入任何一个入口并重新打印。因此,即使他们在入口A处注册,但我们要求在入口B上重新打印,我们也应该能够找到他们的信息。

更多问题: -我在想什么吗?也许会场的网络+ 4G / LTE调制解调器作为备份应该足够了?我宁愿不依赖它。

1 个答案:

答案 0 :(得分:1)

我相信您想得太多。如果遇到类似的情况,这就是我要做的事情:

根据描述,这听起来好像根本不需要实时连接两个站点。我将在条目A上创建一个服务器,在条目B上创建另一个服务器,并在需要时每天结束后每天合并它们的数据。这是因为:

  1. 一个人不太可能会在一天内在两个网站上注册。如果他们那天丢失了标签,我会告诉他们回到他们较早注册的地方,然后将其重印到那里。最坏的情况是,您将创建一个重复的条目(很明显是重复的,因为没有人会在几秒钟内丢失他们的标签),但是我预计不会有数百人在一天之内都丢失他们的标签。
  2. 如果参加者在晚上丢失了标签,则两台服务器都将同步数据,并且应该能够重新打印。
  3. 如果您担心场地的Wifi接入,只需将电缆从服务器连接到打印站即可。

就我个人而言,我认为根本不需要隔夜同步(请参阅人们两次注册的可能性)。事件结束后,我将只从两台服务器收集数据。也就是说,除非您对第二天的两个条目的合并数据有特定需求。

注意:请确保您至少运行3节点副本集。不建议在产品环境中运行独立实例。硬件/磁盘损坏是常见事件。