2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Les producteurs sont chargés de créer des messages puis de les transmettre à Kafka.
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.
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 :
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.
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.
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.