使用负载平衡动态调整出站网关

时间:2013-12-31 15:23:36

标签: spring spring-integration

我想使用输入通道的负载平衡来修改(添加/删除)出站网关列表。我的代码:

<int:channel id="mainRequestChannel" />

<int-http:outbound-gateway request-channel="mainRequestChannel"     message-converters="messageConverters"
                           request-factory="httpRequestFactory" url="http://localhost:8100/batchfactory-slave/receiveGateway"
                           http-method="POST" expected-response-type="JobLaunchingResponse" order="1" reply-channel="finishedResponse" />
<int-http:outbound-gateway request-channel="mainRequestChannel"     message-converters="messageConverters"
                           request-factory="httpRequestFactory" url="http://localhost:8090/batchfactory-slave/receiveGateway"
                           http-method="POST" expected-response-type="JobLaunchingResponse" order="2" reply-channel="finishedResponse" />

我修改了这个,现在我有了一个dynamicRouter:

<int:channel id="mainRequestChannel" />
<int:router input-channel="mainRequestChannel" expression="@dynamicChannelResolver.resolve()"/>

但是mainRequestChannel只有一个订阅者,因此作为默认行为的负载均衡器不起作用。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

请参阅dynamic-ftp示例。您实际上将出站网关放在其自己的上下文中,其中包含URL的参数等。但是,与该示例不同,您需要使上下文成为主上下文的子项(因此它将能够引用{{1} }信道)。

样本README有一个链接,可以解释一些论坛讨论。

或者,您可以自己连接必要的类 - 在构造函数中需要finishedResponse EventDrivenConsumer和正确配置的mainRequestChannel