Подтвердить что ты не робот

Для чего вы используете Apache Kafka?

Я хотел бы спросить, правильно ли я понимаю Кафку.

Для действительно действительно большого потока данных обычная база данных не подходит, поэтому люди используют такие вещи, как Hadoop или Storm. Кафка сидит поверх указанных баз данных и предоставляет... направления, по которым должны поступать данные в реальном времени?

4b9b3361

Ответ 1

Я так не думаю.

Kafka - это система обмена сообщениями, и она не находится поверх базы данных.

Вы можете сравнить Kafka с системами обмена сообщениями, такими как ActiveMQ, RabbitMQ и т.д.

Из документации Apache страница

Kafka - это распределенная, разделенная, реплицированная служба журнала фиксации. Он обеспечивает функциональность системы обмена сообщениями, но с уникальным дизайном.

Ключевые вынос:

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

введите описание изображения здесь

Связь между клиентами и серверами осуществляется с помощью простого высокопроизводительного, негерметичного протокола TCP.

Случаи использования:

  • Обмен сообщениями: Kafka отлично работает как замена более традиционного брокера сообщений. В этой области Kafka сопоставим с традиционными системами обмена сообщениями, такими как ActiveMQ или RabbitMQ
  • Отслеживание активности сайта: Исходный вариант использования Kafka состоял в том, чтобы перестроить конвейер отслеживания активности пользователя как набор каналов публикации в режиме реального времени
  • Показатели: Kafka часто используется для данных оперативного мониторинга, который включает в себя агрегирование статистики из распределенных приложений для создания централизованных каналов операционных данных.
  • Агрегирование журналов
  • Обработка потока
  • Источник событий - это стиль разработки приложения, в котором изменения состояния регистрируются как упорядоченная по времени последовательность записей.
  • Журнал фиксации: Kafka может служить своего рода внешним протоколом фиксации для распределенной системы. Журнал помогает реплицировать данные между узлами и действует как механизм повторной синхронизации для неудавшихся узлов для восстановления своих данных.

Ответ 2

Чтобы полностью понять роль Apache Kafka вы должны получить более широкую картину и знать примеры использования Kafka. Современные системы обработки данных пытаются порвать с классической архитектурой приложений. Вы можете начать с обзора архитектуры Kappa:

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

Ответ 3

Случаи использования на официальном сайте Apache Kafka: http://kafka.apache.org/documentation.html#uses

Другие варианты использования: -

Труба Кафка-Шторм - Kafka может использоваться с Apache Storm для обработки конвейера данных для высокоскоростной фильтрации и сопоставления образцов на лету.

Ответ 4

Apache Kafka - это программная платформа с открытым исходным кодом, написанная на Scala и Java, в основном используемая для потоковой обработки.

Варианты использования Apache Kafka:

  • обмен сообщениями
  • Отслеживание активности сайта
  • метрика
  • Агрегация журналов
  • Потоковая обработка
  • Событие Sourcing
  • Записать журнал

Для получения дополнительной информации используйте официальный сайт Apache Kafka. https://kafka.apache.org/uses

Ответ 5

Кафка - это система обмена сообщениями, и она не располагается поверх базы данных. enter image description here

enter image description here

enter image description here enter image description here

Ответ 6

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

Он масштабируется по горизонтали, отказоустойчив, быстро работает и работает в тысячах компаний.

Современные организации имеют различные конвейеры данных, которые облегчают связь между системами или службами. Все становится немного сложнее, когда разумному количеству сервисов необходимо общаться друг с другом в режиме реального времени.

Архитектура становится сложной, поскольку для обеспечения возможности взаимодействия этих услуг требуются различные интеграции. Точнее говоря, для архитектуры, которая включает в себя m исходных и n целевых служб, необходимо написать nxm различных интеграций. Кроме того, каждая интеграция поставляется с другой спецификацией, что означает, что для нее может потребоваться другой протокол (HTTP, TCP, JDBC и т.д.) Или другое представление данных (Binary, Apache Avro, JSON и т.д.), Что еще более усложняет задачу., Кроме того, исходные службы могут учитывать увеличение нагрузки от соединений, что может повлиять на задержку.

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

Кроме того, в настоящее время доступно множество пользовательских интерфейсов с открытым исходным кодом и уровня предприятия для управления кластерами Kafka. Для более подробной информации обратитесь к моему ответу на этот вопрос.

Вы можете найти более подробную информацию об Apache Kafka и о том, как он работает, в блоге "Почему Apache Kafka?"

Ответ 7

Kafka - это хорошо масштабируемая система обмена сообщениями. Он действует как транспортный уровень, гарантирующий ровную семантику и обработку паром Spark. Следующий вопрос, который приходит мне в голову, - это даже если spark может опрашивать каталоги, проверять файлы и даже читать из сокета или порта. Как эта Кафка и искра работают в тандеме? Я имею в виду, что приложение, написанное на каком-то языке, вместо записи в базу данных для хранения, напрямую подает данные в порт (или помещает файлы, которые на самом деле не были бы приняты, а скорее были бы какой-то пакетной обработкой), из которых затем данные читается производителем Kafka, а затем через потребительский API Kafka затем читается и обрабатывается потоковой передачей?