我们有一个REST Web服务,它接收来自外部系统的请求,并相应地对我们的DB进行更新。我正在寻找为进入的请求实现缓存/排队解决方案,因为我们最近遇到了一些数据库服务器挑战,并且在数据库服务器出现故障时丢失了一些消息。
在我开始组建一个简单的基于永久文件的队列之前,我想知道JMS是否有任何好的替代品,因为它的使用在我们的环境中受到限制。
目前的平台: Jboss 4.3 Richfaces 3.3 Spring 3.0.5 的RESTEasy
**更新**
根据skaffman的问题,我对集群,交易等的要求
群集:我们的网络和应用服务器都是群集的,因此队列需要能够处理来自所有群集节点的项目。但是,我们的提交基本上是原子的,因此排序和同步问题非常少。线程和集群安全性并不是真正的因素。每个群集上的独立/独立队列就足够了。
交易:同样,由于我们数据的原子性质,在每个单独的请求之外,交易需求是最小的/不需要的。
安全性:中度关注,但我预计这将由我们在Web服务上的常规安全性处理。除了web-app本身之外,我不会期待读取或写入队列的任何内容。只有在高容量或DB不可用的情况下才需要这样做。
谢谢,
麦克
答案 0 :(得分:0)
对于一个项目,我们确实使用了一个队列(HornetQ),但是它集成在战争中并可部署在Tomcat上,因为客户不想要Weblogic或JBoss应用程序服务器,但是如果您的限制策略也适用于您的应用程序架构,解决方案是被禁止的。
对于另一个项目,我们没有使用任何JMS实现,我们使用消息数据库和Service Activator的spring-integration framework进行异步实现以消耗事件。 这样任何消息发布者只需在DB表中插入一行,Service Activator就会触发事件并调用任何其他服务(Spring,Web-service等)。