Python 需要帮助调试高频数据的kafka延迟吗

Python 需要帮助调试高频数据的kafka延迟吗,python,apache-kafka,kafka-producer-api,Python,Apache Kafka,Kafka Producer Api,我有一个物联网设备,每15毫秒将数据流传输到python服务器。python服务器将数据上传到kafka,另一台服务器使用它 我有一个基于传感器id的数据分区键。前几条消息的延迟低于30毫秒,但随后它猛增到500毫秒,然后缓慢下降,然后重复(下图) 我在这里的假设是,生产者在发送数据之前正在对数据进行批处理。我似乎找不到一个设置来关闭它,以便我的延迟是一致的。即使我有一条空白消息,问题似乎也会发生 这是我的制作人的代码 producer = KafkaProducer( bootstr

我有一个物联网设备,每15毫秒将数据流传输到python服务器。python服务器将数据上传到kafka,另一台服务器使用它

我有一个基于传感器id的数据分区键。前几条消息的延迟低于30毫秒,但随后它猛增到500毫秒,然后缓慢下降,然后重复(下图)

我在这里的假设是,生产者在发送数据之前正在对数据进行批处理。我似乎找不到一个设置来关闭它,以便我的延迟是一致的。即使我有一条空白消息,问题似乎也会发生

这是我的制作人的代码

producer = KafkaProducer(
    bootstrap_servers=get_kafka_brokers(),
    security_protocol='SSL',
    ssl_context=get_kafka_ssl_context(),
    value_serializer=lambda v: json.dumps(v).encode('utf-8'),
    batch_size=0,
    acks=1
)
message = {}
producer.send(app.config['NEW_LOG_TOPIC'], message, key=str(device.id).encode('utf-8'))
我一直在上下阅读,并尝试了几种不同的配置,但没有任何帮助。我的服务器和kafka实例正在heroku上运行


非常感谢您的帮助。

您是否也可以共享您的消费者配置,尤其是
fetch.min.bytes
fetch.max.wait.ms
?我没有想到要检查消费者。减少fetch.max.wait.ms似乎是解决方案。现在,我的延迟时间平均在100左右。谢谢您是否也可以共享您的消费者配置,尤其是
fetch.min.bytes
fetch.max.wait.ms
?我不想检查消费者。减少fetch.max.wait.ms似乎是解决方案。现在,我的延迟时间平均在100左右。谢谢