当新kafka节点加入,集群之间会同步集群信息,客户端(消费者和生产者)随后也会同步收到kafka集群信息,之后进行心跳监测,当客户端进行健康监测时,发现有kafka节点不通,就会进行重新平衡,同时反馈到kakfa集群之间,但kafka集群之间都认为该节点正常(hostname能解析),所以当客户端同步集群信息时,该节点还会返回给客户端,客户端反复重新平衡,影响到消费者。
我们迁移通常是热迁,新加一个kafka节点到集群中,通过分区迁移工具,把要下架的kafka数据换到新的上面去。
因为数据是持续流入的,我们通常是这么做的。
好的老师 我大概明白您说的一部分 换节点正常在isr列表中 目测感觉写入没有受什么影响,但是消费者没有感知到,想这种变更ip的情况你觉得后续如何操作更合适呢(这个场景我们主要是避免不了的),还想听听您的看法和经验,而且我发现了一个事情,就是平衡我这边应该是自动开启的,比如说是10分钟一次,但是我发现当时只有很少很少一部分partition平衡了,后来是我手动执行了一次均衡,才把其它partition均衡回这个节点里面,也是很奇怪的一点,但是还是不清楚原因
id相同,kafka集群就会认为是相同的节点。只换ip,并且kafka配置指定的存储也是同样copy过去的话,那就没有问题。
注意,节点恢复之后,看看下节点是否已经进入到isr中了。
平衡可以关注一下:https://www.orchome.com/33