Шина¶
Элемент справочника «Кафка: Шины обмена» — это один настроенный обмен: откуда или куда идут данные, в каком формате, как часто и в сколько потоков. Шина всегда однонаправленная; для двустороннего обмена заводятся две шины.
Справочник иерархический: группы удобны для разделения обменов по контурам или подсистемам. Кроме того, только у группы есть реквизит «Пользователь регл. задания» — шины берут его от своей группы.
Наименование — рабочее имя обмена
Наименование шины подставляется в имя клиента, создаваемого в шлюзе, в имена фоновых заданий и в имя события журнала регистрации — Обмен данными.Кафка.<наименование шины>. По нему же обмен ищут в диагностике, поэтому имя стоит выбирать говорящее и потом не менять.
Общие настройки¶
| Реквизит | Назначение |
|---|---|
| Кластер | кластер, через который идёт обмен |
| Направление обмена | «Выгрузка» (1С → Kafka) или «Загрузка» (Kafka → 1С) |
| Тема | имя темы Kafka |
| Сердес ключа, Сердес значения | формат ключа и значения сообщения; по умолчанию «Строка» |
| Обработка | имя обработки, реализующей логику обмена |
| Количество потоков обмена | максимальное число одновременных фоновых заданий обмена |
| Таймаут клиента | время бездействия, после которого шлюз сам удаляет созданного клиента |
| Комментарий | произвольное описание |
Имя темы¶
Имя приводится к нижнему регистру и проверяется при записи: разрешены строчные латинские буквы, цифры, -, _, .; первым символом должна быть буква. Символ * допускается только последним — он превращает имя в шаблон.
| Направление | Что означает * в конце |
|---|---|
| Выгрузка | имя темы — префикс: обработчик возвращает суффикс для каждого объекта, и сообщения расходятся по нескольким темам |
| Загрузка | читаются все существующие темы, чьи имена начинаются с указанного префикса |
Две шины загрузки не могут читать одну и ту же тему — это проверяется при записи.
Потоки¶
Число потоков задаёт, сколько фоновых заданий подсистема запускает одновременно.
- При выгрузке потоки разбирают пакеты объектов. Значение 1 означает работу в текущем сеансе, без фоновых заданий.
- При загрузке между потоками распределяются разделы темы; потоков не будет больше, чем разделов. Скорость приёма растёт вместе с числом разделов.
Настройки отправки¶
| Реквизит | Назначение |
|---|---|
| Узел | узел плана обмена, по которому регистрируются отправляемые изменения |
Узел обязателен: без него выгрузка завершится ошибкой. Один узел не может использоваться двумя шинами одного направления. Состав и порядок отправляемых объектов метаданных задаёт не справочник, а обработчик обмена.
На форме шины доступна команда, показывающая размер очереди отправки — сколько объектов по каждому объекту метаданных плана обмена сейчас зарегистрировано к отправке. Это первый инструмент, когда нужно понять, есть ли вообще данные для отправки.
Настройки приёма¶
| Реквизит | Назначение |
|---|---|
| Процедура загрузки | имя процедуры в модуле объекта обработки, принимающей одно сообщение |
| Приём в реальном времени | ждать новые сообщения в течение всего сеанса, а не завершаться на конце темы |
| Таймаут ожидания новых сообщений | сколько шлюз ждёт сообщения в одном обращении, в миллисекундах |
| Длительность сеанса (мсек) | максимальная длительность сеанса приёма; 0 — до последнего доступного сообщения |
Имя процедуры указывается без скобок и параметров — только имя. Процедура должна быть экспортной и принимать один параметр, в который передаётся структура сообщения; подробности — в разделе Получение данных.
Реальное время требует ограничения сеанса
В режиме «Приём в реальном времени» длительность сеанса обязательна: иначе сеанс приема не завершится никогда. Это проверяется при записи шины.
На форме шины показываются текущие позиции чтения по разделам темы: зафиксированная позиция, дата фиксации, а по команде — начальная и конечная позиции в Kafka и отставание. См. Позиции чтения.
Расписание¶
| Реквизит | Назначение |
|---|---|
| Обмен по расписанию | включает работу обмена регламентным заданием |
| Расписание обмена | стандартное расписание регламентного задания |
| Разброс расписания обмена | случайное отклонение периода повтора, в секундах |
Регламентное задание для шины создаётся, обновляется и удаляется автоматически при записи и удалении элемента справочника — вручную заводить задания не нужно и нельзя: лишние экземпляры подсистема удаляет.
Пользователь, от имени которого выполняется задание, задаётся на группе шин: у самой шины такого реквизита нет. Шина, лежащая в группе, наследует её значение; шина вне групп запускается без явного указания пользователя. Если обмену нужны определённые права, поместите шину в группу и заполните реквизит «Пользователь регл. задания» у неё.
Разброс полезен, когда по расписанию работает много шин: он разводит их старты во времени, чтобы обмены не выстраивались в один пик. Разброс не может превышать половину периода повтора.
Ручной запуск
Команда запуска обмена на форме шины доступна только при выключенном расписании — чтобы ручной запуск и регламентное задание не работали с одной темой одновременно. Отлаживайте обмен вручную, включайте расписание после.
Дополнительные параметры Kafka¶
Табличная часть «Конфигурация» задаёт параметры клиента Kafka для конкретной шины. Это последний слой настроек: он перекрывает и базовые параметры, и табличные части кластера, где перечислены и разделы документации Kafka с именами параметров.
Что проверяется при записи¶
- заполнены кластер и направление обмена;
- сердесы ключа и значения допустимы для выбранного направления (
Игнорировать— только на приёме); - имя темы соответствует правилам,
*стоит последним; - тема загрузки и узел выгрузки не заняты другой шиной;
- заполнено имя процедуры загрузки — для приёма;
- заполнено количество потоков;
- при приёме в реальном времени заполнена длительность сеанса;
- разброс расписания не больше половины периода повтора.