Несколько производителей Kafka пишут в одну и ту же тему - порядок сообщений и пакетов данных

Я пытаюсь узнать о Кафке. Скажем, у меня есть несколько продюсеров, каждый из которых пишет в одну и ту же тему. (Не может быть больше тем из-за дизайна, и мы используем avro для сериализации) Поскольку наше сообщение слишком большое, нам нужно разделить его на мелкие части и отправить в kafka.

В этом сценарии могут ли сообщения от разных производителей смешиваться? Как я могу избежать этого сценария? Любые идеи

Кроме того, у нас есть огромный пакет данных, например, будет 1000 сообщений за 2 минуты, а затем очень мало сообщений в течение следующих 5-7 минут, что мы можем сделать в таких сценариях.


person user2799564    schedule 27.06.2014    source источник


Ответы (1)


Поскольку наше сообщение слишком большое, нам нужно разделить его на маленькие части и отправить в kafka.

Ты? Вы провели базовые тесты и у вас возникли проблемы? Пробовали настраивать буферы? Я почти уверен, что kafka может обрабатывать относительно большие сообщения (десятки мегабайт) без особых хлопот. Фактически, вы, скорее всего, получите лучшую пропускную способность по сравнению с огромным количеством крошечных сообщений.

Кроме того, у нас есть огромный пакет данных, например, будет 1000 сообщений за 2 минуты, а затем очень мало сообщений в течение следующих 5-7 минут, что мы можем сделать в таких сценариях.

Один брокер kafka на современном сервере может легко обрабатывать ~20-40 тыс. сообщений/в секунду (пакет из 1000 сообщений, каждое размером 2 КБ, режим синхронизации). Я не вижу там проблемы.

Могут ли сообщения от разных производителей смешиваться?

Да, они могут смешиваться. На самом деле, этот момент не очень хорошо определен протоколом kafka, и конкретная реализация может изменить это поведение, поэтому для стабильного решения взгляните на раздел ниже.

Как я могу избежать этого сценария?

В Kafka есть концепция разделов: каждый топик по умолчанию имеет 1 раздел, каждый раздел можно рассматривать как единицу параллелизма. Настройте соответствующий разделитель, чтобы каждый производитель изолированно писал в свой собственный раздел.

person om-nom-nom    schedule 27.06.2014