我在应用程序中使用Cosmos Change Feed Processor使用Java来消费Cosmos Change Feed Cosmos NoSQl DB容器
-
根据文档,如果使用Change feed processor方法,那么在我们开始消费变更提要时,在该点之前的所有插入/更新都将作为单个快照交付.
-
由于我正在进行的过程是在非生产环境中进行的(在Prod中进行之前进行测试),因此self 的更换饲料消耗开始以来,容器没有大量插入/更新.
从以上2点,我们可以得出结论,变更提要处理器(运行和消费更新时)返回的估计延迟不应比容器中文档总数高出多倍
然而,我认为估计的滞后约为1.3亿条,因为我的容器中只有约700万条记录.
我的容器只有1个物理分区(因此只有1个Change feed处理器正在运行),下面是我用来计算估计延迟的代码.
AtomicInteger totalLag = new AtomicInteger();
List<ChangeFeedProcessorState> currentState = changeFeedProcessor.getCurrentState().block();
if (CollectionUtils.isEmpty(currentState)) {
System.out.println("Unexpected METRICS :: STATES is empty");
continue;
}
for (ChangeFeedProcessorState changeFeedProcessorState : currentState) {
totalLag.addAndGet(changeFeedProcessorState.getEstimatedLag());
}
System.out.println(totalLag.get());
有人能提供他们对此的专业知识吗