不同出站网关的多个通道

时间:2013-05-22 18:57:04

标签: spring-integration

我的问题可能是重复的......但我无法找到答案..

我们的团队正在评估Spring Integration以取代Message Broker流程。同时我正在编写集成以消费两种不同的Web服务,在单一配置中我为每个Web服务出站网关定义了单独的通道。 我想通过使用链接来减少端点之间的通道定义。它运作良好。

我需要问的是,是否可以在各种之间共享相同的频道 Web服务出站网关?我是否只能定义一个通道,其中2个Web服务出站将侦听消息?

如果是,那么SI将如何识别信道-1上的消息-1用于网关-1,而信道-1上的消息-2用于网关-2等等? 是否有必要为每个Web服务出站网关定义一个唯一的通道?

-Thanks MS

1 个答案:

答案 0 :(得分:1)

是的,通常,每个网关都需要自己的频道。

...然而

如果您要将 SAME 消息发送到两个网关,可以使用<publish-subscribe-channel/>

如果你想在同一服务的多个实例中“循环”(负载均衡),那么,是的,你只需将每个网关订阅到同一个频道,它们就会交替。

您可以使用自定义负载平衡策略来确定哪个网关将获得消息,但最好只使用路由器并让每个网关都有自己的通道。

这实际上取决于您的使用案例,但有很多选择。

但是,不要陷入试图消除各处频道的陷阱 - 这是Spring Integration的一个引人注目的功能 - 能够在不重新布线整个应用程序的情况下更改频道类型/功能。