我有一个应用程序正在查询的只读SQL Server数据库。数据库托管在SQL Server Express上,SQL Server Express在Azure虚拟机中运行。所有执行的查询都非常相似。
现在我想在那里添加更多的虚拟机,并在它们之间进行负载平衡。目标是提高性能和高可用性(如果一台服务器宕机,我希望将查询返回到其余服务器)。
负载均衡的正确方式是什么?我的应用程序是一个.NET应用程序。
我可以将虚拟机配置为云服务。在这种情况下,Azure可以在TCP连接级别上在它们之间进行负载平衡。我能想到的另一种选择是在应用程序级别上执行此操作,以循环方式选择要连接的服务器。
我正在执行一次评估,以检查服务器是否出现故障
eval{
foreach(){
Processing 10,000 UPCS in API one by one
}
};
if($@){
continue;
sleep(1200);
}
上面的代码运行良好,但问题是,如果服务器宕机,它会跳过当前的UPC(循环),并且它会处理下一个UPC(循环)。
如果服务器宕机,我必须重试相同的upc,而不是跳过upc(循环)?