Каковы преимущества и недостатки Kafka над Apache Pulsar

Yahoo разработала систему сообщений Pulsar, pub-sub и сделала ее открытым исходным кодом. Его теперь инкубационный проект Apache. Поскольку Кафка также используется для этой цели. Хотите знать, основные плюс и минус точки Кафки над Пульсаром.

Ответ 1

В последнее время я немного поиграл, и вот что я собрал.

Нейтральные:

  • Я собирался сделать Kafka победой в сообществе/документации и т.д. Но мне не удалось легко найти ответы на вопросы, которые у меня были на Kafka, некоторые из них были старыми и запутанными (нацеливаясь на устаревший API). Но документация Pulsar достаточно хороша, разработчики очень отзывчивы на Slack (привет @Matteo Merli :)), а в основных статьях (Zookeeper, Bookkeeper) есть приличная документация, а также вы хотите погрузиться во внутренние дела.
  • Kafka стремится к высокой пропускной способности, Pulsar для низкой латентности. Оба обеспечивают настройки для управления им.
  • Оба являются готовыми к производству и проверены на бой в нескольких компаниях

Pro pulsar:

  • по моему опыту API проще в использовании. В Кафке брокер немой, и потребители делают работу по структурированию коммуникаций по своему усмотрению. Эта гибкость достигается за счет того, что пользователь Kafka должен понимать, как собрать фигуры вместе. Я предполагаю, что предполагаемое преимущество - это повышенная гибкость, но поскольку Pulsar смог воспроизвести API-интерфейс Kafka Consumerers (и с довольно небольшим кодом), я даю это как про Pulsar.
  • вы можете делать то, что нелегко сделать (или, возможно, невозможно в Kafka): многопользовательский режим (безопасность, изоляция...), управление ресурсами (дросселирование темы, квоты), георепликация
  • В нем есть некоторые функции, которых Kafka в настоящее время не хватает, например, поиск определенного MessageId
  • Pulsar масштабируется до миллионов тем, когда Kafka ограничен тем, как он структурирует данные в Zookeeper
  • Простота развертывания. Автономный Pulsar запустит собственный локальный Zookeeper, и я лично нашел конфигурацию более понятной
  • написанный на Java, по сравнению с сочетанием старого кода Scala и Java. Также я нашел, что кодовая база хорошо организована и намного проще следовать. Отчасти потому, что он опирается на Zookeeper и Bookkeeper, которые являются внешними проектами со своей собственной документацией/сообществом/разработчиками и т.д. (Обратите внимание, что они также находятся в базе Apache, а также из Yahoo, поэтому они хорошо работают вместе).

Про Кафка:

  • У Кафки есть вещи, построенные сверху, как потоки Кафки (никогда не использовались, поэтому я не могу сказать, есть ли эквивалент)

Также читайте:

Ответ 2

Apache Kafka более зрелый (он существует дольше) и имеет API более высокого уровня (то есть KStreams). Это зрелость, однако ограничивает текучесть и гибкость, т.е. ~ 500 открытых PR на GitHub

Apache Pulsar глубоко изучил проектные решения Apache Kafka и включил в него улучшенный дизайн и набор захватывающих возможностей, например идею пространств имен, и возможность применения ACL или квот на уровне пространства имен кажется таким глубоким благом Идея, чтобы обеспечить лучшую поддержку нескольких арендаторов. Некоторые другие интересные особенности Pulsar - это гео-репликация, а также объединение очереди и потоковой передачи.

Ответ 4

Нам нужна потоковая платформа с постоянными темами и разумной задержкой и высокой пропускной способностью. Недавно мы оценили, следует ли нам идти с Kafka или Pulsar, и в отличие от @nha мы теперь выступаем за Apache Kafka. Вот наши выводы:

Пульсар - Плюсы

  • многофункциональные - постоянные/непостоянные темы, многопользовательские, ACL, репликация нескольких DC и т.д.
  • более гибкий клиентский API - включая CompletionFutures, плавные интерфейсы и т.д.
  • Компоненты java-клиента являются потокобезопасными - потребитель может распознавать сообщения из разных потоков

Пульсар - Против

  • У java-клиента практически нет javadoc
  • небольшое сообщество - 8 вопросов о стеке
  • messageId, привязанная к BookKeeper - потребители не могут легко позиционировать себя по этой теме по сравнению с коррекцией Kafka, которая представляет собой непрерывную последовательность чисел.
  • Reader не может легко прочитать последнее сообщение в теме - нужно пропустить все сообщения до конца.
  • нет транзакций
  • более высокая операционная сложность - Zookeeper + Брокерские узлы + BookKeeper - все кластерные
  • латентность сомнительна - есть один дополнительный удаленный вызов между узлом Broker и BookKeeper (по сравнению с Kafka)

