如何使用pykafka使用消息批处理或缓冲区生成kafka主题。我的意思是一个制作人可以在一个制作过程中产生许多信息我知道使用消息批处理或缓冲消息的概念,但我不知道如何实现它。我希望有人可以帮助我
答案 0 :(得分:0)
只需使用send()
方法即可。您不需要自己管理它。
send()是异步的。调用时,它将记录添加到缓冲区中 待处理记录发送并立即返回。这允许制作人 将个别记录分组在一起以提高效率。
您的任务只是为此配置两个道具: batch_size 和 linger_ms 。
生产者为每个分区维护未发送记录的缓冲区。 这些缓冲区的大小由'batch_size'配置指定。 使这个更大可以导致更多的批处理,但需要更多 内存(因为我们通常会为每个缓冲区提供一个缓冲区 活动分区)。
这两个道具将通过以下方式完成:
一旦我们获得了一个分区的batch_size值记录,它将立即发送,无论此设置如何,但是如果我们为此分区累积的字节数少于这个,我们将在指定的时间内“逗留”等待更多记录显示。
答案 1 :(得分:0)
PyKafka透明地处理生产者中的消息批处理 - 您不必做任何特殊操作以确保批量生成消息。 Producer
类提供了许多配置选项,可让您自定义批处理行为。 documentation中提供了这些选项的完整列表,但其中一些最重要的选项是:
max_queued_messages
- 当您produce()
发送更多邮件时,立即发送批次min_queued_messages
- 当您produce()
至少发出这么多邮件时,请发送批次linger_ms
- 自上次批次以来经过这么多时间后,发送批次