gpt4 book ai didi

apache-kafka - 卡夫卡新生产者超时

转载 作者:行者123 更新时间:2023-12-03 22:25:34 26 4
gpt4 key购买 nike

我正在使用新的 kafka 生产者客户端并将 timeout.ms 属性设置为 50 毫秒。

这是生产者中使用的完整配置:

props.put("acks", "1");
props.put("buffer.memory", "33554432");
props.put("retries", "1");
props.put("batch.size", "16384");
props.put("client.id", "foo");
props.put("linger.ms", "0");
props.put("timeout.ms", "50");

某些高负载时刻的请求平均响应时间为 4 秒,但我没有收到任何超时错误。

有人知道这个超时是如何计算的,什么时候开始计算,什么时候结束?有没有办法将超时配置为从调用生产者的发送方法的那一刻开始?

最佳答案

新款timeout.ms属性适用于 ack生产者的配置。例如考虑以下情况

ack = all
timeout.ms = 3000

在这种情况下 ack = all意味着领导者在收到完整的同步副本(ISR)集的确认之前不会响应,并且获得此确认的最大等待时间将为 3000 ms .如果它在给定时间内没有收到预期数量的确认,它将返回一个错误。

另请注意,此属性不考虑网络延迟。

从文档页面:

The configuration controls the maximum amount of time the server will wait for acknowledgments from followers to meet the acknowledgment requirements the producer has specified with the acks configuration. If the requested number of acknowledgments are not met when the timeout elapses an error will be returned. This timeout is measured on the server side and does not include the network latency of the request.



所以在你的情况下 ack=1 (我不是 100% 确定这一点,如果适用,我愿意接受任何更正)如果领导者无法在 50 毫秒内响应(将记录写入自己的日志后,没有等待所有追随者的完全确认)应该抛出错误。

关于apache-kafka - 卡夫卡新生产者超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30468158/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com