首页 > 解决方案 > kafka 代理是否需要在消费者可以读取之前提交到磁盘

问题描述

一旦生产者向代理发送消息,代理是否需要刷新到磁盘才能将其提供给消费者?或者它可以在提交到磁盘之前直接从页面缓存内存发送。

我们正在尝试将 kafka 用于股票市场数据,在这些数据中,短时间的消息速率可能非常高,因此在暴露给消费者之前写入/刷新到磁盘会增加严重的延迟。

标签: apache-kafka

解决方案


Kafka 使用复制来保持数据的一致性。系统将不一致,如果数据在写入/刷新之前提供给消费者,然后分区的领导者在将数据刷新到磁盘之前丢失。

只有在将消息写入分区的特定段后,消息才可供消费者使用。

只允许从领导分区读取消息,并且只能读取已复制到所有同步副本的消息。如果我们尝试获取那些未同步复制的消息,我们将得到一个空响应复制品。

我们应该调整以下参数,以便同步副本与领导者同步,以便消费者可以非常快速地读取数据。

replica.lag.time.max.ms ,replica.fetch.wait.max.ms 和replica.fetch.min.bytes

在此处输入图像描述


推荐阅读