2012-02-07 38 views
2

我们有一个REST Web服务,它接收来自外部系统的请求并相应更新我们的数据库。我正在寻求为请求提供缓存/排队解决方案,因为我们最近遇到了一些数据库服务器挑战,并且在数据库服务器出现故障时丢失了一些消息。JMS排队的替代方案

在开始构建一个简单的持久性基于文件的队列之前,我想查看是否有任何JMS的替代方案,因为它在我们的环境中受到限制。

当前平台: 的Jboss 4.3 RichFaces的3.3 春3.0.5 的RESTEasy

** ** UPDATES

每低于skaffman的问题,我的集群,交易要求等

  • 集群:我们的web和app服务器都是集群化的,因此队列需要能够处理来自所有集群节点的项目。但是,我们的提交基本上是原子的,所以排序和同步问题极少。线程和集群安全性并不是真正的因素。每个集群上的独立/独立队列就足够了。

  • 交易:同样,由于我们数据的原子性,事务性需求在每个单独请求之外是最小/不需要的。

  • 安全性:适度关注,但我会预料到要由我们的常规Web服务安全来处理。除了Web应用程序本身,我不会预测任何对队列的读写。只有在大批量或无法使用数据库的情况下才需要这样做。

感谢,

迈克

+0

您对于转换,集群和安全有什么要求? – skaffman 2012-02-07 16:15:55

+0

为什么不JMS? – anubhava 2012-02-07 16:30:29

+0

@anubhava - 好问题。我试图找出细节,但一般的说法是,它被禁止/限制在我们的技术栈中,并且不会在Web环境中被允许,没有例外。 – 2012-02-07 18:47:44

回答

0

因为我们没有使用队列(HornetQ的),但被集成在战争和部署在Tomcat的,因为客户不希望的Weblogic或JBoss应用一个项目服务器,但是如果您的限制策略转到您的应用程序架构,那么这种解决方案将被禁止。

对于另一个项目,我们没有使用任何JMS实现,我们通过使用消息数据库和spring-integration frameworkService Activator进行异步实现来消费事件。 这样,任何消息发布者只是在数据库表中插入一行,并且服务激活器触发事件​​并调用任何其他服务(Spring,Web服务等)。