我想使用输入通道的负载平衡来修改(添加/删除)出站网关列表。我的代码:
<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只有一个订阅者,因此作为默认行为的负载均衡器不起作用。
感谢您的帮助。
答案 0 :(得分:1)
请参阅dynamic-ftp示例。您实际上将出站网关放在其自己的上下文中,其中包含URL的参数等。但是,与该示例不同,您需要使上下文成为主上下文的子项(因此它将能够引用{{1} }信道)。
样本README有一个链接,可以解释一些论坛讨论。
或者,您可以自己连接必要的类 - 在构造函数中需要finishedResponse
EventDrivenConsumer
和正确配置的mainRequestChannel
。