迁移 或 添加节点

第一步 部署一台新节点

server.properties和老节点基本一样 需要修改下面几处:

# 这个是新节点ID,自己设置个新的就行
broker.id=2
# 这个是新节点的ip地址
host.name=10.25.115.223

第二步 确定迁移的topic

cd 到kafka的bin目录下 创建一个文件,命名为topics-to-move.json

内容如下:
{
    "topics": [
        {
            "topic": "test1"
        },
        {
            "topic": "test2"
        },
        {
            "topic": "test3"
        }
    ],
    "version": 1
}

第三步 生成迁移配置

执行下面命令 并且将返回内容写入reassignment-node.json

./kafka-reassign-partitions.sh --zookeeper 10.25.115.223:2181 --topics-to-move-json-file topics-to-move.json --broker-list "1,2" --generate

这里broker-list是broker列表 修改成你自己的

第四步 执行迁移 和 查看进度


./kafka-reassign-partitions.sh --zookeeper 10.25.115.223:2181 --reassignment-json-file reassignment-node.json --execute

./kafka-reassign-partitions.sh --zookeeper 10.25.115.223:2181 --reassignment-json-file reassignment-node.json --verify

第五步(如果是添加新节点可忽略这步)

将所有product的指向新节点.最后把consumer也改到新节点,就大功告成了

问题

kafka verify查看状态 一直处于 is in progres

这是由于新的节点并不可用,可以写个简单的product程序测试是否可以写入. 不好使的原因可能是因为host.name配置的问题,kafka经常在host.name上出问题,可以尝试修改advertised.host.name=10.25.115.223,(注意改成你自己的地址),如果没有这个参数,可能是版本低.

kafka 新节点 没有反应 也不同步数据

解决方法同上

05-15 05:06