Vue d'ensemble

confluent-kafka 2.0, publié le 15 janvier 2023, nettoie l'API et abandonne le support de Python 3.6. La bibliothèque requiert désormais Python 3.7+.

Fonctionnalités principales

Nettoyage de l'API

Les anciennes méthodes dépréciées ont été supprimées et l'API de configuration a été simplifiée. Les callbacks utilisent désormais un style plus pythonique.

python
from confluent_kafka import Producer

conf = {
    'bootstrap.servers': 'localhost:9092',
    'client.id': 'mon-producteur',
}

producer = Producer(conf)
producer.produce(
    topic='evenements',
    key='cle-1',
    value='message de test',
    callback=lambda err, msg: print(f'Livré : {msg.topic()}')
)
producer.flush()

Python 3.7+ requis

L'abandon de Python 3.6 permet l'utilisation de dataclasses, des annotations postponées et des améliorations de performance du runtime Python 3.7+.

python
from confluent_kafka import Consumer

consumer = Consumer({
    'bootstrap.servers': 'localhost:9092',
    'group.id': 'mon-groupe',
    'auto.offset.reset': 'earliest',
})
consumer.subscribe(['evenements'])

while True:
    msg = consumer.poll(timeout=1.0)
    if msg is None:
        continue
    if msg.error():
        print(f'Erreur : {msg.error()}')
    else:
        print(f'Reçu : {msg.value().decode()}')
        break
consumer.close()

Sources