Apache Kafka любят использовать компании, которым приходится работать с большими объёмами данных, особенно если при этом предъявляются крайне высокие требования к безопасности и отказоустойчивости. Поэтому ей пользуются, например, Microsoft, Netflix, New York Times и LinkedIn (внутренней разработкой которой «Кафка» изначально и являлась). Что же конкретно выделяет эту систему на фоне конкурентов?
Чем примечательна Apache Kafka
Когда представителей компаний, использующих «Кафку», просят объяснить, почему они выбрали именно её, чаще всего в их ответах фигурирует слово «отказоустойчивость». Это и в самом деле одна из определяющих черт Apache Kafka — она обладает распределённой структурой, в которой каждое сообщение копируется и сохраняется на нескольких узлах. В результате, даже если у одного или даже нескольких узлов начнутся технические проблемы, записи сохраняются, и к ним можно получить доступ. Систему можно сделать ещё более надёжной, если интегрировать её с Apache ZooKeeper — с помощью этой службы лучше координируется работа компонентов.
Однако есть у «Кафки» и другие преимущества:
- Удобство интеграции. Kafka изначально создавалась таким образом, чтобы её можно было использовать с целым рядом протоколов передачи данных, а также подключать к облачным хранилищам и БД;
- Лёгкость масштабирования. Система легко расширяется и сокращается при необходимости благодаря использованию «горячего» масштабирования. Это значит, что в её кластеры можно добавлять дополнительные машины без полного отключения системы. Таким образом удаётся избежать простоев, с которыми обычно сопряжены подобные процессы. Если возникает необходимость в обратном, то ненужные машины можно просто убрать из кластера, без ущерба для работоспособности;
- Безопасность. В «Кафке» можно тонко настраивать работу для поддержания нужного стандарта достоверности и безопасности информации. Например, можно настроить степень изоляции сообщений, чтобы сделать невозможным чтение незаконченных или отменённых транзакций. Поскольку данные сохраняются в топиках, любые изменения можно легко отследить;
- Производительность. Генерация, отправление и чтение сообщений здесь реализованы независимо друг от друга, так что она работает одинаково быстро как в компактных, так и в весьма обширных проектах, обрабатывающих огромные объёмы информации.
Роль открытого исходного кода
Отдельно стоит упомянуть то, что «Кафка» распространяется по свободной лицензии. Благодаря этому для неё существует масса как официальной документации, так и разнообразных руководств, рекомендаций и советов, созданных сообществом. Кроме того, сторонние разработчики постоянно выпускают для неё патчи и расширения, дополняющие возможности системы новыми функциями. А достаточно квалифицированный специалист всегда способен дополнительно адаптировать её под нужды своего проекта.
Поэтому можно смело делать прогноз, что популярность Kafka будет расти и дальше.