Написать в техподдержку Позвонить нам
Админпанель Выход

Содержание статьи:

    Шины данных

    Описание

    В качестве шины данных в Mail.Ru Cloud Big Data используется Apache Kafka.

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

    Терминология

    Для начала нужно разобраться с терминологией Kafka.

    Producers/производитель - любой источник входящих данных. Это могут быть сервера, выводящие журналы, устройства IOT, скрипт, преобразующие данные.

    Topics/темы - когда производители загружают данные, то они относятся к одной из доступных "тем", что является способом группировки связанных данных для обработки. Сами темы представляют собой журналы постоянно растущих каналов данных, где данные хранятся в простом формате "ключ-значение". Данные, поступающие от производителей, доставляют сообщения в конец журнала.

    Messages/сообщения - это пара данных "ключ-значение".

    Consumers/потребители - потребители воспринимают данные, предоставленные производителями. Потребители - это конечный пункт назначения, где хранятся данные, например, база данных.

    Partitions/разделы - темы можно разбивать на разделы. Таким образом тему можно разделить на несколько компьютеров, что делает Kafka крайне масштабируемым. 

    Допустим, существует кластер подключенных машин, который может:

    • принимать данные от нескольких производителей (producers).
    • хранить полученные данные.
    • разрешать потребителям читать сохраненные данные. Как правило, потребители читают одно сообщение за раз.
    • порядковое чтение данных. Скажем, сообщение m1 получено кластером в момент времени t1; а сообщение m2 в момент времени T1+5. Потребитель прочитает сообщение m1 перед m2.
    • обеспечивает однократную доставку данных. Это значит, что сообщение отправленное в кластер будет получено потребителем гарантированно хотя бы раз.

    Масштабирование

    Как и большинство составляющих в экосистеме Hadoop, кластер Kafka способен масштабироваться на бесконечное число узлов.

    Масштабирование до нескольких узлов работает в Kafka путем разделения тем на несколько разделов. Например, когда тема разделена на 2 раздела, это значит, что рабочая нагрузка одной темы разделена на 2 узла в кластере. Таким образом, появляется возможность не только выделять узел под тему; но и разделять тему на несколько узлов.


    Полезна ли была эта статья?