Maintain order of messages via proxies to app servers

Posted by David Turner on Stack Overflow See other posts from Stack Overflow or by David Turner
Published on 2010-03-31T23:20:04Z Indexed on 2010/03/31 23:23 UTC
Read the original article Hit count: 422

Filed under:
|
|

Hi,

I am receiving messages from a 3rd party via a http post, and it is important that the order the messages hit our infrastructure is maintained through the load balancers and proxies until it hits our application server.

Quick Diagram. (proxies in place due to security requirements.)

[ACE load balancer] -> [2 proxies] -> [Application Servers]

or maybe

[ACE load balancer] -> [2 proxies] -> [ACE load balancer] -> [Application Servers]

My idea was that I would setup the load balancers in active-passive mode, to force all messages to use one proxy, and then both the proxies would hit a second load balancer that would be configured in active passive to hit one application server.

Whilst the above is not ideal, it does give me resilience, and once the message is in my app servers, I enter a stateless world, and load balance across both nodes of my cluster.

However, I am concerned that even a single proxy could send messages out of order, perhaps if 2 messages are recived very close together, message 2 might get processed faster than message 1. Is this possible? Likely? Is there a simple open source proxy (MOD_PROXY?) that can be easily configured to just pass messages through it, and to guarantee to send the messages through in the order they are received. If so which, and finally links to how I should configure it would be great.

In fact any links to articles around avoiding "out of order" messages using hardware would be gratefully received.

Thanks,

ps for those that are interested, the app is a java spring integration application currently on a appliation server.

© Stack Overflow or respective owner

Related posts about architecture

Related posts about ordering