我们有一个基于Servlet的应用程序,可以上传文件。 上传的文件保存在服务器中,之后委托进行文件处理,然后插入我们的Mongo DB。
文件大于50 mbs,需要30m -1小时,具体取决于服务器负载。 当多个文件在不同的线程中一次处理时会出现问题,但它最终会使系统变慢,最后一个线程被中止,我们永远无法跟踪它。
因此,我们现在正在计划一个多生产者 - 基于单一消费者的方法,其中文件作业逐个排队,而消费者将逐个从队列中消耗它,但是按顺序排列。
如果我们需要稍后在应用程序中实现群集功能, 对于这种方法,我们计划实施以下流程。
通过这种方式,我们还可以确保它在群集环境中平稳运行,而无需任何其他配置。
有RabbitMQ或ActiveMQ的基于消息队列的解决方案,但我们需要最小化额外的组件配置
让我知道我们的方法是否正确,或者我们是否有更好的解决方案。
谢谢,