2017-09-27 3 views
0

J'ai lu de plusieurs sources sur débordement de pile qui a indiqué l'utilisation de plusieurs groupes de consommateurs me permettra de lire simultanément le même sujet de la même partition de plusieurs consommateurs.Comment Kafka réalise-t-il son parallélisme avec la consommation multiple sur le même sujet même partition?

Par exemple,

Can multiple Kafka consumers read from the same partition of same topic by default?

How Kafka broadcast to many Consumer Groups

Parallel Producing and Consuming in Kafka

C'est donc une question de suivi à ma précédente question, mais sur un contexte légèrement différent. Étant donné que nous ne pouvons que lire et écrire à un chef de partition, et les journaux Kafka sont stockés sur le disque dur. Chaque partition représente un journal.

Maintenant, si je 100 groupes de consommateurs lecture du même sujet et même partition, qui est la lecture essentiellement du même ordinateur parce que nous sommes autorisés à lire du chef de partition et ne peut pas lire des répliques de partition, comment Kafka peut-il même faire évoluer ce type de charge de lecture?

Comment réalise-t-il le parallélisme? Est-ce juste engendrer de nombreux threads et processus sur la même machine pour gérer toute la consommation en même temps? Comment cette approche peut-elle évoluer horizontalement?

Merci

+0

Kafka n'est pas conçu pour être utilisé de cette manière, c'est-à-dire pour produire/consommer sur une seule partition. Il "évolue" en partitionnant, et si vous n'avez pas tendance à l'utiliser, il ne varie pas beaucoup. – alirabiee

Répondre

0

Si vous avez 100 consommateurs toute lecture de la même partition, puis sur les données de cette partition seront mises en cache dans le cache de Linux OS (mémoire) et ainsi de 99 ou peut-être même tous les 100 des consommateurs récupérera des données de RAM au lieu d'un disque dur tournant. C'est une caractéristique unique de Kafka que, malgré son écriture dans un langage JVM, il est conçu pour tirer parti de la mémoire de tas pour des performances supplémentaires dans le cas de consommateurs parallèles des mêmes données.