Получение сообщений из RabbitMQ и отправка события Citeck
Пример чтения из rabbitmq и отправка события Citeck:
Создать новый секрет (Модель - Секреты) для подключения к RMQ.
Создать новый endpoint (Модель - Конечные точки) с id „rabbitmq-endpoint“ (можно любой id, но в camel конфиге мы на него ссылаемся) для подключения к RMQ и устанавить секрет из п.1 в него.
Зайти в журнал Camel DSL (Интеграция - Camel DSL) и создать новый контекст со следующим конфигом:
- beans:
- 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:
uri: spring-rabbitmq:default # default здесь -это дефолтный exchange в RMQ. Обычно он обозначается пустой строкой, но в camel endpoint'е вместо этого пишется "default"
parameters:
connectionFactory: '#bean:rabbitConnectionFactory'
queues: test-queue
steps:
- removeHeaders: # если в дальнейшем предполагается переотправка сообщения в RMQ, то лучше удалить заголовки, которые относятся к RMQ. Здесь этот этап просто для примера.
pattern: "CamelRabbitmq*" #"CamelRabbitmqRoutingKey"
- to: log:rmq-test # вывод в лог. Можно убрать
- to: ecos-event:test-event-type # отправка события с типом "test-event-type". В теле отправляется DataValue.of(exchange.message.body)