В чем разница между Apache Beam и Apache Kafka в отношении потоковой обработки? Я также пытаюсь понять технические и программные различия.
Пожалуйста, помогите мне понять, поделившись своим опытом.
В чем разница между Apache Beam и Apache Kafka в отношении потоковой обработки? Я также пытаюсь понять технические и программные различия.
Пожалуйста, помогите мне понять, поделившись своим опытом.
Beam - это API, который использует базовый движок потоковой обработки, такой как Flink, Storm и т. Д., Единым способом.
Kafka - это в основном интеграционная платформа, которая предлагает систему обмена сообщениями на основе тем, которые автономные приложения используют для связи друг с другом.
В дополнение к этой системе обмена сообщениями (и API производителя / потребителя) Kafka предлагает API для выполнения потоковой обработки с использованием сообщений в качестве данных и тем в качестве ввода или вывода. Приложения потоковой обработки Kafka - это автономные Java-приложения, которые действуют как обычный потребитель и производитель Kafka (это важно для понимания того, как эти приложения управляются и как рабочая нагрузка распределяется между экземплярами приложений потоковой обработки).
Вкратце, приложения обработки Kafka Stream - это автономные Java-приложения, которые работают вне кластера Kafka, передают данные из кластера Kafka и экспортируют результаты в кластер Kafka. С другими платформами потоковой обработки приложения потоковой обработки запускаются внутри механизма кластера (и управляются этим механизмом), передают информацию из другого места и экспортируют результаты в другое место.
Одно большое различие между Kafka и Beam Stream API заключается в том, что Beam делает различие между ограниченными и неограниченными данными внутри потока данных, тогда как Kafka не имеет такого значения. Таким образом, обработка ограниченных данных с помощью Kafka API должна выполняться вручную с использованием временных / сеансовых окон для сбора данных.
Beam - это программный API, но не система или библиотека, которые вы можете использовать. Доступно несколько бегунов Beam, реализующих Beam API.
Kafka - это платформа потоковой обработки, которая поставляется с Kafka Streams (также известной как Streams API), библиотекой потоковой обработки Java, созданной для чтения данных из тем Kafka и записи результатов обратно в темы Kafka.