Получение сообщений из RabbitMQ и отправка события Citeck
Пример демонстрирует базовый сценарий интеграции через RabbitMQ:
Подключение к очереди RabbitMQ с использованием credentials из ECOS Endpoint.
Удаление служебных заголовков RabbitMQ перед дальнейшей обработкой.
Логирование входящего сообщения.
Публикация события Citeck с телом, сформированным из тела сообщения.
Примечание
Для работы примера необходимо:
Создать секрет (Модель → Секреты) с данными для подключения к RabbitMQ.
Создать endpoint (Модель → Конечные точки) с id
rabbitmq-endpointи указать созданный секрет.Зайти в журнал Camel DSL (Интеграция → Camel DSL) и создать новый контекст с конфигурацией ниже.
- beans:
# Бин подключения к RabbitMQ на основе данных из ECOS Endpoint
- name: rabbitConnectionFactory
type: org.springframework.amqp.rabbit.connection.CachingConnectionFactory
properties:
uri: '{{ecos-endpoint:rabbitmq-endpoint/url}}'
username: '{{ecos-endpoint:rabbitmq-endpoint/credentials/username}}'
password: '{{ecos-endpoint:rabbitmq-endpoint/credentials/password}}'
- route:
from:
# "default" — дефолтный exchange в RabbitMQ (обычно обозначается пустой строкой,
# но Camel требует явного значения "default")
uri: "spring-rabbitmq:default"
parameters:
connectionFactory: '#bean:rabbitConnectionFactory'
queues: test-queue
steps:
# Удаление заголовков RabbitMQ — актуально, если сообщение будет переотправлено в RMQ
- removeHeaders:
pattern: "CamelRabbitmq*"
# Логирование входящего сообщения
- to: "log:rmq-test"
# Отправка события типа "test-event-type".
# В теле передаётся DataValue.of(exchange.message.body)
- to: "ecos-event:test-event-type"