关于Kafka Cosumer异步commit offset的保序问题

Icarus 发表于: 2018-02-27   最后更新时间: 2018-02-27 12:01:27   4,566 游览

Kafka Consumer提供了异步api提交offset(即commitAsync()方法),

1 commitAsync(offset = 00001)
2 commitAsync(offset = 00002)
3 commitAsync(offset = 00003)

按照上面顺序执行,kafka broker能否保证最终存储的offset=00003?
如果请求3先到达broker,那么请求3提交的offset是否会被最终覆盖?或是不被覆盖,但请1、2被拒绝?

发表于 2018-02-27
添加评论

博主这个问题最后解决了吗

如果3先到,则3会被覆盖的。

弄个一个AtomicLong atoOffset,用来存储已提交的offset,如果当前要提交的offset<atoOffset,则不提交

弄个一个AtomicLong atoOffset,用来存储已提交的offset,如果当前要提交的offset<atoOffset,则不提交

半兽人 ->   续、 6年前

那你应用突然重启呢?考虑过这种场景吗

你的答案

查看kafka相关的其他问题或提一个您自己的问题