前几天有个群友问我: kafka如何修改优先副本?...; 比如
我们把 「1」号分区的副本位置改成 [2,1,3]
改成这样之后, 还需要 执行 重新进行优先副本选举操作 ,例如通过kafka的命令执行
sh bin/kafka-leader-election.sh...实则并没有, 因为这里仅仅只是修改了 zookeeper节点的数据, 而bin/kafka-leader-election.sh 重选举的操作是Controller来进行的; 如果你对Controller...也就是说 就算我们执行了kafka-leader-election.sh, 它也不会有任何变化,因为优先副本没有被感知到修改了;
解决这个问题也很简单,让Controller感知到数据的变更就行了...// 这里转换成HashMap类型,切勿自定义类型,以防kafka节点数据后续新增数据节点,导致数据丢失
HashMap partitionMap = zkConfig.get(