Use kafka-python for simple producer/consumer with JSON serialization in Python applications.
Kafka Python Client
pip install kafka-python
# Producer
from kafka import KafkaProducer
import json
producer = KafkaProducer(
bootstrap_servers='localhost:9092',
value_serializer=lambda v: json.dumps(v).encode('utf-8'),
key_serializer=lambda k: k.encode('utf-8') if k else None
)
producer.send('orders', key='user-1', value={'total': 99.99, 'status': 'pending'})
producer.flush()
# Consumer
from kafka import KafkaConsumer
consumer = KafkaConsumer(
'orders',
bootstrap_servers='localhost:9092',
group_id='order-service',
auto_offset_reset='earliest',
value_deserializer=lambda m: json.loads(m.decode('utf-8'))
)
for message in consumer:
print(message.partition, message.offset, message.value)