Netflix / ribbon

Ribbon is a Inter Process Communication (remote procedure calls) library with built in software load balancers. The primary usage model involves REST calls with various serialization scheme support.
Apache License 2.0
4.58k stars 1.24k forks source link

How to determine LoadBalancer choose server for a retry? #485

Open yigui2 opened 3 years ago

yigui2 commented 3 years ago

Both the interface IRule's method choose and ILoadBalancer's method chooseServer has only one parameter named key, so I can't choose the server diffrent for a retry.

I try to explain the issue with an example: We have two Servers (Server A@zone1 and Server B@zone2) and my ribbon configuration is: MaxAutoRetries=0 MaxAutoRetriesNextServer=1

I customizing the load balancing rule choose the Server A@zone1 allways normally. How can I choose the Server A@zone2 for a retry?

Best regards!