我们正在构建一个小型Web应用程序,该应用程序将在具有负载均衡器的3个tomcats集群上运行,该Web应用程序基于弹簧框架,具有弹簧数据模块,用于mongodb。
我们的目标是拥有一个具有持久性的队列(将在集群故障\服务器关闭等时保留数据)。
如果该队列的大小> gt,则必须清空该队列。 0
如果队列大小> 0
,我们希望某些进程尝试清空此队列这里有一些事情需要考虑:
1)为了从队列中删除元素,需要一些逻辑。 2)很可能在为特定队列元素完成一些逻辑之后,结果将不是从队列中删除该元素。 (稍后重试) 3)我们正在使用一群tomcats,我们必须保留一个并发机制,以防止出错。 (mongodb不支持锁定)
任何想法是实现这一目标的最简单方法吗?
谢谢!
答案 0 :(得分:0)
在Tomcat和Mongo之间使用ActiveMQ。有一个请求队列。从队列中获取值并进行处理。如果需要重试,请使用AMQ重试机制并将对象添加到同一队列。