带弹簧的多线程数据处理管道

时间:2015-11-20 20:33:34

标签: java multithreading spring spring-data spring-integration

我有一个接收数据包的应用程序,需要解析,转换和存储这些数据。

为了提高吞吐量,我尝试将各种步骤放入不同的线程中,让数据流动。通过他们之间的BlockingQueue

类似的东西:

(A) - > (B) - > (C) - > ...

到目前为止,我让A,B,C实现Runnable并手动创建它们,在构造函数中提供输入/输出队列。

问题是,我需要访问A,B,C中的Spring服务。 所以我用@Component@Scope("prototype")注释了A,B,C。我将它们注入另一个服务,而不是在它们之间创建和设置队列,调用thread.start(..)

是否有更好,更像春天的'这样做的方式?而且,我如何控制组件的销毁,理想情况下让它们完成当前的输入队列?

编辑1: 我遵循了Edwin Dalorzos的建议,并使用了spring集成,试图将每个消息端点的一个线程的想法归档。我让多线程工作,但不能限制每个端点的线程数。 在https://github.com/taseroth/spring-integration-multithreaded

创建了一个小演示

0 个答案:

没有答案