Kafka Python使用自定义时间戳发送数据

时间:2018-07-04 18:11:25

标签: python apache-kafka kafka-python

我有这样的带有时间戳的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开始,所以我对此几乎一无所知。请帮助。

0 个答案:

没有答案