0

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

我们的团队正在评估 Spring Integration 以替换 Message Broker 流。同时,我正在编写使用两个不同 Web 服务的集成,其中在单个配置中我为每个 Web 服务出站网关定义了单独的通道。我想出使用链接来减少端点之间的通道定义并且效果很好。

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

如果是,那么 SI 将如何识别通道 1 上的消息 1 用于网关 1,通道 1 上的消息 2 用于网关 2,依此类推?是否需要为每个 Web 服务出站网关定义一个唯一通道?

-谢谢女士

4

1 回答 1

1

是的,一般来说,每个网关都需要自己的通道。

然而...

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

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

您可以使用自定义负载平衡策略来决定哪个网关会收到消息,但最好简单地使用路由器并让每个网关都有自己的通道。

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

但是,不要陷入试图在任何地方消除通道的陷阱——这是 Spring Integration 的引人注目的特性之一——能够在不重新连接整个应用程序的情况下更改通道类型/特性。

于 2013-05-22T20:19:54.083 回答