Я привык к верблюду, где он несколько прост в конвейерном выводе из одного элемента на другой. Я хочу отправить все события приложения в очередь AMQP, пожарный шланг, а затем маршрутизировать события в разные очереди в зависимости от типа события. Например, если тип события session.created, я хотел бы вытащить его из пожарного шланга и отправить его в session.created queue.Как конвейерные очереди с интеграцией пружин?
Я определил следующую конфигурацию raabitmq
<rabbit:connection-factory id="connectionFactory" host="localhost"/>
<rabbit:admin connection-factory="connectionFactory"/>
<rabbit:template id="amqpTemplate" connection-factory="connectionFactory"/>
<rabbit:queue name="q.firehose"/>
<rabbit:queue name="q.session.created"/>
<rabbit:direct-exchange name="e.firehose">
<rabbit:bindings>
<rabbit:binding key="firehose" queue="q.firehose"/>
</rabbit:bindings>
</rabbit:direct-exchange>
<rabbit:headers-exchange name="e.router">
<rabbit:bindings>
<rabbit:binding queue="q.session.created">
<rabbit:binding-arguments>
<entry key="x-match" value="all"/>
<entry key="event_type" value="session.created"/>
</rabbit:binding-arguments>
</rabbit:binding>
</rabbit:bindings>
</rabbit:headers-exchange>
И я хочу попробовать что-то вроде этой конфигурации весной интеграции:
<int:channel id="fromFirehose"/>
<int:channel id="toRouter"/>
<int-amqp:inbound-channel-adapter channel="fromFirehose" queue-names="q.firehose" connection-factory="connectionFactory"/>
<!-- Some config element here to move all input from the firehose out and put it into e.router--/>
<int-amqp:outbound-channel-adapter channel="toRouter" exchange-name="e.router" amqp-template="routerTemplate" />
Какой компонент лучше всего подходит для перемещения входного сигнала от пожарного шланга в обмен e.router? Это хороший подход? Похоже, что трансформатор может перемещаться из сообщений с одного канала на другой, но вы обязаны применять преобразование. Если нет другого способа, есть ли доступный DoNothingTransformer?
Заранее благодарен!
Не могли бы вы предоставить образец? –
@ dcerecedo Отредактировано одним –