Quando un nuovo consumatore/bricolage viene aggiunto o abbassa, Kafka attiva un'operazione di ribilanciamento. Kafka sta riequilibrando un'operazione di blocco. I consumatori di Kafka sono bloccati mentre è in corso un'operazione di ribilanciamento?Come funziona il riequilibrio del consumatore in Kafka?
risposta
Dipende da cosa intendi per "bloccato". Se intendi "le connessioni esistenti sono chiuse quando viene attivato il ribilanciamento", la risposta è sì. L'attuale algoritmo di riequilibrio di Kafka è sfortunatamente imperfetto.
Ecco cosa succede durante il riequilibrio dei consumi.
Supponiamo di avere un argomento con 10 partizioni (0-9) e un utente (chiamiamolo consumer1
) consumandolo. Quando viene visualizzato un secondo consumatore (consumer2
), il task di ribilanciamento si attiva per entrambi (consumer1
ottiene un evento, consumer2
esegue il ribilanciamento iniziale). Ora consumer1
chiude tutte le connessioni esistenti (anche quelle che verranno riaperte presto) e rilascia la proprietà della partizione in Zookeeper per tutte e 10 le partizioni.
Quindi esegue l'algoritmo di assegnazione della partizione e decide quali partizioni devono essere richieste e richiede nuovamente la proprietà della partizione in Zookeeper. Se il reclamo ha avuto esito positivo, consumer1
avvia il recupero delle sue nuove partizioni.
Nel frattempo consumer2
esegue anche l'algoritmo di assegnazione delle partizioni e tenta di rivendicare anche le sue partizioni in Zookeeper. Il reclamo avrà esito positivo solo quando consumer1
rilascia la proprietà su queste partizioni. Quando il reclamo va a buon fine, consumer2
inizia il recupero, o se non riesce a rivendicare partizioni entro una determinata quantità di tentativi, si ottiene un'eccezione rebalance failed after n retries
.
Come si è notato invece di chiudere solo le connessioni e rilasciare la proprietà per le partizioni consumer1
non possiede più, chiude inutilmente TUTTE le sue connessioni e si riavvia con una quantità inferiore di partizioni. La stessa storia con l'aggiunta di partizioni (quando si utilizza un filtro con caratteri jolly e viene visualizzato un nuovo argomento): TUTTE le connessioni vengono chiuse e quindi aperte di nuovo anziché aprirne di nuove.
Quindi spero che questo risponda alla tua domanda: il recupero si interrompe quando il riequilibrio entra in azione.
- 1. Apache Kafka: stato consumatore
- 2. Kafka CommitFailedException eccezione consumatore
- 3. Che cosa determina l'offset del consumatore Kafka?
- 4. Algoritmo di riequilibrio dei consumi di Kafka
- 5. Kafka ha un consumatore in batch?
- 6. Valore massimo di offset consumatore di Kafka?
- 7. Riequilibrio delle partizioni sui broker di Kafka 0.8
- 8. Kafka in Docker non funziona
- 9. sessioni di consumo kafka timeout
- 10. Come utilizzo più utenti in Kafka?
- 11. Kafka consumatore non riceve i messaggi fino riavviato
- 12. Come ottenere la chiave del consumatore e il segreto del consumatore per l'API gmail?
- 13. RabbitMQ come strozzare il consumatore
- 14. come usare kafka acls?
- 15. Kafka fallimento singolo utente in un gruppo
- 16. Kafka: nessun messaggio visualizzato sul consumatore della console dopo il messaggio inviato da Java Producer
- 17. Che cosa è esattamente Kafka Rebalancing?
- 18. Implementazione del pattern produttore-consumatore in Ruby
- 19. Attuazione del produttore/consumatore modello in C#
- 20. Come far leggere al consumatore kafka l'ultimo offset consumato ma non dall'inizio
- 21. Separazione del consumatore e produttore di sedano
- 22. L'encoder predefinito Apache Kafka non funziona
- 23. kafka consumer 0.9 retrocompatibile?
- 24. Come verificare che SSL funzioni per Kafka
- 25. Strategia efficace per evitare i messaggi duplicati nel consumatore apache kafka
- 26. Dov'è la configurazione del consumatore huey?
- 27. Il consumatore non riceve messaggi da ActiveMQ
- 28. argomento Kafka vs partizione
- 29. Come scrivere un file su Kafka Producer
- 30. Riequilibrio del portafoglio con il metodo della larghezza di banda in python