我有这样的带有时间戳的JSON数据
a = {'key1':'value','timestamp':'123344453'}
我正在使用kafka python版本1.3.4.1
我的生产者代码:
producer = KafkaProducer(
bootstrap_servers='localhost:9092',
value_serializer=lambda v: json.dumps(v).encode('utf-8'))
for a in list_of_dicts:
producer.send('topic', a, timestamp_ms=int(a['timestamp']))
我的消费者代码:
consumer = KafkaConsumer('topic')
for msg in consumer:
mj = (msg.value.decode('utf8'))
data = json.loads(mj)
print(data)
print(msg.timestamp)
我希望按照时间戳发送数据。但是数据立即全部发送到消费者,消费者一次打印列表中的所有字典。我的数据带有120秒间隔的时间戳。因此,例如,如果我的时间戳记是120,那么下一个时间戳记将是240。我需要消费者以这种方式进行消费,而不是一次全部消费,或者生产者必须按照两者中的任何一个进行发送。
我也无法从文档中了解timestamp_ms
的使用。
刚从kafka开始,所以我对此几乎一无所知。请帮助。