0

J'essaye de faire une application en python qui a 1 sujet (démo-sujet) et 1 partition. Dans cette rubrique, les messages sont poussés au hasard J'ai 1 consommateur (consommateur1) (groupe de démonstration) qui utilise ces messages pour faire des calculs d'arrière-plan (qui prennent du temps). Ayant cette application sur amazon je veux pouvoir la mettre à l'échelle (quand le calcul prend trop de temps) de la façon dont la machine nouvellement créée aura un autre consommateur (consommateur 2) du même groupe (groupe de démonstration) dans le même sujet (démo-sujet) mais dans la façon dont ils commencent à diviser la charge (le consommateur 1 prend une certaine charge et le consommateur 2 prend le reste mais ils n'obtiennent jamais les mêmes messages)Multiprocessing avec python kafka consommateurs

Après la montée des données vient à un arrêt, la deuxième machine est mise hors service et le consommateur 1 reprend toute la charge.

Est-ce encore possible de faire (sans ajouter auparavant plus de partitions). Y at-il un travail autour??

Merci

Répondre

0

Vous ne pouvez pas avoir plusieurs consommateurs dans le même groupe consomment en même temps de la même partition. Si vous souscrivez une seconde consommer dans le même groupe à la même partition, il agira comme un mode d'attente à chaud et ne consommera aucun message jusqu'à ce que le premier s'arrête.

La meilleure solution consiste à ajouter des partitions à votre sujet. De cette façon, vous pouvez ajouter des consommateurs lorsque vous voyez une augmentation du trafic et les supprimer lorsque le trafic ralentit. Kafka fera tout l'équilibrage de charge pour vous.

0

Vous pouvez le faire, mais ne devrait pas.

L'unité de base du parallélisme dans Kafka est la partition: dans un groupe de consommateurs, chaque consommateur lit à partir d'une ou plusieurs partitions et les consommateurs ne partagent pas les partitions. Pour partager une partition, vous devez utiliser un outil tel que ZooKeeper pour verrouiller l'accès à la partition (et garder une trace de la position de chaque consommateur).

Le cas d'utilisation que vous décrivez est mieux servi par SQS et un groupe de mise à l'échelle automatique.