有A、B、C、D四个实例,平均响应时间是10、40、80、100,相加的得到总的响应时间是230;每个实例的权重是总响应时间-自身响应时间的差累计所得:
A: 230 - 10 =220;
B:220 + 230 - 40 =410;
C: 410 + 230 -80 = 560;
D: 560 + 230 - 100= 690;
得到每个实例的权重空间:
A[0,220]
B(220,410]
C(410,560]
D(560,690)
每个区间的宽度=总的响应时间-自身响应时间,因此响应的越快权重越大;
[0,1) -> random.nextDouble()*maxTotalWeight
生成一个随机数,遍历权重列表,当权重大于等于随机数大于时取这个实例。