Web应用程序,集群tomcat和mongoDB - 如何实现持久化队列

时间:2014-05-08 14:57:32

标签: java spring mongodb tomcat queue

我们正在构建一个小型Web应用程序,该应用程序将在具有负载均衡器的3个tomcats集群上运行,该Web应用程序基于弹簧框架,具有弹簧数据模块,用于mongodb。

我们的目标是拥有一个具有持久性的队列(将在集群故障\服务器关闭等时保留数据)。

如果该队列的大小> gt,则必须清空该队列。 0

如果队列大小> 0

,我们希望某些进程尝试清空此队列

这里有一些事情需要考虑:

1)为了从队列中删除元素,需要一些逻辑。 2)很可能在为特定队列元素完成一些逻辑之后,结果将不是从队列中删除该元素。 (稍后重试) 3)我们正在使用一群tomcats,我们必须保留一个并发机制,以防止出错。 (mongodb不支持锁定)

任何想法是实现这一目标的最简单方法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

在Tomcat和Mongo之间使用ActiveMQ。有一个请求队列。从队列中获取值并进行处理。如果需要重试,请使用AMQ重试机制并将对象添加到同一队列。