Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cosmos DB Change在Kubernetes集群中提供任意数量的POD_Kubernetes_Azure Cosmosdb_Azure Aks_Azure Cosmosdb Changefeed - Fatal编程技术网

Cosmos DB Change在Kubernetes集群中提供任意数量的POD

Cosmos DB Change在Kubernetes集群中提供任意数量的POD,kubernetes,azure-cosmosdb,azure-aks,azure-cosmosdb-changefeed,Kubernetes,Azure Cosmosdb,Azure Aks,Azure Cosmosdb Changefeed,我的Cosmos数据库中有一个集合,我想观察它的变化。我有很多文件(官方和非官方)解释如何做到这一点。但有一件事我无法以可靠的方式工作:当我没有任何实例名称的公共引用时,如何接收对多个实例的相同更改 我这是什么意思?嗯,我正在Kubernetes集群(AKS)中运行我的工作负载。我在集群中有数量可变的实例,它们应该观察我的集合。为了让ChangeFeed正常工作,我必须为每个实例指定一个唯一的实例名。我唯一的候选人是pod的名字。它通常以-的形式出现。例如,pod-5f597c9c56-lxw5

我的Cosmos数据库中有一个集合,我想观察它的变化。我有很多文件(官方和非官方)解释如何做到这一点。但有一件事我无法以可靠的方式工作:当我没有任何实例名称的公共引用时,如何接收对多个实例的相同更改

我这是什么意思?嗯,我正在Kubernetes集群(AKS)中运行我的工作负载。我在集群中有数量可变的实例,它们应该观察我的集合。为了让ChangeFeed正常工作,我必须为每个实例指定一个唯一的实例名。我唯一的候选人是pod的名字。它通常以
-
的形式出现。例如,
pod-5f597c9c56-lxw5b

如果我使用pod名称作为实例名称,那么所有实例都不会收到相同的更改(这是我的要求),只有一个实例会收到更改(请参阅)。我可以做的是使用pod名称作为feed名称,然后所有实例都得到相同的更改。这就是我害怕在某个时候会咬我屁股的东西;当查看lease容器时,我可以看到每个提要名称的一组文档。随着pod名称的来来往往(名称的随机字符串部分),我担心容器会随着时间的推移而增长,产生一堆垃圾。我知道Cosmos可以处理大量的工作,但你知道,我喜欢保持东西整洁

我怎样才能保持这东西干净整洁?我真的不想在我的实例之间发明(或者重复使用!)某种协议来投票,让哪个实例从有限的名称集中得到哪个名称


一个“简单”的解决方案是构建我自己的实例名,如果AKS或Kubernetes为我的POD持有某种“索引”。我知道有状态集给了我这一点,但我不想使用有状态集,因为pod本身并不是真正有状态的(除了这个特殊方面!)。

我建议您继续使用pod名称作为唯一ID。如果您担心数据的蔓延,您可以监视容器并设计元数据的清理机制

<> P>为了至少有一次传递,需要在某个地方保存元数据来跟踪分区中的条目(ACK)/位置等。 作为另一种选择,Azure提供了基于检查点的实现。在EventProcessorClient中,还向存储帐户添加了一些元数据。

有一个新的(此时正在预览中)

区别在于:


在您的情况下,看起来不需要并行化(您希望所有实例都接收所有内容)。重要的部分是设计一个状态存储模型,该模型可以维护延续令牌(或者不维护,如果pod停机然后重新启动,您可能不想继续)。

我想我可能已经找到了一个解决方法。问题围绕Cosmos SDK中的更改提要处理器展开。我现在已经找到了提要迭代器,我想我可以用我自己的定制解决方案来完成这个。是的,我找到了迭代器/拉模型,但不幸的是它在预览中。我有点担心在大批量生产环境中使用预览依赖项。我(目前)通过使用多个提要解决了这个问题,在关机时,我删除了租约容器中的
*
。一旦拉模型从预览中出来,我就会使用它。我看到你是Cosmos开发团队的成员(或者至少从公关讨论来看你做出了贡献)。您是否有任何关于该功能何时推出预览版的详细信息可供分享?我们还没有任何正式的GA日期,因为我们仍在收集反馈,以确定哪一个是最终API。功能不应改变,但API表面(方法参数或名称)可能(或不,取决于反馈)略有改变。