2

我目前正在研究 Spring Batch POC,并且对大多数实际 Spring Batch 功能都有很好的处理。我目前有一个程序,它使用 Spring Integration 接收 HttpRequest 并使用消息通道最终将作业执行发送到队列中的作业启动器。我们真正想做的是在作业启动器之前实现某种“调度程序/负载平衡器”(不太确定如何称呼它),它将查看当前运行的工作节点和输入文件的大小并生成决定应该允许多少工作节点。我们可能还希望能够在作业运行时更改作业节点的数量,以允许更多作业运行。

我们的想法是,我们将运行一个可以随时接受许多作业请求的服务器,以及一个将作业分区到的大型机器集群。我们希望能够水平扩展,这样只要服务器不忙,它就可以充分利用硬件,并且能够确保小型作业不会经常被大型作业阻塞。

从我的研究看来,我们似乎必须实现另一个框架来做到这一点(GridGain 和 Hadoop 是否允许这样做?),但我想我会问看看人们推荐什么做这样的事情,如果有办法在不实施另一个大型框架的情况下做到这一点。

抱歉,如果有任何不清楚或令人困惑的地方,我只是一个上个月开始学习 Spring 和 Spring Batch 的低级实习生,我还远未完全理解所有内容,尤其是这些扩展的东西。只要问,我会尽力把事情弄清楚。

谢谢你的帮助!

4

1 回答 1

1

看看 spring-batch-admin 伞形项目下的“spring-batch-integration”项目https://github.com/SpringSource/spring-batch-admin

它有许多使用 spring-integration 将工作分配到其他节点的示例。特别是查看块和分区包。只需使用 jms 通道适配器替换 spring 集成通道。通过 JMS 分配工作分区,您可以根据需要横向扩展工作节点的数量。

在 spring 集成论坛中有很多关于这个主题的主题;搜索“分区处理程序”。

希望有帮助。

于 2012-07-20T21:35:07.513 回答