Claus Ibsen created CAMEL-5628:
----------------------------------

             Summary: Sticky load balancer to support initial call problem for 
example with http session ids
                 Key: CAMEL-5628
                 URL: https://issues.apache.org/jira/browse/CAMEL-5628
             Project: Camel
          Issue Type: Improvement
          Components: camel-core, eip
    Affects Versions: 2.10.0
            Reporter: Claus Ibsen
             Fix For: 2.11.0


If you use the sticky load balancer over http endpoints, and want to use the 
http session id as correlation expression, then you may have a problem on the 
initial call (eg no http session yet). Then the correlation expression would 
yield empty/null. 

We should add an option to the sticky load balancer, in that case, when the 
correlation expression is empty/null, to pick a random (or we can do round 
robin) endpoint, and then *after* the call, then execute the correlation 
expression again, to grab the value (eg such as a http session). Then it should 
use this matching for the future so on the next call it will pick the same http 
endpoint again.

The trick though is that the algorithm is no longer a simple hashing. But would 
need to be per client. And as we don't want to keep this matching list forever 
in Camel, we would need to use a LRUCache so the matching can expire if not in 
use. And for that we should offer an option to set the idle timeout value. So 
you can match that with eg the http session timeout. For example 30 minutes etc.

This would make it much easier to use Camel as http load balancer with the http 
session id from the remote http endpoints. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to