Vue d'ensemble
confluent-kafka 2.2, publié le 10 juillet 2023, améliore l'API transactionnelle pour les opérations exactly-once.
Fonctionnalités principales
API transactionnelle
L'API transactionnelle permet de produire et consommer des messages dans une transaction atomique, garantissant la sémantique exactly-once.
python
from confluent_kafka import Producer
conf = {
'bootstrap.servers': 'localhost:9092',
'transactional.id': 'mon-tx-id',
}
producer = Producer(conf)
producer.init_transactions()
producer.begin_transaction()
try:
producer.produce('topic-a', value='message-1')
producer.produce('topic-b', value='message-2')
producer.commit_transaction()
except Exception:
producer.abort_transaction()
Améliorations de fiabilité
Le client bénéficie de correctifs de fiabilité pour la reconnexion automatique et la gestion des erreurs transitoires.
python
from confluent_kafka import Consumer
consumer = Consumer({
'bootstrap.servers': 'localhost:9092',
'group.id': 'mon-groupe',
'enable.auto.commit': False,
'isolation.level': 'read_committed',
})
consumer.subscribe(['topic-a'])
msg = consumer.poll(timeout=5.0)
if msg and not msg.error():
print(f'Reçu : {msg.value().decode()}')
consumer.commit(msg)
consumer.close()
