将负载分布到在集群的每个节点上运行的perl脚本实例
我在集群(每个运行RHEL)的每个节点/机器(总共4台)上安装了一个perl脚本(称为worker)。脚本本身被配置为服务(这意味着只要集群中至少有一个节点处于运行状态,RH集群管理器就会确保该脚本的一个实例正在运行) 我每天要做X个数量的工作,一天一次,这个脚本就是这么做的。到目前为止,X足够小,并且只有这个脚本的一个实例足以完成它。但是现在负载将增加,随着高可用性(即已经使用实现),我还需要负载分配 问题是我如何做到这一点 当然,我有办法将工作分成n个部分,每个部分的大小为X/n。我心目中的选择: 创建一个新的负载分配器,将工作拆分为X/n的作业。以及下列其中一项:将负载分布到在集群的每个节点上运行的perl脚本实例,perl,ipc,scalability,distribution,high-availability,Perl,Ipc,Scalability,Distribution,High Availability,我在集群(每个运行RHEL)的每个节点/机器(总共4台)上安装了一个perl脚本(称为worker)。脚本本身被配置为服务(这意味着只要集群中至少有一个节点处于运行状态,RH集群管理器就会确保该脚本的一个实例正在运行) 我每天要做X个数量的工作,一天一次,这个脚本就是这么做的。到目前为止,X足够小,并且只有这个脚本的一个实例足以完成它。但是现在负载将增加,随着高可用性(即已经使用实现),我还需要负载分配 问题是我如何做到这一点 当然,我有办法将工作分成n个部分,每个部分的大小为X/n。我心目中的
准确地说,使用Perl 5.8.8:这是为x86_64-linux-thread-multi构建的Perl,v5.8.8。如果您想保持简单,请使用数据库存储作业,然后让每个工作人员锁定表并获得所需的作业,然后解锁,让下一个工作人员完成自己的工作。这并不是最具可扩展性的解决方案,因为您将遇到锁争用,但只要4个节点就可以了 但是,如果你开始沿着这条路走下去,看看像这样的专用工作队列系统可能是有意义的。我希望避免这种情况(DB)。。但现在你这么说,实际上听起来好多了……:)谢谢