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.