首页 > 解决方案 > MongoDB 更改流 - 重复记录/多个侦听器

问题描述

我的问题是这里前面讨论的延伸: Mongo Change Streams running multiple times (kind of): Node app running multiple instances

在我的例子中,应用程序部署在 Kubernetes pod 上。至少有 3 个 pod,最多 5 个 pod。上面链接中提到的解决方案建议在 $mod 运算符中使用<this instance's id> 。由于应用程序部署到 K8s pod,因此 pod 名称是动态的。如何为我的场景实现类似的解决方案?

标签: node.jsmongodbmongodb-querychangestream

解决方案


如果您正在运行无状态工作负载,我不确定您为什么要修复 POD(部署)的名称。

只有使用有状态集才能修复 POD 名称。

您应该使用 statefulset 而不是部署,复制控制器 (RC),但是,复制控制器已替换为 ReplicaSet。

StatefulSet Pod 具有由序数组成的唯一标识。对于任何有 N 个副本的 StatefulSet,StatefulSet 中的每个 Pod 都将被分配一个整数序号,从 0 到 N-1,这在 Set 中是唯一的。


推荐阅读