🙏Kafka #2: Топики
Сегодня поговорим про топики. Когда я читал про них, у меня все больше и больше мыслей возникало, что они похожи на таблицы в базе данных, только с более строгими правилами записи. Вот ключевые фичи топика:
✴️ Топик – это контейнер для одного типа событий. (по сути, как таблица в базе данных, пояснительный дикпик выше 👆)
✴️ Данные между топиками могут дублироваться.
✴️ Топик – append-only штука (то есть удалять оттуда нельзя)
✴️ В топике есть offset, по которому мы можем искать нужные события. Это по сути смещение от начала сегмента (про сегменты чуть позже, пока можете считать, что от начала файла с событиями)
✴️ События редактировать нельзя.
✴️ Схема данных событий в топике не проверяется.
✴️ Топик делится на партиции. (про это в следующем посте)
✴️ Из одного и того же топика могут читать разные консьюмеры, но читать они будут информацию из разных партиций.
Верхнеуровненво это все еще чем-то напоминает очереди, но из-за своей имутабельной структуры у топиков иной подход к параллелизщации нагрузки – партиции. Про него я расскажу в следующем посте. Хотя очень хочется и сейчас. Но всего по-немножку! 😏
🅰️Практический вывод:
1) Когда в своей практике вы создадите топик в Кафке? Когда ваше приложение будет кидать определенный ивент, к примеру о том, что оплата прошла. Вы создадите топик с назанием PaymentAccepted и будете слать в него события.
2) О чем нужно помнить? Что если послали, то удалить посланное из истории будет невозможно.
P.S.: Если что, у этой информации есть оригинал, он тоже коротенький, так что можете ознакомиться.
#kafka
Post #98
83