gpt4 book ai didi

java - 如何通过 spring 集成来管道化 amqp 队列?

转载 作者:行者123 更新时间:2023-12-02 05:09:48 25 4
gpt4 key购买 nike

我习惯了 Camel ,在 Camel 中,将一个元素的输出通过管道传输到另一个元素的输入有点简单。我想将所有应用程序事件发送到 AMQP 队列(消防水带),然后根据事件类型将事件路由到不同的队列。例如,如果事件类型是 session.created,我想将其从消防水带中取出并将其发送到 session.created 队列。

我定义了以下 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>

我想尝试像这样的 spring 集成配置:

<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 交换机?这是一个好方法吗?看起来转换器可以将消息从一个 channel 移动到另一个 channel ,但您必须应用转换。如果没有其他办法,是否有DoNothingTransformer可用?

提前致谢!

最佳答案

只需将入站和出站适配器链接到同一 channel 即可。

例如:

<int:channel id="fromFirehose"/>
<int-amqp:inbound-channel-adapter channel="fromFirehose" queue-names="q.firehose" connection-factory="connectionFactory"/>
<int-amqp:outbound-channel-adapter channel="fromFirehose" exchange-name="e.router" amqp-template="routerTemplate" />

关于java - 如何通过 spring 集成来管道化 amqp 队列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27426837/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com