Bri*_*ian 6 architecture scala mapreduce cluster-computing java-ee
我来自java背景,并且有一个CPU限制问题,我正在尝试并行化以提高性能.我已经将我的代码分解为以模块化方式执行,以便它可以以并行方式分发和运行(希望如此).
@Transactional(readOnly = false, propagation = Propagation.REQUIRES_NEW)
public void runMyJob(List<String> some params){
doComplexEnoughStuffAndWriteToMysqlDB();
}
Run Code Online (Sandbox Code Playgroud)
现在,我一直在考虑以下选项来并行化这个问题,我想了解这个领域的人们的想法/经验.
我目前正在考虑的选项:
1)使用Java EE(例如JBoss)集群和MessageDrivenBeans.MDB位于群集中的从属节点上.每个MDB都可以选择一个如上所述开始工作的事件.AFAIK Java EE MDB由应用服务器进行多线程处理,因此希望能够利用多核.因此它应该是垂直和水平可伸缩的.
2)我可以看看使用Hadoop和Map Reduce之类的东西.我在这里担心的是我的工作处理逻辑实际上是相当高的水平,所以我不确定Map Reduce的可译性.另外,我是MR的新手.
3)我可以看看像Scala这样的东西,我认为这使得并发编程变得更加简单.但是,虽然这是可垂直扩展的,但它不是集群/水平可扩展的解决方案.
无论如何,希望所有这些都有意义,非常感谢你提供的任何帮助.
您正在寻找的解决方案是 Akka。集群是一个正在开发的功能,通常会包含在 Akka 2.1 中
如果您还赶时间,请摆脱 J2EE。非常欢迎您加入 Akka 邮件列表来提问。
| 归档时间: |
|
| 查看次数: |
356 次 |
| 最近记录: |