我如何放入kafka Producer?

时间:2019-12-12 10:24:51

标签: python apache-kafka kafka-producer-api kafka-python

producer.send()接受2个参数,一个是kafka主题,第二个是生成的输出。我们如何使用以下脚本制作kafkaproducer.py。***

请帮助我将两个python合并到一个文件中,以便我们可以使用此脚本将数据推送到kafka主题中。

import time
from kafka import KafkaProducer
kafka_bootstrap_servers = 'localhost:9092'
kafka_topic_name = 'test1topic'
producer = KafkaProducer(bootstrap_servers=kafka_bootstrap_servers,value_serializer=lambda v: json.dumps(v).encode('utf-8'))
producer.send(kafka_topic_name, script_output)

2 个答案:

答案 0 :(得分:0)

基本上,您不能将代码添加到KafkaProducer中,但是可以将其包装为新的生产者,并使其获得代码,或者仅将一个kafka生产者添加到Generator对象中使start函数通过kafka发送数据

答案 1 :(得分:0)

您只需从生成器函数的输出中传递它

例如,不要使用一个文件,而是使用适当的Python最佳做法来导入自己的模块

from somescript import generate_data

for data in generate_data():
    producer.send(kafka_topic_name, data)

它应该产生数据,而不是让生成器仅打印数据,从而返回一个Python生成器对象

否则,您将producer.send替换Generator类中的生成语句,就像已经显示