【问题标题】:What is a reasonable value for StreamsConfig.COMMIT_INTERVAL_MS_CONFIG for Kafka StreamsKafka Streams 的 StreamsConfig.COMMIT_INTERVAL_MS_CONFIG 的合理值是多少
【发布时间】:2019-02-15 22:36:16
【问题描述】:

我正在寻找 Kafka Streams 的一些融合示例,配置值“StreamsConfig.COMMIT_INTERVAL_MS_CONFIG”的不同值让我有点困惑。

例如,在微服务示例中,

config.put(StreamsConfig.COMMIT_INTERVAL_MS_CONFIG, 1); //commit as fast as possible

https://github.com/confluentinc/kafka-streams-examples/blob/5.1.0-post/src/main/java/io/confluent/examples/streams/microservices/util/MicroserviceUtils.java

另一个,

// Records should be flushed every 10 seconds. This is less than the 
default
// in order to keep this example interactive.
streamsConfiguration.put(StreamsConfig.COMMIT_INTERVAL_MS_CONFIG, 10 * 
1000);

https://github.com/confluentinc/kafka-streams-examples/blob/5.1.0-post/src/main/java/io/confluent/examples/streams/WordCountLambdaExample.java

另一个,

// Set the commit interval to 500ms so that any changes are flushed 
frequently and the top five
// charts are updated with low latency.
streamsConfiguration.put(StreamsConfig.COMMIT_INTERVAL_MS_CONFIG, 
 500);

https://github.com/confluentinc/kafka-streams-examples/blob/5.1.0-post/src/main/java/io/confluent/examples/streams/interactivequeries/kafkamusic/KafkaMusicExample.java

在示例中的时间间隔从 1ms 变为 10000ms,我真正感兴趣的是系统中的 1ms 一直很重负载,去 1ms Commit Interval 会不会很危险?

谢谢解答..

【问题讨论】:

  • 如果您没有特定原因,请使用默认值 30 秒。提交意味着一定的开销,如果提交过于频繁,您可能会扼杀吞吐量——示例不显示配置,建议用于生产。

标签: apache-kafka-streams


【解决方案1】:

嗯,这取决于您希望提交记录的频率。它实际上是指内存中的Record Caching

https://kafka.apache.org/21/documentation/streams/developer-guide/memory-mgmt.html#record-caches-in-the-dsl

如果您想将每条记录视为输出,您可以将其设置为最小的数字。在某些情况下,您可能希望获取每个事件的输出,具有最低数字是有意义的。但在某些情况下,可以合并事件并产生更少的输出,您可以将其设置为更高的数字。

还要注意,Record 缓存受这两个配置的影响:

commit.interval.mscache.max.byte.buffering

缓存的语义是,只要commit.interval.mscache.max.bytes.buffering(缓存压力)中最早的一个命中,数据就会刷新到状态存储并转发到下一个下游处理器节点。

【讨论】:

  • 向 Kafka 集群提交偏移量也意味着一定的开销。您还会影响生产者的写入吞吐量,因为提交时生产者需要刷新所有挂起的写入。缓存只是众多方面的一方面。
猜你喜欢
  • 1970-01-01
  • 2022-01-22
  • 1970-01-01
  • 2021-04-23
  • 1970-01-01
  • 2017-04-09
  • 1970-01-01
  • 2020-01-08
  • 1970-01-01
相关资源
最近更新 更多