|
1
1
这不太可能,因为您的系统通常会比用户提交请求更快地做出反应。然而,这可能是在负载峰值期间的情况。 为了真正确保消息顺序,您的解决方案中确实需要一个瓶颈(单个实例/线程)来处理所有请求。也就是说,您需要确保Mule中的处理策略是同步的,并且VM队列中只有一个使用者。如果您有一个具有多个Mule服务器的HA设置,则可能会导致消息出现混乱。在这种情况下,如果用户最初是使用HTTP连接的,那么可以使用带有粘性会话策略的负载平衡器来解决大部分问题。 一个可能更健壮和可扩展的解决方案是确保用户以高分辨率提交每个请求的本地时间戳。然后,您可以确保在将信息存储到数据库中时丢弃任何“过时”的更新。然而,这不是在mule VM/JMS层中,而是在数据库中。 对于可测试性——不,我认为没有一种真正令人满意的方法可以通过编写集成测试或执行手动测试来确保消息在任何情况下都不会出错。您需要从理论上验证消息路径,以确保没有一条消息可以绕过另一条消息。 |
|
|
Beto Neto · ActiveMQ,丢弃未使用的消息 8 年前 |