消息处理 - 我应该使用JMS吗?

时间:2013-09-16 07:49:36

标签: java spring architecture jms

我正在开发一个面向WS的'基于Spring / CXF / Oracle DB的应用程序。现在,我坚持一些关于组织消息处理的正确方法的架构考虑(已经存储在db中)。

简而言之,流程如下:

(A)从客户端获取消息 - >验证 - >商店 - >发送回复

(B)过程 - >更新数据

我考虑了该流程B部分的两种常规方法:

1)使用JMS队列

在验证并在DB中存储传入消息详细信息之后,将消息发布到JSM队列。另一方面定义cosumer,它将检索消息并进行处理

2)获取要处理的数据

从db手动获取数据并对其进行处理。

其他事实:

  • 处理不会是计算密集型的,所以对于新的我不认为需要工作分配(全部在单个JVM中)。
  • 单个数据库架构中的所有数据

所以,我很感兴趣在这种情况下选择JMS的关键因素是什么?

1 个答案:

答案 0 :(得分:0)

JMS将是一种更好的方法。在积极的情况下,方法#2也可以。但JMS会为您提供一些内置功能,特别是对于失败的情况。虽然内部JMS将使用基于DB的持久存储;它将为传递数据提供更好的界面。

例如,您可以配置错误队列以跟踪处理失败的所有邮件。

它还将为您提供可扩展的架构,其他一些应用程序(将来)可能会开始消耗您的消息和流程。

可靠:由于异步消息传递,所有部分都不需要让应用程序整体运行。

灵活:考虑一下场景,您可能希望在所有其他(优先级划分)之前处理某些类型的数据。 JMS将提供比在程序中调整逻辑更好的方法。