Нужна помощь в отладке задержки kafka для высокочастотных данных - PullRequest
1 голос
/ 09 июля 2019

У меня есть устройство IoT, которое передает данные на сервер Python каждые 15 мс. Сервер python загружает данные в kafka, а другой сервер использует их.

У меня есть ключ раздела для данных на основе идентификатора датчика. Задержка для первых нескольких сообщений составляет менее 30 мс, но затем она резко возрастает до 500 мс, а затем медленно снижается и затем повторяется (изображение ниже).

enter image description here

Я предполагаю, что производитель группирует данные перед их отправкой. Кажется, я не могу найти параметр, чтобы отключить это, чтобы моя задержка была постоянной. Кажется, проблема возникает, даже если у меня пустое сообщение.

Вот код моего продюсера

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'))

Я читал документацию вверх и вниз и перепробовал несколько разных конфигураций, но ничего не помогло. Мои серверы и инстанс кафки работают на героку.

Любая помощь приветствуется.

...