Дизайн Kafka, мотивация

Kafka была разработана, чтобы быть способной действовать как унифицированная платформа для обработки всех потоков данных в реальном времени, которые могут быть у крупной компании. Для этого пришлось продумать довольно широкий набор сценариев использования.

Она должна обладать высокой пропускной способностью для поддержки потоков событий большого объема, таких как агрегация журналов в реальном времени.

Чтобы иметь возможность поддерживать периодическую загрузку данных из автономных систем, необходимо аккуратно обрабатывать большие объемы невыполненных заданий.

Это также означало, что система должна будет обрабатывать доставку с малой задержкой для обработки более традиционных сценариев использования сообщений.

Планировалось поддерживать разделенную, распределенную обработку этих каналов в реальном времени для создания новых производных каналов. Это мотивировало модель разделения (partitioning) и потребителя.

Наконец, в случаях, когда поток передается в другие системы данных для обслуживания, система должна быть способна гарантировать отказоустойчивость при наличии сбоев машины.

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


Читайте также:

Комментарии

Популярные сообщения из этого блога

Язык поисковых запросов в Graylog

Хэш-таблица: разрешение коллизий

Нормальные формы, пример нормализации в базе данных