Kafka实时担保

svgewumm  于 2021-06-08  发布在  Kafka
关注(0)|答案(1)|浏览(303)

Kafka能保证消费者在消息(成功)生成后x毫秒内看到它吗?

背景:

我有一个系统,服务接受请求。服务b需要能够回答在某个特定时间内有多少请求被传入。服务b需要精确。我的计划是:
服务a接受请求,生成消息并等待至少一个副本的ack。当它得到它时,它会向用户发送它的请求是“在系统中”。
当服务b被请求时,我等待x ms,然后检查主题以获得新的请求。因此,我100%知道“now()-xms”时服务a的状态。
在这种情况下,kafka需要保证在生成消息后,我最多可以使用x毫秒。是这样吗?

91zkwejq

91zkwejq1#

在kafka中,一旦高水位线增加,消息就可以被消费。这保证在满足同步副本的最小数量之后发生。这里的权衡是延迟的持久性。如果您需要较低的延迟,那么只有在领导者处确认才会更快。但是,这并不像等待2个同步副本那样持久。当你回答“我什么时候可以消费”时,你实际上是在回答“Kafka什么时候承认了这封信?”

相关问题