Přeskočit obsah

Přiřazení oddílů Kafka

Když je přidán nový uzel Kafka, Kafka automaticky neprovádí přiřazení oddílů. Následující kroky se používají k provedení ručního přiřazení oddílů Kafka pro specifikované téma(y).

  1. Vstupte do shellu kontejneru Docker Kafka:

    docker exec -it kafka-1 bash
    
  2. Vytvořte /tmp/topics.json s tématy, jejichž oddíly by měly být přiřazeny v následujícím formátu:

    cat << EOF | tee /tmp/topics.json
    {
    "topics": [
    {"topic": "events.tenant.stream"},
    ],
    "version": 1
    } 
    EOF
    
  3. Vygenerujte JSON výstup pro přiřazení z seznamu témat, která mají být migrována. Specifikujte ID brokerů v seznamu brokerů:

    /usr/bin/kafka-reassign-partitions --zookeeper localhost:2181 --broker-list "121,122,221,222" --generate --topics-to-move-json-file /tmp/topics.json
    

    Výsledek by měl být uložen v /tmp/reassign.json a vypadat následovně, přičemž všechna témata a oddíly mají specifikováno své nové přiřazení:

    [appuser@lm11 data]$ cat /tmp/reassign.json
    {"version":1,"partitions":[{"topic":"events.tenant.stream","partition":0,"replicas":[122],"log_dirs":["any"]},{"topic":"events.tenant.stream","partition":1,"replicas":[221],"log_dirs":["any"]},{"topic":"events.tenant.stream","partition":2,"replicas":[222],"log_dirs":["any"]},{"topic":"events.tenant.stream","partition":3,"replicas":[121],"log_dirs":["any"]},{"topic":"events.tenant.stream","partition":4,"replicas":[122],"log_dirs":["any"]},{"topic":"events.tenant.stream","partition":5,"replicas":[221],"log_dirs":["any"]}]}
    
  4. Použijte výstup z předchozího příkazu jako vstup pro provedení přiřazení/převažování:

    /usr/bin/kafka-reassign-partitions --zookeeper localhost:2181  --execute --reassignment-json-file /tmp/reassign.json --additional --bootstrap-server localhost:9092
    

To je vše! Nyní by Kafka měla provést přiřazení oddílů během následujících hodin.

Pro více informací viz Přiřazení oddílů v Apache Kafka Clusteru.