kafka批处理和kafka请求之间的差异



我在任何地方都找不到满意的答案,很抱歉这个问题看起来微不足道:

在Kafka中,在生产者端,一个请求是否可以包含对不同分区的多个批处理
我在文档中看到单词batch和requests被用作同义词,我希望能对此有所澄清。

如果是,这将如何影响ack策略
确认是按批次还是按请求?

Kafka请求(和响应(是通过网络在Kafka客户端和代理之间发送的消息。Kafka协议使用了许多类型的请求,您可以在Kafka的协议文档中找到它们。

Produce和Fetch请求用于交换记录。它们都包含Kafka批处理,它是协议描述中的RECORDS字段。Kafka批处理用于将多个记录分组在一起,并通过共享所有记录的元数据来保存一些字节。您可以在文档中找到批次的确切格式。

TLDR:请求/响应是Kafka客户端和代理之间交换的完整消息。有些请求包含作为记录组的Kafka批处理。

我不确定你问的是生产者还是消费者。以下是一些可能回答您问题的信息。

在生产商方面:

默认情况下,Kafka生产者将批量累积记录,最大可达16KB。默认情况下,生产者将有多达5个请求在飞行中,这意味着可以同时向Kafka发送5个批次。与此同时,生产商开始为下一批产品积累数据。

acks配置控制应答所需的代理数量,以便将每个请求视为成功。

在消费者方面:

默认情况下,Kafka消费者定期调用poll(),以获得每次轮询最多500条记录。

同样在默认情况下,Kafka消费者将每5秒确认一次。

这意味着使用者将提交在最后5秒内由poll()的所有后续调用轮询的所有记录。

希望这能有所帮助!

最新更新