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

Architecture 通过应用服务器的代理维护消息的顺序,architecture,proxy,Architecture,Proxy,我通过http post接收来自第三方的消息,在消息到达应用服务器之前,必须通过负载平衡器和代理维护消息到达我们基础设施的顺序,这一点很重要 快速图表。(由于安全要求,代理已到位。) [ACE负载平衡器]->[2个代理]->[应用程序服务器] 或许 [ACE负载平衡器]->[2个代理]->[ACE负载平衡器]->[应用程序服务器] 我的想法是将负载平衡器设置为主动-被动模式,强制所有消息使用一个代理,然后两个代理将命中第二个负载平衡器,该负载平衡器将配置为主动-被动模式,以命中一个应用服务器 虽

我通过http post接收来自第三方的消息,在消息到达应用服务器之前,必须通过负载平衡器和代理维护消息到达我们基础设施的顺序,这一点很重要

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

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

或许

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

我的想法是将负载平衡器设置为主动-被动模式,强制所有消息使用一个代理,然后两个代理将命中第二个负载平衡器,该负载平衡器将配置为主动-被动模式,以命中一个应用服务器

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

然而,我担心的是,即使是单个代理也可能会发送出无序的消息,也许如果两条消息接收得非常近,那么消息2的处理速度可能会比消息1快。这可能吗?可能的是否有一个简单的开源代理(MOD_proxy?),可以轻松配置为只通过它传递消息,并保证按照接收顺序发送消息。如果是这样的话,最后链接到我应该如何配置它会很好

事实上,任何关于使用硬件避免“无序”消息的文章链接都会得到很好的接收

谢谢


ps对于那些感兴趣的人来说,该应用程序是一个java spring集成应用程序,目前位于Appliance服务器上。

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

如果你真的需要在代理服务器上对请求进行排序,我有一个愚蠢的解决方案:在请求进入代理服务器时对其进行标记,将请求保留在某个列表中,或按标记进行排序,然后仅将来自列表连续末尾的请求传递给app server

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