Java 运行时确定线程状态并采取适当的操作

Java 运行时确定线程状态并采取适当的操作,java,Java,我有一个场景,在这个场景中,我最初可以分散许多线程,但一段时间后,如果我发现机器负载过多,那么我应该在运行时将一些线程删除到其他机器上,类似地,如果线程对资源的利用率较低,那么我应该能够启动更多线程。这一切都应该能够在运行时实现。任何人都可以帮助设计这种类型的架构。编程语言:JAVA听起来您需要一个分布式作业调度器;看 应该注意的是,作业调度器方法假设您的工作负载可以分解为独立的作业,并且这些作业(通常)可以分布到数据驻留的不同机器上(或者可以使其驻留)。当您试图平衡的工作负载是线程本身时,您不

我有一个场景,在这个场景中,我最初可以分散许多线程,但一段时间后,如果我发现机器负载过多,那么我应该在运行时将一些线程删除到其他机器上,类似地,如果线程对资源的利用率较低,那么我应该能够启动更多线程。这一切都应该能够在运行时实现。任何人都可以帮助设计这种类型的架构。编程语言:JAVA

听起来您需要一个分布式作业调度器;看

应该注意的是,作业调度器方法假设您的工作负载可以分解为独立的作业,并且这些作业(通常)可以分布到数据驻留的不同机器上(或者可以使其驻留)。当您试图平衡的工作负载是线程本身时,您不能应用此方法。或者换句话说,将活动线程从一台机器移动到另一台机器将不起作用。(问题是线程的状态与当前运行的JVM紧密交织在一起。当前一代JVM不支持线程迁移,也不提供任何可用于迁移的东西。)


另一种方法是(例如,如果您正在处理web请求),将负载平衡器放在服务器前面,根据负载向不同的服务器发送请求。这假定请求所需的数据在所有服务器中都同样可用或可从所有服务器访问。

此链接将帮助您找到解决方案。

您需要的是一个负载平衡器,它位于您的应用程序之前,而不是应用程序内部。我投票将此问题作为离题回答,因为它读作工作请求,即“请为我设计一个负载平衡器”。它不是“请为我设计一个负载平衡器”。。。它是…“请帮助设计这种类型的架构”。。先了解差异。。