Итак Я решил начать с Apache Kafka Поехали
В современную эпоху больших-данных, самая первая задача состоит в том, чтобы собрать данные всетаки это огромный
объем данных, а вторая задача состоит в том, чтобы проанализировать его. Этот анализ обычно включает в себя следующие типы данных и многое другое:
- Данные о поведении пользователя
- Трассировка производительности приложений
- Данные о деятельности в виде логов
- Сообщения о событиях
Одно из основных действий для этого представляет собой механизм для подключения различных приложений, с помощью сообщений (messages), которые маршрутизируются между собой, с помощью брокера сообщений, например таких как Apache Kafka.
Kafka является решением для передачи данных между различными программными решениями в реальном времени. Т.е. мы имеем дело с быстой передачей объемов информации между несколькими потребителями.
Kafka обеспечивает бесшовную интеграцию между поставщиками информациии и потребителями, не блокируя поставщиков информации и не давая им знать кто конечные потребители.
Apache Kafka это система обмена сообщениями публикации-подписки с открытым исходным кодом разработан со следующими характеристиками:
- Стойкие сообщения (Persistent messaging): Чтобы получить реальную отдачу от больших объемов данных, любой вид потери информации должен быть исключен. Apache Кафка разработан с O (1) дисковой структурой, которое обеспечивает стабильную по времени производительность даже с очень большими объемами хранимых сообщений, порядка терабайт. С Kafka, сообщения, сохраняются на диске, а также реплицируются внутри кластера, чтобы предотвратить потерю данных.
- Высокая пропускная способность: Kafka способен обрабатывать сотни мегабайт чтения и записи в секунду от большого количества клиентов. При наличии соответсвующего железа.
- Маштабируемость: Apache Kafka с его кластерной-ориентированной структурой явно поддерживает разделение сообщений с серверами Кафка и распределяя потребление на протяжении кластера потребительских машин. Кафка кластер может расти упруго и прозрачно, без каких-либо простоев.
- Поддержка нескольких клиентов: Система Apache Kafka поддерживает легкую интеграцию клиентов из различных платформ, таких как Java, .NET, PHP, Ruby и Python.
- Работа реальном времени: Сообщения, полученные от поставщиков должны быть сразу видны на потребительских потоках; эта функция имеет решающее значение для систем на основе событий, таких как Complex Event Processing (CEP) систем.
Kafka обеспечивает публикации-подписки в режиме реального времени решение, что позволяет режиме реального времени обработку пакетных данных которые могут быть порядок больше чем реальные данные. Kafka также поддерживает параллельную загрузку данных в системах Hadoop.
На следующей диаграмме показан типичный сценарий агрегации и анализа больших данных поддерживаемой системой обмена сообщениями Apache Kafka:
Со стороны производства, существуют различные виды поставщиков информации, такие как:
- веб-приложения Frontend генерирующие журналы (logs) приложений
- прокси-серверы генерирующие журналы(logs) веб-аналитики
- Производитель адаптеров генерирующие журналы(logs) преобразования
- Сервисы генерирующие журналы(logs) трассировки вызова
- И прочее…
Что касается потребления, существуют различные виды потребителей, например, следующий вид:
Оффлайн потребителей, потребляющих сообщения и сохраняющие их в Hadoop или традиционные хранилища данных для автономного анализа.
Потребителей в режиме почти реального времени, получающие сообщения и сохраняющие их в какой либо NoSQL хранилище данных, такие как HBase или Cassandra, для аналитики в режиме близзкому к реальному времени
Потребители в режиме реального времени, такие как Spark или Storm, которые фильтруют сообшения в памяти и вызывают тревожные события для соответствующих групп.
Продолжение следует….
One thought on “Добро пожаловать в мир Apache Kafka”
wow, awesome post.Really thank you! Great. Delaura
Williamol