/// <summary> /// 根据权重获取 /// </summary> public static Instance SelectHost(ServiceInfo serviceInfo) { var hosts = SelectAll(serviceInfo); _logger.Debug("entry randomWithWeight"); Chooser <string, Instance> vipChooser = new Chooser <string, Instance>("www.vip56.cn"); _logger.Debug("new Chooser"); IList <Pair <Instance> > hostsWithWeight = new List <Pair <Instance> >(); foreach (var host in hosts) { if (host.Healthy) { hostsWithWeight.Add(new Pair <Instance>(host, host.Weight)); } } _logger.Debug("foreach (Host host in hosts)"); vipChooser.Refresh(hostsWithWeight); _logger.Debug("vipChooser.Refresh"); return(vipChooser.RandomWithWeight()); }