我正在开发一个面向WS的'基于Spring / CXF / Oracle DB的应用程序。现在,我坚持一些关于组织消息处理的正确方法的架构考虑(已经存储在db中)。
简而言之,流程如下:
(A)从客户端获取消息 - >验证 - >商店 - >发送回复
(B)过程 - >更新数据
我考虑了该流程B部分的两种常规方法:
1)使用JMS队列
在验证并在DB中存储传入消息详细信息之后,将消息发布到JSM队列。另一方面定义cosumer,它将检索消息并进行处理
2)获取要处理的数据
从db手动获取数据并对其进行处理。
其他事实:
所以,我很感兴趣在这种情况下选择JMS的关键因素是什么?
答案 0 :(得分:0)
JMS将是一种更好的方法。在积极的情况下,方法#2也可以。但JMS会为您提供一些内置功能,特别是对于失败的情况。虽然内部JMS将使用基于DB的持久存储;它将为传递数据提供更好的界面。
例如,您可以配置错误队列以跟踪处理失败的所有邮件。
它还将为您提供可扩展的架构,其他一些应用程序(将来)可能会开始消耗您的消息和流程。
可靠:由于异步消息传递,所有部分都不需要让应用程序整体运行。
灵活:考虑一下场景,您可能希望在所有其他(优先级划分)之前处理某些类型的数据。 JMS将提供比在程序中调整逻辑更好的方法。