Java 集群中执行器服务的行为

Java 集群中执行器服务的行为,java,multithreading,executorservice,threadpoolexecutor,scheduledexecutorservice,Java,Multithreading,Executorservice,Threadpoolexecutor,Scheduledexecutorservice,我使用java中的executor服务编写了一段代码。这里我创建10个工作线程来处理数据库获取的行。每个线程将分配一个结果行。当应用程序在单个实例/节点上部署和运行时,这种方法可以很好地工作 当我的应用程序部署在多个节点/集群中时,有人能建议这将如何运行吗? 在部署到集群之前,我是否必须处理代码的任何部分 04/12/15:还有其他建议吗? 你应该考虑每项任务的开销。除非任务大小适中,否则您可能希望对其进行批处理 在分布式上下文中,开销可能更高,因此更可能需要批处理工作 您需要一个框架,因此考

我使用java中的executor服务编写了一段代码。这里我创建10个工作线程来处理数据库获取的行。每个线程将分配一个结果行。当应用程序在单个实例/节点上部署和运行时,这种方法可以很好地工作

当我的应用程序部署在多个节点/集群中时,有人能建议这将如何运行吗? 在部署到集群之前,我是否必须处理代码的任何部分


04/12/15:还有其他建议吗?

你应该考虑每项任务的开销。除非任务大小适中,否则您可能希望对其进行批处理

在分布式上下文中,开销可能更高,因此更可能需要批处理工作


您需要一个框架,因此考虑因素将取决于您选择的框架。

嗨,Peter,谢谢您的时间。我在理解你的答复时有些困惑。你能详细说明一下你在这里指的是什么样的批量工作吗?是spring批处理吗?@user4325796我的意思是,每个任务要传递多行。每个CPU只需要两个任务。如果超过此值,可能会增加开销。您好,Peter,是的,正如建议的那样,我会将工作线程数减少到2,并将所有工作分配给它们。@user4325796您有多少个CPU?将其乘以2,这就是要使用的线程数。e、 如果你有8个cpu,使用16个线程。嗨,彼得,现在我不确定我们将使用哪一个cpu。在全面实施之前,我将牢记这一点。如果您能解释为什么每个cpu只有2个线程,这将很有帮助?如果同一网站上有任何文章,请提供链接。谢谢,还有什么建议吗?