You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Cosmos ChangeFeed Processor多实例负载无法分发问题咨询

Azure Cosmos ChangeFeed Processor多实例负载无法分发问题咨询

我现在在使用Java服务基于Azure Cosmos ChangeFeed Processor处理所有变更事件,尝试启动多个服务实例,期望负载能在实例间分发,但目前所有消息都只被一个实例消费。

我的ChangeFeed Processor代码如下:

ChangeFeedProcessorOptions cfOptions = new ChangeFeedProcessorOptions();
cfOptions.setFeedPollDelay(Duration.ofSeconds(1));
cfOptions.setStartFromBeginning(false);

ChangeFeedProcessor changeFeedProcessorInstance = new ChangeFeedProcessorBuilder()
    .options(cfOptions)
    .hostName(hostName)//hostname is unique for each instance
    .leaseContainer(leaseContainer)
    .feedContainer(feedContainer)
    .handleChanges(
        documents -> documents.forEach(changeFeedProcessor::handleReceivedFeed))
    .buildChangeFeedProcessor();
changeFeedProcessorInstance
    .start()
    .subscribeOn(Schedulers.fromExecutor(Executors.newFixedThreadPool(CDC_MAX_THREADS)))
    .subscribe();

我的Azure Cosmos Maven依赖配置:

<dependency>
  <groupId>com.azure</groupId>
  <artifactId>azure-cosmos</artifactId>
  <version>4.63.2</version>
</dependency>

被监控容器的分区情况:我有1个物理分区,大约300K个逻辑分区,这个数据是通过以下SQL查询计算得到的:

SELECT COUNT(1)
FROM (SELECT distinct c.partitionKey
      FROM c) AS t

我猜测当前只有一个实例获取了租约,想请教如何配置才能确保每个实例都能至少获取到一个租约,实现负载的合理分发。

备注:内容来源于stack exchange,提问作者Ryuzaki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 10:13:06