web-dev-qa-db-fra.com

Bootstrap server vs zookeeper in kafka?

Pourquoi l'utilisation de zookeeper dans kafka-consumer est déconseillée et pourquoi il est recommandé d'utiliser le serveur bootstrap à la place? Quels sont les avantages du serveur bootstrap?

17
Slim AZAIZ

Le consommateur Kafka doit valider le décalage vers kafka et récupérer le décalage depuis kafka, car kafka a déplacé le stockage de décalage de zookeeper à kafka brokers, kafka-consumer n'a pas besoin de communiquer directement avec zookeeper, donc le nouveau kafka consumer n'a pas besoin de configurer le zookeeper. But = kafka le consommateur doit toujours se connecter à kafka brokers (cluster) pour envoyer la demande au serveur, le bootstrap-server n'est que quelques brokers de ce cluster, et en utilisant cela, le consommateur pourrait trouver tous les courtiers.

13
GuangshengZuo
  • Dans l'ancienne version de Kafka (v 0.9.0) Kafka utiliser pour stocker des données sur Kafka serveur et tous les décalages liés) des informations telles que (les décalages de partition actuels) ont été stockées dans zookeeper. Par conséquent, pour qu'un consommateur s'exécute, il nécessite à la fois des données et des métadonnées. Pour obtenir des métadonnées, il doit donc appeler zookeeper. C'est pourquoi il utilise à la fois zookeeper et Kafka. Ancien code de la consommation
  • Dans les nouvelles versions de Kafka ie (v 0.10.0 - ci-dessus). Il stocke toutes les informations de métadonnées de rubrique (partitions totales et leurs décalages actuels) dans la rubrique __consumer_offset sur le même Kafka server. Donc maintenant seulement Kafka broker a seulement besoin de communiquer avec zookeeper et le consommateur obtient toutes les données et métadonnées de kafkabroker lui-même donc il n'a plus besoin de communiquer avec zookeeper.

Avantage de l'architecture actuelle: 1. Données et métadonnées au même endroit très faciles à gérer.

13
Abhimanyu

Dans l'outil kafka-consumer actuel, l'utilisation des arguments --zookeeper ou --bootstrap-server fait la distinction entre l'utilisation de l'ancien et du nouveau consommateur. L'ancien consommateur a besoin d'une connexion Zookeeper car les décalages y sont enregistrés. Le nouveau consommateur n'a plus besoin de Zookeeper car les décalages sont enregistrés dans les sujets __consumer_offset sur les courtiers Kafka. L'utilisation de l'ancien consommateur est déconseillée aujourd'hui, donc pour les nouvelles applications, il est préférable d'utiliser la nouvelle implémentation.

2
ppatierno