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

Mongodb 网络可用时同步两个脱机主机,mongodb,Mongodb,我有一个用例,需要在一个场地设置两个物理站。每个站点将运行两个应用服务器和一个mongodb服务器 我不能依赖场馆的互联网接入,所以我需要我的应用程序能够离线工作,并每隔一段时间“同步”dbs 我最初想用两个主机与远程主机同步,但直到mongodb无法进行主机复制 我已经读过关于主动方法的文章,但是,它不允许我在脱机时写入不同的碎片 我的想法快用完了,任何推荐都将不胜感激 ------更新我正在努力实现的目标: 我在一个有两个入口的地方工作。这样做的目的是能够从参加活动的人那里获取一些信息(姓名

我有一个用例,需要在一个场地设置两个物理站。每个站点将运行两个应用服务器和一个mongodb服务器

我不能依赖场馆的互联网接入,所以我需要我的应用程序能够离线工作,并每隔一段时间“同步”dbs

我最初想用两个主机与远程主机同步,但直到mongodb无法进行主机复制

我已经读过关于主动方法的文章,但是,它不允许我在脱机时写入不同的碎片

我的想法快用完了,任何推荐都将不胜感激

------更新我正在努力实现的目标:

我在一个有两个入口的地方工作。这样做的目的是能够从参加活动的人那里获取一些信息(姓名、电子邮件等)。注册后,我们将打印带有一些信息的姓名标签

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

额外注意事项: -活动会持续几天,有些人会在一夜之间丢失他们的名牌,他们应该可以去任何一个入口重新打印。所以我们应该能够找到他们的信息,即使他们在A口注册,但他们要求在B口重印

更多问题:
-我是不是想得太多了?也许场馆的网络+4G/LTE调制解调器作为备份就足够了?我宁愿不依赖它

我相信你想得太多了。如果遇到类似情况,我会这样做:

从描述上看,这两个站点根本不需要实时连接。我将在条目a中创建一个服务器,在条目B中创建另一个服务器,并在每天结束后整合他们的数据(如果需要)。这是因为:

  • 一个人不太可能在一天之内在这两个网站注册。如果他们在那天丢失了标签,我会告诉他们回到之前注册的地方,在那里重新打印。最糟糕的情况是,您将创建一个重复条目(应该很明显,这是重复的,因为没有人会在几秒钟内丢失标签),但我预计不会有数百人在一天内丢失标签
  • 如果与会者一夜之间丢失了标签,两台服务器都将同步数据,并且应该能够重新打印
  • 如果您担心场馆的Wifi接入,只需将电缆从服务器连接到打印站即可
  • 就我个人而言,我认为夜间同步根本不需要(请看人们注册两次的可能性)。我会在事件结束后从两台服务器收集数据。也就是说,除非您在第二天对来自两个条目的组合数据有特殊需求


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

    您描述的内容听起来像是有两个应用程序正在写入两个不同的服务器,有时您还想“同步”这两个服务器的内容。这是正确的吗?你是如何处理冲突的?对我来说,这听起来像是故意的“分裂大脑”场景,不是吗?@kevinadi说得对。我还没有开始这个项目。我试图了解什么是最好的方法,但似乎比我最初想象的要复杂得多。关于冲突,我可以接受“最近的胜利”。不幸的是,分布式系统中的“最近的胜利”并不像听起来那么简单。时钟可能会出现偏差、网络问题、客户端时钟不同步等。我认为在讨论解决方案之前,我们应该回顾一步,了解您试图实现的目标。请使用用例更新问题、您面临的情况、您正在尝试做的事情以及您的应用程序应该做的事情。@kevinadi感谢您花时间回复。用我想要达到的目标更新了这个问题。谢谢你的详细回答!你能告诉我在哪里可以阅读到整合数据的正确方向吗?不,我在考虑一个简单的整合,比如将所有数据从一台服务器插入到另一台服务器,这一点都不奇怪。