我对编写一个项目感兴趣,该项目在多台计算机上分布在大文件上的特定计算。分布式计算的需求源于我用来进行实际计算的软件的崩溃和不稳定的性质 - 所以它可能会在某些计算机上崩溃,但其他计算机肯定会完成这项工作。到目前为止,我的想法包括: - 使用多台服务器,每个服务器都尽可能从主服务器中提取任务 - 使用 VMwares - 使用负载平衡集群
什么更适合这份工作?我应该注意的任何其他想法?
另外,如果您能推荐任何可靠的分布式计算 C# 框架,那将会很有帮助。
我对编写一个项目感兴趣,该项目在多台计算机上分布在大文件上的特定计算。分布式计算的需求源于我用来进行实际计算的软件的崩溃和不稳定的性质 - 所以它可能会在某些计算机上崩溃,但其他计算机肯定会完成这项工作。到目前为止,我的想法包括: - 使用多台服务器,每个服务器都尽可能从主服务器中提取任务 - 使用 VMwares - 使用负载平衡集群
什么更适合这份工作?我应该注意的任何其他想法?
另外,如果您能推荐任何可靠的分布式计算 C# 框架,那将会很有帮助。
我自己(还)没有使用过这些,但我不久前为这个问题添加了书签。那里有一些好的建议。
我会查看Appistry CloudIQ 平台。它将多台机器链接到一个由统一地址标识的单一计算框架中。您的客户端只需将作业提交到统一地址,框架将作业分发到各个机器。它还监视任务执行,并可以自动重新启动失败的作业。所以如果你的应用程序容易崩溃,这个框架可能是理想的。与其将相同的作业提交给多台机器(并浪费 CPU)来覆盖故障情况,只需提交一次,然后让框架处理重新启动实际失败的作业。我认为它非常适合您的可靠性问题。
你看过Hadoop MapReduce吗?它是 Google MapReduce 框架的开源实现。虽然它是 Java 而不是 C#,但听起来它可能非常适合您的场景;主服务器自动处理分布式环境中的负载平衡和容错。