Kafka重新分配消费者补偿不正确?

o2g1uqev  于 2021-06-07  发布在  Kafka
关注(0)|答案(2)|浏览(227)

我搞不懂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]
    }, ...

谢谢你的建议。
-虚拟机

xesrikrc

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 期权

ylamdve6

ylamdve62#

如果要增加主题的复制因子,请执行以下步骤:
创建一个包含重新分配计划的json文件。在您的情况下,文件可能如下所示:

{"version":1, "partitions":[
  {"topic":"__consumer_offsets","partition":0,"replicas":[101,102]}, 
  {"topic":"__consumer_offsets","partition":1,"replicas":[102,101]},
  {"topic":"__consumer_offsets","partition":2,"replicas":[101,102]},
  {"topic":"__consumer_offsets","partition":3,"replicas":[102,101]},
  ...
  {"topic":"__consumer_offsets","partition":49,"replicas":[101,102]}
]}

运行以下命令以增加此内部主题的射频:

bin/kafka-reassign-partitions.sh --zookeeper localhost:2181 --reassignment-json-file reassign.json --execute

那就跑吧 kafka-topics.sh --describe 看看复制因子是否增加到2。

相关问题