我按照官网的滚动升级把kafka集群从0.8.1升级到0.10.1.1,现在想把offset从zk迁移到kafka。步骤如下:
添加这两个参数:offsets.storage=kafka、dual.commit.enabled=true
设置dual.commit.enabled=false
现在消费是正常的,没有错误,但是offset似乎没有存到kafka。判断依据是教程中的KafkaOffsetMonitor,如果设置offsetStorage为zk,则有数据,设置为kafka,没有数据。
有以下两个问题:
1、怎么确定offset确实存在kafka?
2、是不是消费端也必须升级到0.10.1.1才能实现offset迁移?也就是说offset的存储跟消费客户端是否有关系
望赐教
0.10.1.1默认就是存放在kafka中了。
KafkaOffsetMonitor的方式判断是可以的。
默认存在kafka我就不用添加offsets.storage=kafka、dual.commit.enabled=true配置了吧,感觉也没用,0.10.1中没有它们了
不用,如果你想换回zk的时候才需要。
但是这样有个问题,就是0.8的offset是存在zk的,集群升级到0.10.1,客户端也升级了,此时offset是存到kafka的,跟之前的offset连不上了,会丢失一部分数据
会同步一份到kafka的。
我测试的没有同步,输出所有参数发现上面两个参数已经不支持了
支持的。https://www.orchome.com/29
这里有切换的详细步骤。
我测了一下还是断续的,我先是用0.8.1的consumer去跑 ,然后停掉,用0.10.1的consumer去跑,就接不上了,0.10.1的配置里加了dual.commit.enabled=true
consumer不能停,如果停了offset就不提交了,同步就没有作用了。
那要怎么搞呢?不停止0.8.1的consumer同时跑0.10.1的consumer?我刚测了一下同一个数据会被消费两次,0.10.1没有group.id配置了
搞错了,我再测试一下
另外,消费者版本要大于0.9版本。
你的答案