Kafka可以保证消费者(成功)产生x毫秒后会看到消息吗?
我有一个系统,其中服务A接受请求。服务B需要能够回答在一定时间内已经收到了多少个请求。服务B需要精确。我的计划是:
服务A接受请求,它生成一条消息,并等待至少一个副本的确认。做到这一点,它将向用户发送其请求在“系统中”。
根据服务B的要求,我等待了x ms。然后,我检查主题中是否有新请求。所以我在“ now()-x ms”处知道服务A的状态为100%。
在这种情况下,Kafka需要保证在生成消息后,我最多可以消耗X毫秒。是这样吗?
答案 0 :(得分:0)
在Kafka中,高水位标记增加后即可使用消息。确保已满足最小数量的同步副本后,才会发生这种情况。这里的权衡是等待时间的持久性。如果您需要较低的延迟,则仅对领导者进行确认会更快。但是,这不像在同步副本中等待2个持久。当回答“我何时可以消费?”时,您实际上是在回答“何时确认消息是由卡夫卡撰写的?”