Pourquoi est Kafka pull-based au lieu de Push-based? Je suis d'accord Kafka donne un débit élevé comme je l'ai vécu, mais je ne vois pas comment = Kafka diminuerait s'il était basé sur la transmission. Avez-vous des idées sur la façon dont la technologie Push peut dégrader les performances?
L'évolutivité a été le principal facteur déterminant lorsque nous concevons de tels systèmes (pull vs push). Kafka est très évolutif. L'un des principaux avantages de Kafka est qu'il est très facile d'ajouter un grand nombre de consommateurs sans affecter les performances et sans temps d'arrêt).
Kafka peut gérer des événements à un taux de 100k + par seconde provenant des producteurs. Parce que Kafka tirent des données du sujet, différents consommateurs peuvent consommer les messages à un rythme différent. Kafka prend également en charge différents modèles de consommation) Vous pouvez avoir un consommateur traitant les messages en temps réel et un autre consommateur traitant les messages en mode batch.
L'autre raison pourrait être que Kafka a été conçu non seulement pour des consommateurs uniques comme Hadoop. Différents consommateurs peuvent avoir des besoins et des capacités divers.
Les systèmes basés sur l'extraction présentent certaines lacunes telles que le gaspillage de ressources en raison des sondages réguliers. Kafka prend en charge un mode d'attente de "longue interrogation" jusqu'à ce que des données réelles parviennent pour pallier cet inconvénient.
Reportez-vous à la documentation Kafka qui détaille la décision de conception particulière: Push vs pull
Les principaux points favorables au pull sont:
L'inconvénient des systèmes basés sur l'extraction (les consommateurs interrogent les données alors qu'il n'y a pas de données disponibles pour eux) est quelque peu atténué par un mode d'attente de "longue interrogation" jusqu'à l'arrivée des données.
D'autres ont fourni des réponses basées sur la documentation de Kafka mais parfois la documentation du produit doit être prise avec un grain de sel comme référence technique absolue. Par exemple:
Il peut être intéressant de noter que divers systèmes de messagerie push-pull ont été développés à la fin des années 1990 afin d'optimiser le débit. Les résultats n'ont jamais été stupéfiants et la complexité du système et d'autres facteurs l'emportent souvent sur ce type d'optimisation. Je crois que c'est le point de vue de Jay dans l'ensemble sur les performances pratiques sur de vrais réseaux de centres de données, sans parler de choses comme l'Internet ouvert.