Перейти к содержанию

Шина

Элемент справочника «Кафка: Шины обмена» — это один настроенный обмен: откуда или куда идут данные, в каком формате, как часто и в сколько потоков. Шина всегда однонаправленная; для двустороннего обмена заводятся две шины.

Справочник иерархический: группы удобны для разделения обменов по контурам или подсистемам. Кроме того, только у группы есть реквизит «Пользователь регл. задания» — шины берут его от своей группы.

Наименование — рабочее имя обмена

Наименование шины подставляется в имя клиента, создаваемого в шлюзе, в имена фоновых заданий и в имя события журнала регистрации — Обмен данными.Кафка.<наименование шины>. По нему же обмен ищут в диагностике, поэтому имя стоит выбирать говорящее и потом не менять.

Общие настройки

Реквизит Назначение
Кластер кластер, через который идёт обмен
Направление обмена «Выгрузка» (1С → Kafka) или «Загрузка» (Kafka → 1С)
Тема имя темы Kafka
Сердес ключа, Сердес значения формат ключа и значения сообщения; по умолчанию «Строка»
Обработка имя обработки, реализующей логику обмена
Количество потоков обмена максимальное число одновременных фоновых заданий обмена
Таймаут клиента время бездействия, после которого шлюз сам удаляет созданного клиента
Комментарий произвольное описание

Имя темы

Имя приводится к нижнему регистру и проверяется при записи: разрешены строчные латинские буквы, цифры, -, _, .; первым символом должна быть буква. Символ * допускается только последним — он превращает имя в шаблон.

Направление Что означает * в конце
Выгрузка имя темы — префикс: обработчик возвращает суффикс для каждого объекта, и сообщения расходятся по нескольким темам
Загрузка читаются все существующие темы, чьи имена начинаются с указанного префикса

Две шины загрузки не могут читать одну и ту же тему — это проверяется при записи.

Потоки

Число потоков задаёт, сколько фоновых заданий подсистема запускает одновременно.

  • При выгрузке потоки разбирают пакеты объектов. Значение 1 означает работу в текущем сеансе, без фоновых заданий.
  • При загрузке между потоками распределяются разделы темы; потоков не будет больше, чем разделов. Скорость приёма растёт вместе с числом разделов.

Настройки отправки

Реквизит Назначение
Узел узел плана обмена, по которому регистрируются отправляемые изменения

Узел обязателен: без него выгрузка завершится ошибкой. Один узел не может использоваться двумя шинами одного направления. Состав и порядок отправляемых объектов метаданных задаёт не справочник, а обработчик обмена.

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

Настройки приёма

Реквизит Назначение
Процедура загрузки имя процедуры в модуле объекта обработки, принимающей одно сообщение
Приём в реальном времени ждать новые сообщения в течение всего сеанса, а не завершаться на конце темы
Таймаут ожидания новых сообщений сколько шлюз ждёт сообщения в одном обращении, в миллисекундах
Длительность сеанса (мсек) максимальная длительность сеанса приёма; 0 — до последнего доступного сообщения

Имя процедуры указывается без скобок и параметров — только имя. Процедура должна быть экспортной и принимать один параметр, в который передаётся структура сообщения; подробности — в разделе Получение данных.

Реальное время требует ограничения сеанса

В режиме «Приём в реальном времени» длительность сеанса обязательна: иначе сеанс приема не завершится никогда. Это проверяется при записи шины.

На форме шины показываются текущие позиции чтения по разделам темы: зафиксированная позиция, дата фиксации, а по команде — начальная и конечная позиции в Kafka и отставание. См. Позиции чтения.

Расписание

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

Регламентное задание для шины создаётся, обновляется и удаляется автоматически при записи и удалении элемента справочника — вручную заводить задания не нужно и нельзя: лишние экземпляры подсистема удаляет.

Пользователь, от имени которого выполняется задание, задаётся на группе шин: у самой шины такого реквизита нет. Шина, лежащая в группе, наследует её значение; шина вне групп запускается без явного указания пользователя. Если обмену нужны определённые права, поместите шину в группу и заполните реквизит «Пользователь регл. задания» у неё.

Разброс полезен, когда по расписанию работает много шин: он разводит их старты во времени, чтобы обмены не выстраивались в один пик. Разброс не может превышать половину периода повтора.

Ручной запуск

Команда запуска обмена на форме шины доступна только при выключенном расписании — чтобы ручной запуск и регламентное задание не работали с одной темой одновременно. Отлаживайте обмен вручную, включайте расписание после.

Дополнительные параметры Kafka

Табличная часть «Конфигурация» задаёт параметры клиента Kafka для конкретной шины. Это последний слой настроек: он перекрывает и базовые параметры, и табличные части кластера, где перечислены и разделы документации Kafka с именами параметров.

Что проверяется при записи

  • заполнены кластер и направление обмена;
  • сердесы ключа и значения допустимы для выбранного направления (Игнорировать — только на приёме);
  • имя темы соответствует правилам, * стоит последним;
  • тема загрузки и узел выгрузки не заняты другой шиной;
  • заполнено имя процедуры загрузки — для приёма;
  • заполнено количество потоков;
  • при приёме в реальном времени заполнена длительность сеанса;
  • разброс расписания не больше половины периода повтора.