Java

KAFKA, в чем смысл ее использования на данном примере?

Ребятушки, помогите понять.

Вот пример использования кафки для создания социальной сети ( где можно лайкать, постить, комментировать ).

Но до меня никак не доходит, какой смысл отправлять информацию в кафку? Все равно ее надо сохранять в БД, она же в кафке просто пропадет.


Почему нельзя это сразу сохранить в БД? Или кафка выступает в роли кэша для временного хранения данных, пока она там не накопится в достаточных размеров чтобы одним батчем отправить в БД, а не дергать БД каждый раз?
Тоже самое что и rabbitmq/AMQP формируется очередь запросов с которой работают обычно стайтлесс клиенты которые еще могут скейлится а вот уже сами клиенты обычно пишут в базу где обычно кластеризация.
Владимир Порохов
Владимир Порохов
61 233
Лучший ответ
Очередь сообщений - это буфер. Если ты пишешь сразу в базу данных, в момент наплыва посетителей сайт ляжет, т.к. база не справится с нагрузкой. С очередью - если сообщений / лайков / комментариев слишком много и получатели не успевают их обрабатывать - они будут накапливаться в очереди и будут обрабатываться по мере готовности получателей. А когда кол-во посетителей снизится, очередь опустеет - т.к. вся информация, скопившаяся в очереди, будет обработана.

Очередь сообщений - это возможность уменьшить связность системы: код, отправляющий сообщения в очередь, ничего не знает о коде, обрабатывающем сообщения. И наоборот.

Очередь сообщений - это возможность гибко балансировать и перераспределять нагрузку, т.к. можно управлять количеством отправителей и получателей.

P.S. Разумеется, можно арендовать серверы БД с диким запасом мощности - чтобы любую расчётную нагрузку могли обработать. Но это будет стоить многократно дороже, чем очередь и более слабые серверы БД.

P.P.S. В твоём примере Kafka используется и как буфер, сглаживающий нагрузку, и как менеджер, распределяющий сообщения по 5 типам очередей к которым подключено 4 типа отправителей и 4 типа получателей.
кэш?...
вы вообще пытались читать что такое кафка?
Марат Некеров
Марат Некеров
98 231

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