Proxypac - 使用" if(Math.random()< 0.5)"进行负载均衡

时间:2015-06-11 14:21:10

标签: java proxy load-balancing

我们有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";
}

1 个答案:

答案 0 :(得分:2)

如果您不介意在大量请求中进行近似均匀分布,那么您的代码将正常工作。但显然,由于代码的随机性,您可以并且有时会在切换之前一直反复使用同一台服务器。你永远不知道,它是随机的。

如果您对确保每个请求的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";
}