In Managed Service per Apache Kafka, puoi modificare i broker assegnati a una partizione di un argomento. La riassegnazione delle partizioni degli argomenti può aiutarti a bilanciare il carico su ogni broker o a isolare il carico su un broker con traffico elevato.
Panoramica
Quando crei un nuovo argomento in Managed Service per Apache Kafka, scegli il numero di partizioni e il fattore di replica.
Il fattore di replica è il numero di broker che archiviano una replica di ogni partizione nell'argomento. Uno di questi broker funge da leader, mentre gli altri sono follower. Il leader gestisce le richieste di scrittura per la partizione e i follower replicano i dati. Se il leader presenta errori, uno dei follower viene eletto leader.
Se il bilanciamento automatico è abilitato su un cluster, lo scale up del cluster potrebbe comportare la riassegnazione delle partizioni per mantenere approssimativamente lo stesso numero di partizioni per broker.
Potresti voler modificare l'assegnazione della partizione per i seguenti motivi:
Esegui lo scale up di un cluster con il bilanciamento del carico automatico disattivato e un broker appena aggiunto non gestisce alcun carico.
Una partizione riceve molto più traffico rispetto alle altre e vuoi isolare il carico spostando le altre partizioni su broker diversi.
Puoi riassegnare le partizioni utilizzando gli strumenti a riga di comando di Kafka, come descritto nella sezione successiva.
Modifica l'assegnazione delle partizioni
Per modificare i broker assegnati alle partizioni, segui questi passaggi.
Installa gli strumenti a riga di comando di Kafka su una VM di Compute Engine. La VM deve essere in grado di raggiungere una subnet connessa al cluster. Per saperne di più, consulta Produci e consuma messaggi con gli strumenti a riga di comando di Kafka.
Ottieni un elenco di broker nel cluster chiamando il comando
kafka-configs.sh --describe.kafka-configs.sh --describe --entity-type brokers \ --bootstrap-server=BOOTSTRAP_ADDRESS \ --command-config client.propertiesSostituisci BOOTSTRAP_ADDRESS con l'indirizzo di bootstrap del cluster. Il comando restituisce un elenco di ID broker e impostazioni dinamiche del broker.
Output di esempio:
Dynamic configs for broker 10 are: Dynamic configs for broker 11 are: Dynamic configs for broker 12 are: Default configs for brokers in the cluster are:In questo esempio, gli ID broker sono
10,11e12. Non sono presenti impostazioni del broker dinamico.Crea un file JSON che elenchi gli argomenti da riassegnare a broker diversi. Formatta il file come nell'esempio seguente:
{ "topics": [ { "topic": "topic-1" }, { "topic": "topic-2" } ] }Chiama il comando
kafka-reassign-partitions.shcon il flag--generateper ottenere la mappatura delle partizioni corrente e generare una riassegnazione delle partizioni candidata.kafka-reassign-partitions.sh --generate \ --bootstrap-server=BOOTSTRAP_ADDRESS \ --topics-to-move-json-file TOPICS_FILE \ --broker-list BROKER_LIST \ --command-config client.propertiesSostituisci quanto segue:
- TOPICS_FILE: il percorso del file JSON del passaggio precedente.
- BROKER_LIST: un elenco separato da virgole di broker a cui devono essere riassegnate le partizioni dell'argomento. Esempio:
11,10.
Output di esempio:
Current partition replica assignment {"version":1,"partitions":[{"topic":"topic-1","partition":0,"replicas":[12,10],"log_dirs":["any","any"]}]} Proposed partition reassignment configuration {"version":1,"partitions":[{"topic":"topic-1","partition":0,"replicas":[11,10],"log_dirs":["any","any"]}]}In questo esempio, la partizione 0 di
topic-1è assegnata ai broker12e10.Crea un file JSON che definisca una mappatura dei broker alle partizioni. Puoi iniziare con la riassegnazione proposta nel passaggio precedente, modificandola in base alle tue esigenze.
Ad esempio, la seguente mappatura sposta la partizione 0 di
topic-1ai broker11e10.{ "version":1, "partitions":[ { "topic":"topic-1", "partition":0, "replicas":[11,10] } ] }Assegna le partizioni chiamando il comando
kafka-reassign-partitions.sh --execute.kafka-reassign-partitions.sh --execute \ --reassignment-json-file PARTITION_MAP \ --bootstrap-server=BOOTSTRAP_ADDRESS \ --command-config client.propertiesSostituisci PARTITION_MAP con il percorso del file JSON del passaggio precedente.
Passaggi successivi
- Panoramica dei broker in Managed Service per Apache Kafka
- Monitora un cluster Managed Service per Apache Kafka
- Pianifica le dimensioni del cluster Managed Service per Apache Kafka