首页 文章

不同出站网关的多个通道

提问于
浏览
0

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

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

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

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

  • 感谢MS

1 回答

  • 1

    是的,通常,每个网关都需要自己的 Channels .

    然而...

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

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

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

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

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

相关问题