代理 Pac - 使用 "if(Math.random() < 0.5)" 进行负载平衡
Proxypac - Loadbalancing with "if(Math.random() < 0.5)"
我们有 2 台代理服务器,并希望使用 Proxypac 对流量进行负载平衡。我们正计划实施一个负载均衡器来执行此操作,但在此之前我们需要一个比手动负载均衡更好的解决方案。
我们想试试这个脚本,你们觉得怎么样?
提前致谢
if(Math.random() < 0.5)
{
return "PROXY 10.10.10.1:8080; " + "PROXY 10.10.10.2:8080";
}
else
{
return "PROXY 10.10.10.2:8080; " + "PROXY 10.10.10.1:8080";
}
如果您不介意对大量请求进行近似均匀分布,那么您的代码将可以正常工作。但显然,由于代码的随机性,在切换之前,您可能会并且将会有这样的时刻不断地访问同一台服务器。你永远不知道,它是随机的。
如果您对确保每个请求的 50/50 分配更感兴趣,那么您应该改为这样做(我假设您的代码在单线程中运行。您必须针对多线程进行调整):
private static int requestCount = 0;
....
int localCount = requestCount;
requestCount++;
if (localCount % 2 == 0) {
{
return "PROXY 10.10.10.1:8080; " + "PROXY 10.10.10.2:8080";
}
else
{
return "PROXY 10.10.10.2:8080; " + "PROXY 10.10.10.1:8080";
}
我们有 2 台代理服务器,并希望使用 Proxypac 对流量进行负载平衡。我们正计划实施一个负载均衡器来执行此操作,但在此之前我们需要一个比手动负载均衡更好的解决方案。
我们想试试这个脚本,你们觉得怎么样?
提前致谢
if(Math.random() < 0.5)
{
return "PROXY 10.10.10.1:8080; " + "PROXY 10.10.10.2:8080";
}
else
{
return "PROXY 10.10.10.2:8080; " + "PROXY 10.10.10.1:8080";
}
如果您不介意对大量请求进行近似均匀分布,那么您的代码将可以正常工作。但显然,由于代码的随机性,在切换之前,您可能会并且将会有这样的时刻不断地访问同一台服务器。你永远不知道,它是随机的。
如果您对确保每个请求的 50/50 分配更感兴趣,那么您应该改为这样做(我假设您的代码在单线程中运行。您必须针对多线程进行调整):
private static int requestCount = 0;
....
int localCount = requestCount;
requestCount++;
if (localCount % 2 == 0) {
{
return "PROXY 10.10.10.1:8080; " + "PROXY 10.10.10.2:8080";
}
else
{
return "PROXY 10.10.10.2:8080; " + "PROXY 10.10.10.1:8080";
}