Recherche de site Web

Introduction à Confluent Kafka Python Producer


Aujourd’hui, les données constituent une composante essentielle de l’écosystème numérique, et chaque application moderne dépend de leur administration et de leur traitement efficaces. Pour cette ère axée sur les données, Apache Kafka, une puissante technologie de streaming d'événements, fournit une solution à haut débit. Ces fonctionnalités puissantes sont parfaitement intégrées à vos applications Python à l'aide du client Python de Confluent pour Apache Kafka. Cet article donne un aperçu complet de Confluent Kafka Python Producer et comprend des exemples utiles pour vous aider à démarrer.

Qu'est-ce que Confluent Kafka Python Producer ?

Composant de la bibliothèque client Kafka Python de Confluent, Confluent Kafka Python Producer offre une interface Pythonique aux puissantes capacités de streaming de données d'Apache Kafka. En conjonction avec Kafka Consumer, il permet aux programmes Python de participer pleinement aux systèmes distribués basés sur Kafka en leur permettant de produire des données sur des sujets Kafka.

Premiers pas avec Confluent Kafka Python Producer

Pip, le programme d'installation du package pour Python, peut être utilisé pour installer Confluent Kafka Python Producer. Pour installer, exécutez la commande suivante -

pip install confluent-kafka

Vous pouvez importer Kafka Producer dans votre script Python après son installation

from confluent_kafka import Producer

Mettre à profit le producteur Confluent Kafka Python

Voyons maintenant comment envoyer des messages à Kafka à l'aide de Confluent Kafka Python Producer.

Exemple 1 : Produire un message simple

Comment créer une réponse directe à un sujet Kafka est la suivante -

from confluent_kafka import Producer

p = Producer({'bootstrap.servers': 'localhost:9092'})

p.produce('mytopic', 'Hello, Kafka!')

p.flush()

Ce script établit une connexion à un courtier Kafka sur localhost:9092 en créant un producteur Kafka. Pour s'assurer que le message a bien été envoyé, il produit d'abord le message "Bonjour Kafka !" au sujet "mytopic" avant de vider la file d'attente des messages du producteur.

Exemple 2 : gestion des rapports de remise de messages

De plus, le producteur Confluent Kafka peut rendre compte du succès de la diffusion des messages sur son sujet -

from confluent_kafka import Producer

def delivery_report(err, msg):
   if err is not None:
      print(f'Message delivery failed: {err}')
   else:
      print(f'Message delivered to {msg.topic()} [{msg.partition()}]')

p = Producer({'bootstrap.servers': 'localhost:9092'})

p.produce('mytopic', 'Hello, Kafka!', callback=delivery_report)

p.flush()

Ici, le message est donné lorsque la fonction de rappel delivery_report est invoquée, qui fait partie de la méthode Produce.

Exemple 3 : Produire des messages de valeurs-clés

Les messages Kafka contiennent souvent à la fois une clé et une valeur. Comment créer un message clé-valeur :

from confluent_kafka import Producer

p = Producer({'bootstrap.servers': 'localhost:9092'})

p.produce('mytopic', key='mykey', value='myvalue')

p.flush()

Ce script génère un message pour le sujet « mytopic » avec les clés « mykey » et « myvalue ».

Exemple 4 : Produire des messages Avro

Avec l'aide de la technologie de sérialisation des données Avro, vous pouvez crypter le schéma du message. Ceci est particulièrement utile lors de la création de communications sur un sujet qui sera utilisé par différents consommateurs, chacun pouvant nécessiter un format différent. Pour créer des messages Avro, suivez ces étapes

from confluent_kafka import avro, Producer
from confluent_kafka.avro import AvroProducer

value_schema = avro.load('value_schema.avsc')
key_schema = avro.load('key_schema.avsc')
value = {"name": "Value"}
key = {"name": "Key"}

avroProducer = AvroProducer({
   'bootstrap.servers': 'localhost:9092', 
   'schema.registry.url': 'http://127.0.0.1:8081'
   }, default_key_schema=key_schema, default_value_schema=value_schema)

avroProducer.produce(topic='my_topic', value=value, key=key)
avroProducer.flush()

Ce script crée un message pour le sujet « my_topic » avec une clé et une valeur qui adhèrent aux schémas Avro fournis.

Exemple 5 : configuration de la compression des messages

Pour économiser la bande passante, vous pouvez configurer Kafka Producer pour compresser les messages avant de les envoyer. Voici une illustration

from confluent_kafka import Producer

p = Producer({
   'bootstrap.servers': 'localhost:9092',
   'compression.type': 'gzip',
})

p.produce('mytopic', 'Hello, Kafka!')
p.flush()

Ce script crée un producteur Kafka qui utilise gzip pour compresser les messages avant de les transmettre au sujet.

Conclusion

Le Kafka Python Producer de Confluent est une solution puissante et hautement adaptable qui permet aux applications Python de profiter des puissantes fonctionnalités de streaming de données de Kafka. Il s'agit d'un outil crucial, que vous construisiez un système distribué complexe ou que vous ayez simplement besoin d'un flux de données fiable.

Tout, de l'installation à l'utilisation réelle dans votre application Python, a été abordé dans cette analyse approfondie. Cinq exemples ont été abordés en détail : la construction d'un message simple, la gestion des rapports de livraison, la production de messages clé-valeur, la création de messages Avro et la personnalisation de la compression des messages.

Mais gardez à l’esprit que Kafka Python Producer de Confluent offre bien plus que ce qui est couvert dans ce livre. Nous vous conseillons de consulter la documentation officielle de Confluent et de poursuivre les expérimentations pour une utilisation avancée, comme l'intégration avec Kafka Streams ou le développement de sérialiseurs personnalisés.

Articles connexes