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

Продюсеры

Продюсер (producer) — отправитель сообщений в Kafka. Один элемент может обслуживать несколько топиков и типов объектов.

Справочник Продюсеры имеет двухуровневую структуру:

  • Диспетчер задач — группа продюсеров с общими параметрами параллелизма;
  • Продюсер — настройки отправки для конкретного типа объектов и топика.

Диспетчер задач

Группа продюсеров, отвечающая за распределение нагрузки между подпотоками.

Справочник Продюсеры — диспетчер задач

Поля диспетчера

Поле Описание
Наименование Произвольное название диспетчера
Подпотоки обработки Количество параллельных потоков сериализации
Подпотоки транспорта Количество параллельных потоков отправки в Kafka
Использовать пакетную публикацию Отправка нескольких сообщений одним пакетом

Рекомендуемое соотношение

Подпотоков обработки = Подпотоков транспорта × 2 — обычно сериализация идёт быстрее, чем отправка по сети.


Продюсер

Элемент справочника с конкретными настройками.

Продюсер — форма (Произвольный обработчик)

Продюсер — форма (КД 3.1)

Команды формы

Команда Описание
Блокировка / Регистрации Останавливает постановку новых объектов в очередь
Блокировка / Сериализации Останавливает сериализацию объектов из очереди
Блокировка / Публикации Останавливает отправку сериализованных сообщений в Kafka

Основные поля

Поле Описание
Наименование Произвольное название продюсера
Брокер Брокер Kafka, через который отправляются сообщения

Объекты метаданных

Какие объекты отправляются и как:

Поле Описание
Тип объект Ключ регистрации — при поступлении сообщения в очередь адаптер ищет продюсер, у которого значение в этом поле точно совпадает с ключом. См. Тип объект — ключ регистрации ниже. Для регистров, подчинённых регистратору, указывается имя регистра — при записи в очередь будет помещён регистратор.
Имя топика Топик Kafka, в который публикуются сообщения этого типа
Тип сериализации Способ преобразования данных: Конвертация данных или Произвольный обработчик
Имя метода сериализации Для «Произвольный обработчик» — имя экспортного метода
Имя модуля сериализации Для «Произвольный обработчик» — имя общего модуля
Имя ПОД сериализации Для «Конвертация данных» — имя правил обработки данных из модуля обмена КД 3.1
Формат сериализации URL пространства имён XDTO-пакета

Автодополнение топиков

При открытии формы продюсера список доступных топиков автоматически запрашивается из брокера Kafka через Admin API и становится доступен для выбора и автодополнения в поле Имя топика. При смене брокера список обновляется. Системные внутренние топики Kafka в список не включаются.

Тип объект — ключ регистрации

Тип объект — это строковый ключ. При постановке сообщения в очередь адаптер ищет продюсер, у которого значение этого поля буква-в-букву совпадает с ключом из вызова (никаких подстрок, масок или иерархий — только полное совпадение). От значения ключа зависит, как именно срабатывает регистрация:

Значение «Тип объект» Автоматическая регистрация при записи Регистрация через API
Полное имя метаданных (Справочник.Номенклатура, Документ.ЗаказПокупателя, РегистрНакопления.ТоварыНаСкладах и т.п.) — подписка адаптера отрабатывает автоматически при каждой записи объекта этого типа — можно вызывать ПоместитьВОчередьИсходящих(Ссылка) явно
Произвольный ключ (system.events, crm.order-created, my-key) — подписки на такой ключ не сработают — обязательно передавать ключ вторым параметром: ПоместитьВОчередьИсходящих(Сообщение, "system.events")

Только через API — намеренно

Если хотите, чтобы сообщения попадали в топик исключительно через API (без срабатывания подписок на запись) — укажите в «Тип объект» значение, не совпадающее ни с одним именем метаданных (например, crm.order-placed). Тогда записи объектов 1С в очередь не попадут, а прикладной код будет регистрировать события сам — ПоместитьВОчередьИсходящих(Сообщение, "crm.order-placed").

Это типичный паттерн для произвольных событий.

Параметры продюсера

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

Поле Описание
Ключ Название параметра
Значение Значение параметра

Примеры

Связанные разделы