Vue d'ensemble

confluent-kafka 1.7, publié le 16 mai 2021, ajoute le support de l'authentification OAuth et améliore la gestion des erreurs.

Fonctionnalités principales

Support OAuth

Le client supporte désormais l'authentification OAuth/OIDC via un callback de renouvellement de token, permettant une intégration sécurisée avec les fournisseurs d'identité.

python
from confluent_kafka import Producer

def oauth_callback(config):
    """Callback pour obtenir un token OAuth."""
    # Appel au fournisseur d'identité
    return 'token_jwt_ici', expiry_time

producer = Producer({
    'bootstrap.servers': 'kafka:9092',
    'security.protocol': 'SASL_SSL',
    'sasl.mechanism': 'OAUTHBEARER',
    'oauth_cb': oauth_callback,
})

producer.produce('mon-topic', value=b'message')
producer.flush()

Amélioration de la gestion des erreurs

La gestion des erreurs est renforcée avec des callbacks d'erreur plus détaillés et une meilleure distinction entre les erreurs fatales et récupérables.

python
from confluent_kafka import Consumer, KafkaError

def error_callback(err):
    if err.code() == KafkaError._ALL_BROKERS_DOWN:
        print('Tous les brokers sont indisponibles')
    elif err.fatal():
        raise SystemExit(f'Erreur fatale : {err}')
    else:
        print(f'Erreur récupérable : {err}')

consumer = Consumer({
    'bootstrap.servers': 'kafka:9092',
    'group.id': 'mon-groupe',
    'error_cb': error_callback,
})

Sources