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!
python pip kafka
Commentami!