У меня есть устройство IoT, которое передает данные на сервер Python каждые 15 мс. Сервер python загружает данные в kafka, а другой сервер использует их.
У меня есть ключ раздела для данных на основе идентификатора датчика. Задержка для первых нескольких сообщений составляет менее 30 мс, но затем она резко возрастает до 500 мс, а затем медленно снижается и затем повторяется (изображение ниже).
![enter image description here](https://i.stack.imgur.com/kMbzd.png)
Я предполагаю, что производитель группирует данные перед их отправкой. Кажется, я не могу найти параметр, чтобы отключить это, чтобы моя задержка была постоянной. Кажется, проблема возникает, даже если у меня пустое сообщение.
Вот код моего продюсера
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'))
Я читал документацию вверх и вниз и перепробовал несколько разных конфигураций, но ничего не помогло. Мои серверы и инстанс кафки работают на героку.
Любая помощь приветствуется.