Example #1
0
        /// <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());
        }