У документа Кафки есть хорошая схема, которую я скопировал ниже.Это показывает новизну Кафки в сжатой форме.
Без Кафки ситуация примерно такая.У нас есть несколько серверов, например, серверы Frontend, серверы БД, серверы чата и т. Д. С другой стороны, у нас, вероятно, есть разные метрики и инструменты мониторинга (например, монитор БД, монитор пользовательского интерфейса и т. Д.).Прямая связь один-к-одному между различными серверами и сборщиками может сработать для небольших систем, но она выходит из строя довольно быстро после того, как система превысила определенный порог с точки зрения масштабируемости.Кафка решает эту проблему, отделяя отправителей и получателей.Они оба общаются через брокеров Kafka вместо того, чтобы разговаривать друг с другом.
Итак, в вашем случае потребитель просто спросит брокера, есть ли какие-либо новые данные по теме, на которую он подписывается.Поскольку производитель не работает и, предположив, что в очереди нет данных, брокер ответит: ничего не нужно использовать. .Таким образом, потребитель будет постоянно опрашивать через фиксированный интервал, в бесконечном цикле и ничего не делать.Всякий раз, когда производитель подходит и начинает выкачивать данные, потребитель начинает получать (и обрабатывать) их.Существуют более сложные случаи использования, когда вы можете потерять данные, если срок хранения по определенной теме истек, а потребитель не обработал отставание.Но я не думаю, что это беспокоит вас в этот момент вашего путешествия.