--- title: Build Producer sidebar_position: 6 --- Kafka supports multiple client languages such as Java, C++, Python, Go, .NET, and JMS. In this tutorial, we will focus on using Kafka with Python. For tutorials on other languages, please [refer to this documentation](https://docs.confluent.io/kafka-client/overview.html#client-guides). Let's create the Python producer application by pasting the following code into a file `producer.py`. ```bash #!/usr/bin/env python from random import choice from confluent_kafka import Producer if __name__ == '__main__': config = { # User-specific properties that you must set 'bootstrap.servers': '', 'sasl.username': '', 'sasl.password': '', # Fixed properties 'security.protocol': 'sasl_ssl', 'sasl.mechanisms': 'SCRAM-SHA-512', 'ssl.ca.location': '' 'ssl.endpoint.identification.algorithm': 'none', } # Create Producer instance producer = Producer(config) # Optional per-message delivery callback (triggered by poll() or flush()) # when a message has been successfully delivered or permanently # failed delivery (after retries). def delivery_callback(err, msg): if err: print('ERROR: Message failed delivery: {}'.format(err)) else: print("Produced event to topic {topic}: key = {key:12} value = {value:12}".format( topic=msg.topic(), key=msg.key().decode('utf-8'), value=msg.value().decode('utf-8'))) # Produce data by selecting random values from these lists. topic = "purchases" user_ids = ['eabara', 'jsmith', 'sgarcia', 'jbernard', 'htanaka', 'awalther'] products = ['book', 'alarm clock', 't-shirts', 'gift card', 'batteries'] count = 0 for _ in range(10): user_id = choice(user_ids) product = choice(products) producer.produce(topic, product, user_id, callback=delivery_callback) count += 1 # Block until the messages are sent. producer.poll(10000) producer.flush() ``` Fill appropriate values in the config section. After that, you can execute this file on the public IP (port 9094) and the private IP (port 9092) to produce messages to the topic. ### Example: **Using Private Ip address:** bootstrap.servers = 10.16.202.6:9092,10.16.202.7:9092,10.16.202.8:9092 **Using Public IP address:** bootstrap.servers = e2e-87-237.ssdcloudindia.net:9094,e2e-87-246.ssdcloudindia.net:9094,e2e-88-5.ssdcloudindia.net:9094 ---