Kafka
Apache Kafka - это платформа распределенной потоковой передачи событий с открытым исходным кодом, которая находит применение во многих отраслях. Kafka работает как кластер из одного или нескольких серверов Kafka, которые взаимодействуют с клиентами. Клиенты могут выступать в роли потребителей, получая сообщения от серверов Kafka, или в роли производителей, публикуя сообщения. Сообщения Kafka (также известные как события или записи в документации) делятся на темы. Каждое сообщение в теме может иметь дополнительный ключ, используемый для организации и разделения сообщений.
Драйвер устройства Kafka - это клиент, который может выступать как в роли потребителя, так и в роли производителя, позволяя AggreGate Server обмениваться сообщениями с серверами Kafka.
Информация о драйвере
Идентификатор Расширения драйвера: | com.tibbo.linkserver.plugin.device.kafka |
Глобальные настройки
Не определены.
Настройки уровня пользователя
Не определены.
Свойства аккаунта устройства
Свойства соединения
Настройки соединения определяют, как AggreGate Server будет подключаться к экземплярам Kafka и какие темы будут опрашиваться. Здесь приведен список доступных свойств соединения:
Свойство | Описание |
Адреса брокеров | Таблица данных, указывающая подробности о слушателях брокера Kafka для первоначального подключения.
|
Темы | Список тем, на которые будет подписано устройство. |
Максимальное количество сообщений, вычитываемое за цикл опроса | Максимальное количество записей, которые будут возвращены по каждому опросу. |
Продолжительность опроса (мс) | Максимум времени ожидания ответа во время запроса опроса. |
Интервал автоматической фиксации смещения (мс) | Количество времени, в течение которого смещение потребителей будет автоматически фиксироваться в Kafka. |
Идентификатор группы потребителей | Идентификатор группы потребителей Kafka, к которой принадлежит данное устройство. |
Важно! При настройке драйвера устройства Kafka в AggreGate Server для каждого экземпляра устройства необходимо задавать уникальный идентификатор экземпляра потребителя (Consumer Instance ID) для обеспечения корректного получения сообщений.
Kafka рассматривает потребителей с одинаковыми значениями
group.idиgroup.instance.idкак одного участника группы. Если несколько устройств AggreGate Server используют одинаковые значения, это может привести к:
Потере сообщений или отсутствию назначения разделов (partitions)
Частым перебалансировкам (rebalances)
Нестабильному или неполному потреблению данных
Рекомендации:
При использовании статического членства (static membership) задавайте уникальный
group.instance.idдля каждого устройства.Если статическое членство не используется, назначайте уникальный client ID.
Избегайте настройки нескольких устройств с одинаковыми идентификаторами потребителей в одной группе.
Потребители с одинаковым
group.idсовместно обрабатывают разделы в топике, однако каждому потребителю в группе всё равно требуется уникальный идентификатор экземпляра, чтобы избежать конфликтов.
Активы устройства
Активы не поддерживаются драйвером.
Настройки устройства
Драйвер устройства Kafka создает одну переменную настроек устройства:
Имя переменной | Описание переменной | Комментарии |
messageCount | Количество сообщений | Количество полученных сообщений. Значение обновлено при каждой синхронизации. При повторном подключении счетчик обнуляется. |
Операции с устройством
Опубликовать текстовое сообщение
Данная функция позволяет устройству выступать в роли производителя сообщений путем записи сообщения в тему.
Формат входных параметров функции имеет следующие поля:
Имя | Тип | Описание |
topic | String | Указывает тему, в которой должно быть записано сообщение. |
textMessage | String | Значение сообщения. |
key | String | Значение ключа для сообщения. Если оставить значение |
Функция не имеет выходных параметров.
События устройства
Сообщение
Возникает, когда AggreGate Server получает сообщение на одну из тем, перечисленных в свойствах соединения.
Имя события | сообщение |
Права доступа: | Доступно на уровне прав Наблюдателя |
Записи: | 1 |
Формат записи:
Поле | Тип поля | Заметки |
topic | String | Тема сообщения. |
key | String | Ключ полученного сообщения. |
textMessage | String | Текст полученного сообщения. |
partition | String | Указывает, в каком разделе хранится сообщение. |
offset | String | Используется для поддержания текущей позиции потребителя и обеспечения того, чтобы одно и то же сообщение не было получено дважды. |
key | String | Используется для организации и разделения сообщений внутри темы. |
Расширенная информация о синхронизации
Драйвер Kafka опрашивает кластер Kafka и подписывается на темы, указанные в свойствах соединения.
Текущий драйвер пометит устройство как выключенное, если соединение с брокером Kafka не может быть установлено.
Was this page helpful?