Python 3.x 如何动态创建卡夫卡制作人
首先,我用python和kafka做了一些小步骤,假设我有一个listA=[item1,item2,item3],listA的每一项都是一个主题的Python 3.x 如何动态创建卡夫卡制作人,python-3.x,apache-kafka,kafka-producer-api,pykafka,Python 3.x,Apache Kafka,Kafka Producer Api,Pykafka,首先,我用python和kafka做了一些小步骤,假设我有一个listA=[item1,item2,item3],listA的每一项都是一个主题的制作人。现在我想要的是动态地向listA添加/删除项目,并且每个项目都应该在它自己的线程上运行,因为它们应该是独立的 因此,基本上我正在尝试扩展应用程序 到目前为止,我试图硬编码每一个生产者项目,并运行在自己的终端 每一项 from pykafka import KafkaClient import json from datetime import
制作人。现在我想要的是动态地向listA添加/删除项目,并且每个项目都应该在它自己的线程上运行,因为它们应该是独立的
因此,基本上我正在尝试扩展应用程序
到目前为止,我试图硬编码每一个生产者项目,并运行在自己的终端
每一项
from pykafka import KafkaClient
import json
from datetime import datetime
import uuid
import time
input_file = open('./data/item1.json')
json_array = json.load(input_file)
coordinates = json_array['features'][0]['geometry']['coordinates']
# Generate uuid
def generate_uuid():
return uuid.uuid4()
# Kafaka producer
client = KafkaClient(hosts="localhost:9092")
topic = client.topics['test_kafka2']
producer = topic.get_sync_producer()
# Generate all coordinates
def generate_coordinates(coordinates):
# new_coordinates = []
i = 0
while i < len(coordinates):
data = {}
data['class'] = 201
data['key'] = str(data['class']) + '_' + str(generate_uuid())
data['time_stamp'] = str(datetime.utcnow())
data['longitude'] = coordinates[i][0]
data['latitude'] = coordinates[i][1]
message = json.dumps(data)
producer.produce(message.encode('ascii'))
time.sleep(1)
# If item reaches last coordinaates
if i == len(coordinates)-1:
coordinates = coordinates[::-1]
i = 0
else:
i += 1
# return new_coordinates
generate_coordinates(coordinates)
从pykafka导入KafkaClient
导入json
从日期时间导入日期时间
导入uuid
导入时间
input_file=open('./data/item1.json')
json_数组=json.load(输入_文件)
坐标=json_数组['features'][0]['geometry']['coordinates']
#生成uuid
def生成_uuid():
返回uuid.uuid4()
#卡法卡制作人
client=KafkaClient(hosts=“localhost:9092”)
topic=client.topics['test_kafka2']
producer=topic.get\u sync\u producer()
#生成所有坐标
def生成_坐标(坐标):
#新的_坐标=[]
i=0
而i
您尝试的结果是什么?你有什么错误吗?或者你得到了一些输出,但不是你想要的?你能分享一些细节吗?它工作得很好,我现在无法缩放@Lalit