【问题标题】:mongo DB change strem with load balancing in production env在生产环境中具有负载平衡的 mongoDB 更改流
【发布时间】:2020-08-05 21:45:23
【问题描述】:

带有负载平衡的mongo更改流

任何人都可以帮助我们如何使用负载平衡服务器实现芒果更改流..? 当我进行负载平衡时,我们正在研究微服务架构面临的生产问题,当我在单个服务器上执行任何操作时,相同的代码部署在 4 个服务器上,从所有 4 个服务器触发更改流触发器。 所以我想要它应该从执行操作的同一台服务器触发

提前致谢

【问题讨论】:

  • 你能给我们看一些代码吗?
  • 当然@AvivLo我认为代码工作正常,因为它必须工作你可以检查我是否错了,请纠正我 async userWatch(db) { try { let userCollection = db.collection('用户');让 userChangeStream = userCollection.watch({ fullDocument: "updateLookup" }); userChangeStream.on('change', async (change) =>{ }) } }

标签: node.js mongodb stream changestream


【解决方案1】:

变更流是一个数据库级别的概念。从数据库中插入/更新/删除数据,这会产生更改事件。任意数量的订阅者都可以订阅更改事件,并对更改做任何他们想做的事情。 每个订阅者都会收到每个更改事件的通知。

更改流并不意味着通知应用程序发起所述更改的更改。这是多余的 - 应用程序已经知道它做了什么。

考虑重新表述您的问题,以解释您想要更好地完成什么。

【讨论】:

  • 我不知道您所说的“使用负载平衡服务器管理更改流”是什么意思。
  • 我有来自 4 个不同服务器的 4 个连接(在负载均衡器下),每当任何集合发生变化时,都会生成 4 个请求。所以我想停止这种行为,只有一个服务器应该创建该更改流请求有没有其他方法来管理这个问题,因为如果一台服务器出现故障,我们不能与单个订阅者一起使用更改流将停止,即数据同步将停止之间服务器对吧...?
  • 您正在描述一个工作队列,其中有许多实现。变更流是一种广播机制,听起来不适合您的任务。
  • 其实我还是不明白你问的是生产端还是消费端。
  • 我在问消费者方面
猜你喜欢
  • 1970-01-01
  • 2015-08-02
  • 2021-04-01
  • 2011-07-26
  • 2010-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多