我搞不懂Kafka再分配区是如何为消费者服务的?
我从1个zk和1个kafka代理开始,创建一个replication=1,partition=1的测试主题。消费和生产。很好用。
我看到创建了消费者补偿主题。
现在我添加第二个代理,offset.topic.replication.factor=2。我负责,
kafka重新分配分区--zookeeper zookeeper1:2181--topics to move json文件topics-to-move.json--broker list“101102”--生成
生成的重新分配看起来不正确。即使有2个实时代理,也只显示一个副本。
我希望为每个分区获得以下副本:[101,102]或[201,101]
{
"version": 1,
"partitions": [
{
"topic": "__consumer_offsets",
"partition": 19,
"replicas": [101]
},
{
"topic": "__consumer_offsets",
"partition": 30,
"replicas": [102]
},
{
"topic": "__consumer_offsets",
"partition": 47,
"replicas": [101]
}, ...
谢谢你的建议。
-虚拟机
2条答案
按热度按时间xesrikrc1#
您可以使用重新分配工具来生成json,这对您有好处。在topics-to-move.json中,将
{"version":1, "topics":[{"topic":"__consumer_offsets"}]}
现在当你跑的时候kafka-reassign-partitions --zookeeper zookeeper1:2181 --topics-to-move-json-file topics-to-move.json --broker-list "101,102" --generate
您将从工具中获得建议的分区分配。将该文件另存为reassignment-proposed.json,并将旧的分配存储到rollback.json中。
使用该文件开始重新分配
/kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-json-file reassignment-proposed.json --execute
使用验证分配--verify
期权ylamdve62#
如果要增加主题的复制因子,请执行以下步骤:
创建一个包含重新分配计划的json文件。在您的情况下,文件可能如下所示:
运行以下命令以增加此内部主题的射频:
那就跑吧
kafka-topics.sh --describe
看看复制因子是否增加到2。