不用担心。
来自知乎的答案:(huxihx《Apache Kafka实战》作者)
https://www.zhihu.com/question/302901830
如果你每天写1TB 的数据,你可以持续400万天
We don't roll back offset at this moment. Since the offset is a long, it
can last for a really long time. If you write 1TB a day, you can keep going
for about 4 million days.
Plus, you can always use more partitions (each partition has its own
offset).
Kafka的offset是Long型,如果累积到了最大值(Long.MAX_VALUE),那么再加1的话就会立即变成Long.MIN_VALUE(具体原理可以搜:二进制补码)。我不确定Kafka如果使用负值作为offset是不允许还是依然能够正常运转,大概率是不能工作吧,因为在一些源码中的确有offset >= 0的判断~~
offset突破64bit极值的可能性很低
自己写了一下代码:
public static void main(String[] args) {
Long result = Long.MAX_VALUE + 1;
System.out.println(result);
System.out.println("Long min value " + Long.MIN_VALUE);
}
-9223372036854775808
Long min value -9223372036854775808