Apache Apex против Apache Flink

Так как обе являются потоковыми средами, которые обрабатывают события одновременно, каковы основные архитектурные различия между этими двумя технологиями / потоковой средой?

Кроме того, каковы некоторые конкретные случаи использования, когда один является более подходящим, чем другой?

1 ответ

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

  1. Apex - это нативная архитектура пряжи, она полностью использует пряжу для планирования, безопасности и многопользовательской аренды, когда Flink интегрируется с пряжей. Apex может распределять ресурсы на уровне оператора (контейнера) с помощью пряжи.
  2. Разделение: Apex поддерживает несколько сложных схем разделения потока, а также позволяет контролировать местоположение оператора и местоположение потока. Flink поддерживает простые хеш-разделы и пользовательские разделы.
  3. Apex позволяет динамически изменять топологию, не отключая приложение. Apex позволяет обновлять приложение во время выполнения, чтобы вы могли добавлять и удалять операторы, обновлять свойства операторов или автоматически масштабировать приложение во время выполнения. Apache Flink не поддерживает ни одну из этих возможностей.
  4. Буферный сервер: между операторами существует шина сообщений, называемая буферным сервером. Абоненты могут подключаться к серверу буфера и получать данные из определенных смещений. Это окно поддерживает данные и хранит данные до тех пор, пока они не нужны ни одному подписчику.
  5. Отказоустойчивость: Apex имеет модель инкрементного восстановления, при сбое он может перезапустить только часть топологии, не нужно возвращаться к источнику, где в мгновение ока возвращается к источнику.
  6. Апекс имеет высокий уровень API, а также низкий уровень API. Flink только имеет высокий уровень API.
  7. У Apex есть библиотека под названием Apache Malhar, в которой есть множество проверенных коннекторов и операторов обработки, которые можно легко использовать повторно.
  8. Наконец, Apex больше ориентирован на производство приложений для больших данных, поэтому обладает множеством функций, которые помогут в простой разработке и обслуживании приложений.

Примечание: я являюсь приверженцем Apache Apex, поэтому я могу быть предвзятым к Apex:)

Другие вопросы по тегам