# Simple Kafka Producer, using confluent-kafka-python (librdkafka)
# Sample dockerfile to run this producer
#
# FROM python:3
# WORKDIR /usr/src/app
# RUN pip install --no-cache-dir confluent-kafka==1.0.0
# COPY ca-cert .
# COPY rd.py .
# CMD ["python", "./rd.py"]
from confluent_kafka import Producer
def delivery_report(err, msg):
if err is not None:
print("Message delivery failed: {}".format(err))
else:
print('Message delivered to {} [{}]'.format(msg.topic(), msg.partition()))
topic = 'CLIENT_NAME-tests'
p = Producer({
'bootstrap.servers': 'server.name:9094',
'security.protocol': 'SASL_SSL',
'ssl.ca.location': 'ca-cert',
'sasl.mechanisms': 'PLAIN',
'sasl.username': 'USERNAME',
'sasl.password': 'XXX_YYY_ZZZ',
'acks': 1,
'compression.type': 'lz4',
})
for i in range(1000000):
message = "Event {}".format(i)
p.produce(topic, message, on_delivery=delivery_report)
print("{} Queue len: {}".format(message, len(p)))
if len(p) > 90000:
p.poll(0)
p.flush()
Comments