迁移 或 添加节点
第一步 部署一台新节点
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 新节点 没有反应 也不同步数据
解决方法同上