通过代理到应用服务器维护消息的顺序

时间:2010-03-31 23:20:05

标签: architecture proxy

我通过http帖子从第三方接收消息,重要的是消息到达我们的基础架构的顺序是通过负载均衡器和代理维护的,直到它到达我们的应用服务器。

快速图表。 (由于安全要求,代理已到位。)

[ACE负载均衡器] - > [2个代理] - > [应用程序服务器]

或者

[ACE负载均衡器] - > [2个代理] - > [ACE负载均衡器] - > [应用程序服务器]

我的想法是我会在主动 - 被动模式下设置负载均衡器,强制所有消息使用一个代理,然后两个代理都会遇到第二个负载均衡器,它将配置为主动被动以命中一个应用程序服务器

虽然上述情况并不理想,但它确实为我提供了弹性,一旦消息在我的应用服务器中,我就会进入无状态世界,并在我的集群的两个节点之间实现负载均衡。

但是,我担心即使是单个代理也可能无序地发送消息,也许如果2个消息非常靠近地被接收,消息2可能比消息1更快地处理。这可能吗?可能性有多大?是否有一个简单的开源代理(MOD_PROXY?),可以轻松配置为仅通过它传递消息,并保证按照接收顺序发送消息。如果是这样,最后链接到我应该如何配置它将是伟大的。

事实上,任何关于使用硬件避免“乱序”消息的文章链接都会感激不尽。

谢谢,

ps对于那些感兴趣的人来说,app是目前在appliation服务器上的java spring集成应用程序。

1 个答案:

答案 0 :(得分:0)

我认为你的场景是可能的 - 多线程和异步处理可以引入这样的行为。 Iot的可能性取决于请求的类型和可变性。

如果您确实需要在代理上订购请求,我有这个愚蠢的解决方案:在请求进入代理时标记请求,将请求保留在某个列表中或按照邮票排序设置并仅传递给应用服务器请求形成连续列表的末尾。

你可以微调这个逻辑,但你必须自己编写。