Как добиться порядка вставки из многопоточности производителя Kafka

Шаги для добавления внешних баннеров в IntelliJ IDEA:

  1. Нажмите File на панели инструментов
  2. Структура проекта (CTRL + SHIFT + ALT + S в Windows / Linux , ⌘ +; в Mac OS X)
  3. Выберите модули на левой панели
  4. Закладка зависимостей
  5. '+' & rarr; JAR или каталоги
0
задан Pankaj Sonani 15 January 2019 в 19:32
поделиться

3 ответа

Согласно рекомендации Google , если вы используете синхронного издателя (производителя) и одного подписчика, следуйте алгоритму в коде Node JS в во второй половине страницы , чтобы гарантировать упорядочение обработки.

Точно так же, если у вас несколько издателей, вам нужно синхронизировать издателей, создав критический раздел между методом getPublishCounterValue и методом setPublishCounterValue, который побеждает многопоточный характер издателя.

Лучшее решение - следовать разделу

Порядок в конечном результате имеет значение

Типичные случаи использования: журналы, обновления состояния

многопоточные издатели должны прикреплять отметку времени к каждому сообщению о событии pub / sub, чтобы подписчики могли сохранять сообщения о событиях в Google Cloud Datastore или Firestore как юридические лица. Отдельное задание cron процессора сообщений о событиях может извлекать объекты сообщений о событиях в отсортированном по времени метке для обеспечения порядка сообщений.

0
ответ дан Hil Liao 15 January 2019 в 19:32
поделиться

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

Если вам нужно гарантировать порядок вставки и потребления, вам нужно настроить тему Kafka на использование только 1 раздела. Это единственный способ гарантировать порядок в Кафке. Тем не менее, вы потеряете много преимуществ kafka, а именно высокую производительность, распределенную по нескольким серверам, ядрам и т. Д.

0
ответ дан mjuarez 15 January 2019 в 19:32
поделиться

Самое большее, вы можете сохранить порядок сообщений в том порядке, в котором они были созданы производителем, путем отправки в один раздел. Разделы Kafka гарантировали порядок потребления сообщений в том порядке, в котором они были созданы внутри раздела.

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

0
ответ дан Steephen 15 January 2019 в 19:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: