【发布时间】:2021-01-28 15:38:47
【问题描述】:
我们通过 Spring Cloud Stream 集成使用 Kafka Streams。我通过设置配置了要在所有内部 Kafka Streams 主题中使用的复制因子
spring.cloud.stream.kafka.streams.binder.configuration.replication.factor=${REPL_FACTOR}
它适用于 Kafka Streams 内部使用的大多数重新分区/更改日志主题。但是,此设置似乎对通过 Materialized#as(StoreSupplier) 手动创建的状态存储更改日志主题没有影响。对于这些主题,我仍然可以看到复制因子设置为默认值 1。也无法使用 Materialized#withLoggingEnabled(Map<String, String>) 设置它,因为它只接受主题级别的配置(replication.factor 是 Streams 配置)。这是 Kafka Streams 中的一个已知错误吗?我什么也找不到。如果是这样,是否有解决方法来增加这些变更日志主题的复制因子?
我们在代理端使用 Kafka v2.3.1,在客户端使用 2.5.0。
【问题讨论】:
-
我对流不太熟悉,但是您可以更改代理上的默认值。 kafka.apache.org/documentation/#default.replication.factor 不确定这是否有帮助。
-
描述说这个设置只适用于“自动创建的主题”,所以我猜只有auto.create.topics.enable设置为true(我们不是这种情况)。
-
看我的回答;我在 JIRA 中添加了一条注释来修复文档。另外,你用的是什么版本?我刚刚用 3.0.8 对其进行了测试,它按预期工作;查看我的答案的编辑。
标签: apache-kafka apache-kafka-streams spring-cloud-stream