Connessione ad Apache Kafka in Python

Mattepuffo's logo
Connessione ad Apache Kafka in Python

Connessione ad Apache Kafka in Python

In questo articolo vediamo come connetterci, inviare e ricevere dati da Apache Kafka In Python.

Do per scontate che lo abbiate già installato e configurato.

Volendo potete usare anche docker (come in effetti ho fatto io).

Prima di tutto dobbiamo installare una libreria, e possiamo farlo con pip:

pip install kafka-python

Qui sotto un pò di codice, in cui prima inviamo dei dati e poi li leggiamo:

from kafka import KafkaProducer, KafkaConsumer
import time

topic = 'test-topic'
host = 'localhost:9092'

# PRODUCER
producer = KafkaProducer(
    bootstrap_servers=host,
    key_serializer=lambda k: k.encode('utf-8'),
    value_serializer=lambda v: v.encode('utf-8')
)

producer.send(topic, key='chiave1', value='valore1')
producer.flush()
print('Messaggio inviato!')
producer.close()

time.sleep(2)

# CONSUMER
consumer = KafkaConsumer(
    topic,
    bootstrap_servers=host,
    group_id='test-group',
    auto_offset_reset='earliest',
    key_deserializer=lambda k: k.decode('utf-8') if k else None,
    value_deserializer=lambda v: v.decode('utf-8')
)

print('Consumer avviato, in ascolto...')

for message in consumer:
    print(f'Chiave: {message.key}, Valore: {message.value}')
    break

consumer.close()

Enjoy!


Condividi

Commentami!