如果当前时间戳为t,则追加到kafka日志?

6jjcrrmo  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(354)

我想将apachekafka用于类似事件源的场景。我正在寻找一种方法来模拟写入日志流时的乐观并发。i、 例如,如果我试图写一个新的日志条目,这个条目是基于之前的时间戳t的知识创建的,我希望在我开始写我的事件之前,如果其他人同时更新了流(到时间戳t'),我会得到一个异常。
有没有一种方法可以实现与apachekafka的乐观并发?

u91tlkcl

u91tlkcl1#

我认为你不应该试图在生产者那里解决这个问题,在消费者那里解决这个问题。我假设t'>t(即t'比t晚),但是 message(T') 是以前写的 message(T) . 你应该做以下事情
确保这两条消息最终都在同一个分区中,要么给它们相同的密钥,要么执行自己的路由,要么只使用一个分区。
将时间戳作为消息的一部分。
在消费者中丢弃可以追溯到时间的消息。
什么时候 message(T) 到了消费者那里,它就会回到过去,因为 message(T') 已经处理过了,所以 message(T) 按要求放置。

相关问题