Spring Integration:直接通道多个传出端点

时间:2014-10-21 08:23:21

标签: java spring spring-integration

请耐心等待我,因为我仍然是Spring Integration的新手,并且刚刚开始阅读它。

我尝试做的是对我的Spring应用程序的传出HTTP调用执行各种类型的负载平衡。我知道我可以通过直接频道实现循环和故障转移,这正是我所寻求的。但我不确定用于配置拨出电话的内容。

我读了这个帖子 Adapt dynamically outbound-gateway with load-balancing

在OP中,我看到这个 outbound-gateway 标记,其中包含url和method属性。我是否正确地假设我可以使用它来配置我的传出http呼叫?希望有人能指出我正确的方向。

任何帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

round-robin有一个简单的算法:每次调用都会将订阅者index移动到这些订阅者order的圈子中。

因此,如果您需要使用round-robin调用HTTP,您应该只配置如下内容:

<channel id="balanceChannel"/>

<bridge input-channel="balanceChannel" output-channel="httpChannel"/>

<bridge input-channel="balanceChannel" output-channel="httpChannel"/>

<bridge input-channel="balanceChannel" output-channel="httpChannel"/>

<int-http:outbound-gateway request-channel="httpChannel" url="MY_URL"/>

send的任何balanceChannel最终都会在目标中结束相同的HTTP调用。

实际上它并没有为同一个HTTP做出决定,因为<int-http:outbound-gateway>是安全的,可以从separete线程同时使用。

当你的目标服务没有安全和阻止时,

round-robin会出现这种情况,所以最好只为该服务提供多个实例。

failoverload-balancing="none"时出现。因此,第一个用户的失败将被视为第二个用户,等等。