Fluentd vs Kafka

случай использования это: У меня работает несколько java-приложений, которые должны взаимодействовать с разными (каждый из них имеет определенную цель) индексами elasticsearch. Например, приложение A использует индексы A,B, C ElasticSearch для запроса и обновления. Приложение B использует индексы A,C, D(скажем).

требуется некоторый общий интерфейс, который может управлять всеми этими потоками данных. В настоящее время я оцениваю Кафку и флюэнта для этой цели. Может кто-нибудь объяснить, что будет лучше подходит для такой ситуации. Я смотрел на черты как Кафки, так и Флюэнта, и я действительно не понимаю, какая разница здесь. Большое спасибо.

2 ответов


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

fluentd-это централизованный log collector, который обычно устанавливается на одном хосте (или более, если вам нужно горизонтальное масштабирование). Он подключается к пульт ДУ источники данных, применяет фильтрацию и отправляет данные Единого журнала в пульт ДУ умывальники данных.

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

было бы логичнее сравните fluentd и logstash на самом деле. Что касается флюэнта, Кафка-это просто еще один источник данных и/или приемник данных, но они совершенно разные животные.

Если вы хотите лучшее из обоих миров, используйте kafka в качестве каналов ввода / вывода данных из / в ваши приложения и fluentd (или logstash) как ваша централизованная система регистрации чтения из этих тем Кафки.

Если вы хотите прочитать больше по этой теме, вы можете прочитать, как fluentd и Кафка дополняют друг друга очень хорошо, читала, что они не конкурируют друг с другом.


From:Кровь Конвейера Данных

Кафка в первую очередь связан с удержанием данных журнала, а не с перемещением журнала данные. Таким образом, производители Кафки должны написать код для ввода данных Кафка, и потребители Кафки должны написать код, чтобы вытащить данные из Кафка.

Fluentd имеет как входные, так и выходные плагины для Kafka, чтобы данные инженеры могут писать меньше кода, чтобы получить данные из Кафки. У нас есть многие пользователи, которые используют Fluentd как производитель и/или потребитель Кафки.