请耐心等待我,因为我仍然是Spring Integration的新手,并且刚刚开始阅读它。
我尝试做的是对我的Spring应用程序的传出HTTP调用执行各种类型的负载平衡。我知道我可以通过直接频道实现循环和故障转移,这正是我所寻求的。但我不确定用于配置拨出电话的内容。
我读了这个帖子 Adapt dynamically outbound-gateway with load-balancing
在OP中,我看到这个 outbound-gateway 标记,其中包含url和method属性。我是否正确地假设我可以使用它来配置我的传出http呼叫?希望有人能指出我正确的方向。
任何帮助将不胜感激。谢谢!
答案 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
会出现这种情况,所以最好只为该服务提供多个实例。
failover
在load-balancing="none"
时出现。因此,第一个用户的失败将被视为第二个用户,等等。