我的问题可能是重复的......但我无法找到答案..
我们的团队正在评估Spring Integration以取代Message Broker流程。同时我正在编写集成以消费两种不同的Web服务,在单一配置中我为每个Web服务出站网关定义了单独的通道。 我想通过使用链接来减少端点之间的通道定义。它运作良好。
我需要问的是,是否可以在各种之间共享相同的频道 Web服务出站网关?我是否只能定义一个通道,其中2个Web服务出站将侦听消息?
如果是,那么SI将如何识别信道-1上的消息-1用于网关-1,而信道-1上的消息-2用于网关-2等等? 是否有必要为每个Web服务出站网关定义一个唯一的通道?
-Thanks MS
答案 0 :(得分:1)
是的,通常,每个网关都需要自己的频道。
...然而
如果您要将 SAME 消息发送到两个网关,可以使用<publish-subscribe-channel/>
。
如果你想在同一服务的多个实例中“循环”(负载均衡),那么,是的,你只需将每个网关订阅到同一个频道,它们就会交替。
您可以使用自定义负载平衡策略来确定哪个网关将获得消息,但最好只使用路由器并让每个网关都有自己的通道。
这实际上取决于您的使用案例,但有很多选择。
但是,不要陷入试图消除各处频道的陷阱 - 这是Spring Integration的一个引人注目的功能 - 能够在不重新布线整个应用程序的情况下更改频道类型/功能。