Queuing / Worker Thread architecture for a single java process
我有以下问题要解决。
我需要编写一个Java程序:
步骤1、2和3的计算空间要求在任何给定时间都可能发生变化。
例如:
要解决上述设计问题,需要实现以下体系结构:
问题:
I am curious if there is framework which I can use to solve this problem?
笔记:
谢谢。
谢谢。
尝试使用ApacheCamel或Spring集成来连接。这些是一种集成框架,可以简化您与Web服务的交互。您需要做的是从WebService1->NumberCruncher->WebService2定义一个路由。之间所需的路由和转换可以由框架本身处理。
您将把您的cruncher作为骆驼处理器来实现。平行化您的松脆机可以通过SEDA实现;骆驼有一个组件为这个模式。另一个替代方案是异步处理器
我要说的是,首先看一下框架(如camel)背后的原则。他们创建的抽象与手头的问题非常相关。
我不确定你的文章的最终问题是什么,但你有一个合理的设计概念。我有一个问题要问你,你在什么环境中?您是在一个Javaee容器中还是仅仅是一个简单的独立应用程序中?
如果您在一个容器中,那么让消息驱动的bean从JMS队列中处理比拥有一个工作线程池更有意义。
如果在您自己的容器中,您自己管理线程池会更有意义。也就是说,我还将考虑让单独的应用程序运行,从而将工作从队列中分离出来,从而为您提供更好的扩展架构。如果需要,可以添加更多的机器,让更多的工人指向一个队列。