Rob*_*old 2 apache-kafka apache-kafka-streams
我的Kafka Streams应用程序通常需要大约100毫秒的时间,从发送消息到结果是在不同的主题上发送响应消息的时间.我可以使用哪些配置选项或最佳实践来最小化延迟?
这似乎与生产者配置有关linger.ms
.
来自(http://kafka.apache.org/documentation/#producerconfigs)
生产者将请求传输之间到达的任何记录组合到一个批处理请求中.通常情况下,只有在记录到达的速度超过发送速度时才会在负载下发生.但是,在某些情况下,即使在中等负载下,客户端也可能希望减少请求数量.此设置通过添加少量人工延迟来实现此目的 - 即,不是立即发送记录,生产者将等待达到给定的延迟以允许发送其他记录,以便可以将发送一起批处理.这可以被认为类似于TCP中的Nagle算法.此设置给出了批处理延迟的上限:一旦我们获得了分区记录的batch.size值,它将立即发送,无论此设置如何,但是如果我们为此分区累积的字节数少于这个字节,我们将'在指定时间内"等待"等待更多记录显示.此设置默认为0(即无延迟).例如,设置linger.ms = 5可以减少发送的请求数量,但是会减少5%的延迟,这些记录会在没有负载的情况下发送.
Kafka Streams将此值设置为100毫秒(普通生产者默认值为0毫秒)以增加吞吐量.
您可以通过StreamsConfig
参数减小值producer.linger.ms
.建议producer.
在Streams中为生产者配置添加前缀以隔离生产者/消费者配置.您可以使用StreamsConfig.producerPrefix(ProducerConfig.LINGER_MS_CONFIG)
参数名称以获得最大的便利:)
归档时间: |
|
查看次数: |
1940 次 |
最近记录: |