Partage de technologie

producteur de kafka

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

producteur

Les producteurs sont chargés de créer des messages puis de les transmettre à Kafka.
Insérer la description de l'image ici

l'équilibrage de charge

  1. Stratégie de sondage.
  2. Stratégie aléatoire.
  3. Hachage selon la clé.

Stratégie de partitionnement par défaut de Kafka : si la clé est spécifiée, les messages avec la même clé seront envoyés à la même partition (les partitions sont ordonnées) ; si la clé n'est pas spécifiée, la stratégie d'interrogation est utilisée.

Envoyer un message

acks spécifie le nombre de répliques de partition dont le producteur a besoin pour recevoir le message avant de considérer que le message a été écrit avec succès.

Il n’y a aucun avantage ni inconvénient entre les trois méthodes, vous devez plutôt choisir la stratégie appropriée en fonction des conditions locales. Il existe un compromis entre performances et fiabilité.

Il existe 3 façons d'envoyer des messages :

Envoyez et oubliez.

accusé de réception = 0.
Le producteur n'attend aucune réponse du courtier après l'envoi du message. Dans la plupart des cas, les messages peuvent être transmis avec succès car Kafka est hautement disponible et le producteur dispose d'un mécanisme pour tenter automatiquement de les renvoyer. Cependant, si une erreur non réessayable ou un délai d'attente se produit, le message sera perdu et l'application ne recevra aucune information ni exception.
Dans le même environnement de configuration, définir acks sur 0 peut atteindre le débit maximum.

Envoyer de manière asynchrone

acks=1, valeur par défaut.
Une fois que le producteur a envoyé le message, tant que la copie principale de la partition écrit le message avec succès, elle recevra une réponse réussie du serveur.

  • Si le message ne peut pas être écrit dans la copie principale, par exemple lorsque la copie principale tombe en panne et qu'une nouvelle copie principale est réélue, le producteur recevra une réponse d'erreur. Afin d'éviter la perte du message, le producteur peut choisir de renvoyer le message. message.
  • Si un message est écrit dans la copie principale et qu'une réponse réussie est renvoyée au producteur, et que la copie principale plante avant d'être extraite par d'autres copies suiveuses, le message sera toujours perdu à ce moment-là car le message correspondant n'existe pas dans la copie principale. copie du chef nouvellement élu.
    acks est défini sur 1, ce qui constitue un compromis entre la fiabilité des messages et le débit.
Envoyer de manière synchrone

acks = -1 ou acks = tous.
Une fois que le producteur a envoyé le message, il doit attendre que toutes les répliques de l'ISR écrivent correctement le message avant de pouvoir recevoir une réponse positive du serveur.
Dans le même environnement de configuration, définir les accusés de réception sur -1 (tous) peut obtenir la fiabilité la plus élevée. Mais cela ne signifie pas que le message doit être fiable, car il peut n'y avoir qu'une copie leader dans l'ISR, ce qui dégénère en la situation acks=1.