Кафка - Плюсы

  • очень богатый и полезный javadoc
  • Потоки Кафки
  • зрелые и широкие сообщества
  • проще работать в производстве - меньше компонентов - брокерский узел обеспечивает также хранение
  • транзакции - атомные чтения и записи в рамках тем
  • смещения образуют непрерывную последовательность - потребитель может легко искать последнее сообщение

Кафка - Против

  • потребитель не может подтвердить сообщение из другого потока
  • нет мультивничества
  • нет надежной репликации Multi-DC - (предлагается в Confluent Enterprise)

Ответ 5

источник


Pulsar, новейший проект Apache Software Foundations для получения статуса верхнего уровня, проводит много сравнений с Kafka, другим проектом ASF.

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

Между тем, в отчете Apache Kafka за 2018 год, в котором было опрошено более 600 пользователей, были обнаружены конвейеры данных и обмен сообщениями в двух основных областях применения этой технологии. Это нашло все большее применение с ростом архитектуры микросервисов.

"Варианты использования двух систем во многом совпадают, но первоначальный дизайн сильно отличался", - сказал Маттео Мерли, один из его создателей, которые с тех пор создали Streamlio, стартап, предлагающий платформу для быстрой передачи данных.

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

Он был выпущен как открытый исходный код в 2016 году и поступил в инкубатор ASF в июне 2017 года. В течение примерно четырех лет он использовался в приложениях Yahoo Mail, Finance, Sports, Gemini Ads и Sherpa, Yahoos.

В своем блоге соучредитель Сиджи Го подвел итог "Пульсар против Кафки" следующим образом:

"Apache Pulsar объединяет высокопроизводительную потоковую передачу (которую преследует Apache Kafka) и гибкую традиционную организацию очередей (которую преследует RabbitMQ) в единую модель обмена сообщениями и API. Pulsar предоставляет вам одну систему для потоковой передачи и организации очередей, с одинаковой высокой производительностью, используя унифицированный API. "

Мерли сказал: "Существуют различия между потоковой передачей и очередями; существует много вариантов использования, когда вам нужен один или другой, но большинству людей нужны оба варианта для разных вариантов использования".

Двухслойная архитектура Двухслойная конструкция - ключ к Pulsar, сказал Мерли. Имеется уровень посредников без сохранения состояния, которые получают и доставляют сообщения, а также уровень постоянного хранения с набором узлов хранения Apache BookKeeper, называемых букмекерами, которые обеспечивают долговременное хранение с низкой задержкой.

По словам Мерли, Pulsar был основан на идее надежных гарантий данных. Он был рассчитан на совместное потребление, а Кафки не было. Кроме того, Pulsar позволяет пользователям настраивать срок хранения сообщений даже после их использования всеми подписками.

Его многоуровневая архитектура и сегментно-ориентированное хранилище обеспечивают ключевые преимущества:

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

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

С момента входа в инкубатор основной упор был сделан на то, чтобы облегчить начало работы с Pulsar.

В июне была выпущена версия 2.0 Pulsar, включающая в себя "потоковую" обработку, называемую Pulsar Functions, которая позволяет пользователям писать функции обработки данных на Java или Python для данных при их перемещении по конвейеру. Версия 2.2 будет выпущена в ближайшее время, которая будет включать интерактивные SQL-запросы.

Pulsar предоставляет несколько привязок к языку и протоколу, включая Java, C++, Python и WebSockets, а также API-интерфейс, совместимый с Kafka.


Дополнительная информация: Apache Pulsar: это KAFKA Killer?

Apache Pulsar: это убийца КАФКА? Автор Бхагван с. Сони enter image description here


ПОЧЕМУ мы должны выбрать Apache Pulsar вместо Kafka?

Apache Pulsar - это корпоративная версия PubSub, изначально разработанная Yahoo и в настоящее время поддерживаемая Apache Software Foundation. Apache Pulsar работает на производственных системах за последние 3 года и доказал свою стабильность.

Apache Pulsar охватывает почти все функции, которые предлагает нам Kafka, возможно, с разными именами. Пульсар имеет много особенностей, но я хотел бы выделить некоторые из них, которые помогут нам отличиться от Кафки -

1} Apache Pulsar предоставляет вам 3 типа подписки на тему: A} Эксклюзивно - только один потребитель будет использовать данные из темы B} Shared - несколько потребителей будут использовать данные из темы C} Аварийное переключение - более одного потребителя, но в данный момент времени только один будет потреблять данные.

2} Каждое пространство имен может иметь одну или несколько тем

3} Сильная поддержка Multitanency

4} Репликация данных через несколько кластеров

5} Сильная поддержка долговечности сообщений от потери данных