kafka关于offset迁移问题

雁过留声 发表于: 2017-01-19   最后更新时间: 2017-01-19 17:06:34   6,101 游览

我按照官网的滚动升级把kafka集群从0.8.1升级到0.10.1.1,现在想把offset从zk迁移到kafka。步骤如下:

  1. 添加这两个参数:offsets.storage=kafka、dual.commit.enabled=true

  2. 设置dual.commit.enabled=false

现在消费是正常的,没有错误,但是offset似乎没有存到kafka。判断依据是教程中的KafkaOffsetMonitor,如果设置offsetStorage为zk,则有数据,设置为kafka,没有数据。

有以下两个问题:

1、怎么确定offset确实存在kafka?
2、是不是消费端也必须升级到0.10.1.1才能实现offset迁移?也就是说offset的存储跟消费客户端是否有关系

望赐教

发表于 2017-01-19

0.10.1.1默认就是存放在kafka中了。
KafkaOffsetMonitor的方式判断是可以的。

雁过留声 -> 半兽人 7年前

默认存在kafka我就不用添加offsets.storage=kafka、dual.commit.enabled=true配置了吧,感觉也没用,0.10.1中没有它们了

半兽人 -> 雁过留声 7年前

不用,如果你想换回zk的时候才需要。

雁过留声 -> 半兽人 7年前

但是这样有个问题,就是0.8的offset是存在zk的,集群升级到0.10.1,客户端也升级了,此时offset是存到kafka的,跟之前的offset连不上了,会丢失一部分数据

半兽人 -> 雁过留声 7年前

会同步一份到kafka的。

雁过留声 -> 半兽人 7年前

我测试的没有同步,输出所有参数发现上面两个参数已经不支持了

半兽人 -> 雁过留声 7年前

支持的。https://www.orchome.com/29
这里有切换的详细步骤。

雁过留声 -> 半兽人 7年前

我测了一下还是断续的,我先是用0.8.1的consumer去跑 ,然后停掉,用0.10.1的consumer去跑,就接不上了,0.10.1的配置里加了dual.commit.enabled=true

半兽人 -> 雁过留声 7年前

consumer不能停,如果停了offset就不提交了,同步就没有作用了。

雁过留声 -> 半兽人 7年前

那要怎么搞呢?不停止0.8.1的consumer同时跑0.10.1的consumer?我刚测了一下同一个数据会被消费两次,0.10.1没有group.id配置了

搞错了,我再测试一下

另外,消费者版本要大于0.9版本。

你的答案

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