apache-kafka - 更好地理解 Kafka 中的 Min Fetch 字节数?
问题描述
查看一些配置,我正在为 Kafka 调整以将记录批处理到文件中。
我看到min fetch bytes
这是跨主题的 N 个分区的单个轮询返回的最小字节数。这是我关心的场景:
我将 min fetch 设置100mb
为记录数据的价值。假设我有250mb
有价值的数据。我做了两次民意调查并坚持200mb
。现在..我已经50mb
坐在队列中,但我仍然希望它被处理,但不打算有更多数据进入。如果超时,它会抓住剩余的 50mb 吗?
解决方案
抱歉,我应该更仔细地查看文档。看到这个和超时一起使用。
fetch.max.wait.ms
通过设置 fetch.min.bytes,您可以告诉 Kafka 等到它有足够的数据发送后再响应消费者。fetch.max.wait.ms 让您控制等待多长时间。默认情况下,Kafka 最多会等待 500 毫秒。如果没有足够的数据流向 Kafka 主题来满足返回的最小数据量,这会导致最多 500 毫秒的额外延迟。如果您想限制潜在的延迟(通常是由于 SLA 控制了应用程序的最大延迟),您可以将 fetch.max.wait.ms 设置为较低的值。如果将 fetch.max.wait.ms 设置为 100 ms 并将 fetch.min.bytes 设置为 1 MB,则 Kafka 将收到来自消费者的 fetch 请求,并在它有 1 MB 数据要返回时或在 100 之后响应数据ms,以先发生者为准。
tl;博士如果在队列被填充之前超时超过,它只会返回剩余的 50mb
推荐阅读
- azure-sqldw - 为什么 sys.schemas 和 INFORMATION_SCHEMA.SCHEMATA 返回不同的结果?
- agens-graph - 如何删除 AgnsGraph 上的所有图表?
- c++ - 为什么不能在Visual C++中动态分配堆栈内存?但 gcc 可以做到
- django - 使用方括号问题中的 result.field_name 在模板中显示 haystack 搜索结果
- c# - 通过 IHttpClientFactory 忽略 SSL 连接错误
- c - 马里奥问题集的金字塔右对齐有困难
- sql-server - SQL Server 与 Docker 和实体框架的连接
- react-native - 如何在 react-native-simple-dialogs 插件上更改正面或负面按钮上的字体系列
- c# - 强制 .Net 程序使用 '.' 作为十进制符号
- android - android应用程序类启动时运行flutter代码