Apache Kafka работает в режиме реального времени как распределённый брокер сообщений. 1 Он обеспечивает связь между приложениями или модулями, принимает сообщения от отправителей (производителей), хранит их и доставляет получателям (потребителям). 3
Процесс работы Kafka можно описать на примере интернет-магазина: 2
- Когда в системе появляется новый товар, сервис отправки уведомлений обращается к Kafka и отправляет об этом сообщение в тему «Новые товары». 2
- Сервис оформления заказа и сервис поиска товаров подписаны на эту тему, поэтому сразу получают это сообщение и добавляют новый товар к себе. 2
- Когда клиент что-то покупает, сервис оформления заказа отправляет сообщение в тему «Новые заказы». 2
- Уведомление о заказе получат все, кто подписан на эту тему. 2
Некоторые особенности работы Kafka в реальном времени:
- Репликация. 14 Kafka автоматически создаёт несколько копий на разных серверах. 1 Если один сервер выходит из строя, данные всё равно доступны на других. 1
- Масштабируемость. 12 Система может увеличивать свою пропускную способность и обрабатывать большие объёмы данных. 1
- Асинхронная обработка сообщений. 1 Это позволяет производителям не блокировать свою работу, когда они ждут подтверждения, получено ли сообщение. 1
- Поддержка множества потребителей. 4 Kafka позволяет нескольким потребителям одновременно читать один и тот же поток сообщений, не мешая друг другу. 4