omi*_*138 4 java apache-kafka apache-kafka-streams
我试图了解与偏移提交相关的kafka 流的行为。Streams 手动提交偏移量,因为自动提交false
在 Streams 中设置为“ ”。如果我保留commit.interval.ms = 0
,流是否会正常工作怎么办?
如果您设置commit.interval.ms = 0
Kafka Streams 将“尽快”提交。在实现中,有一个轮询进程循环来检查是否需要提交。如果您设置commit.interval.ms = 0
此检查,则true
每次都会评估为,因此每次都会发生提交。
检查提交条件时是内部实现细节,并且没有公共合同检查条件的频率。请注意,不建议过于频繁地提交,因为它会给 Kafka Streams 客户端和代理带来额外的负载,因为提交是同步操作而不是免费的。
从评论:
我们想检查是否可以将提交存储在外部数据库中..所以我们想知道我们是否可以仅在数据库端实现偏移提交管理
使用 Streams API,您不能在外部数据库中存储偏移量。Kafka Streams 使用 Kafka 的组管理和提交 API,您无法更改这一点。
您想通过将该配置参数设置为零毫秒来实现什么目的?根据官方文档,Streams 的默认值为 100 毫秒:
请注意,如果“processing.guarantee”设置为“exactly_once”,则默认值为 100,否则默认值为 30000。
来自官方 Kafka Streams 文档 - https://kafka.apache.org/documentation/#streamsconfigs
更新:
根据您的评论,我相信是的,您应该能够将提交存储在外部数据库中,并且提交间隔配置仍然适用。
另外,请务必仔细阅读有关在 Kafka 之外存储偏移量的影响的文档 - https://kafka.apache.org/20/javadoc/org/apache/kafka/clients/consumer/KafkaConsumer.html#rebalancecallback
归档时间: |
|
查看次数: |
5905 次 |
最近记录: |