Rose debug info
---------------

Пациент, у вас волчанка... или чеклист по старту проекта с Apache Kafka®

В любом современном проекте, где появляется необходимость обрабатывать какие-то события (поток сообщений или данных), в качестве инфраструктурного решения разработчики практически сразу предлагают Apache Kafka®. В моей практике довольно редко встречались команды, которые взвешенно подходили к сравнению брокеров сообщений и event-streaming платформ. Там, где можно было обойтись ActiveMQ или RabbitMQ, тащили сразу кластер Apache Kafka® и дальше мучались с поддержкой кластера или его отдельных компонент (привет, ZooKeeper!).

Но сейчас не об этом. Допустим, вы обдуманно пришли к выбору Apache Kafka® или же ваша централизованная инфраструктура не оставила вам выбора. На какие вопросы стоит ответить перед тем, как начать писать продюсеры, консьюмеры и настраивать какие-то параметры кластера? Мой наивный чеклист ниже:

  1. Объем данных, который планируется “генерировать” продьюсерами → хватит ли вашего сетевого канала для всей системы и ее критичных компонент.
  2. Как долго вам необходимо хранить данные (Data Retention Policy) → бизнес-требования + стоимость (см. в том числе пункт 1) + комплаенс.
  3. Нужны ли гарантии после отправки сообщения (acks) → баланс между временем ожидания (latency) и надежностью в рамках репликации (durability).
  4. Гарантия доставки → насколько критично для нашей бизнес задачи потеря или дублирование сообщений, важна ли идемпотентность / транзакционность.
  5. Какая стратегия партиционирования планируется использоваться продьюсерами — подходит ли стратегия по умолчанию.
  6. Для выбранного топика важно ли нам хранить весь лог сообщений или достаточно последних изменений → см. Compacted Topics.
  7. Потребуется ли консьюмер-группа для ваших топиков / как вы планируете масштабировать консьюмеры и их пропускную способность / что будет в случае ребаласировки группы.

За рамками чеклиста остались вопросы шифрования данных, аутентификации и авторизации, а также траблшутинга — предполагая, что за вас это решит SRE или PAAS.

Поделиться
Отправить
 27   29 дн   Apache Kafka