public IPEndPoint GetServieByLoadBalane(List <FlowControlEndPoint> lbEndPoints, IPEndPoint clientIp, LoadBalanceType type = LoadBalanceType.IPHash, ServiceConfigureInfo configure = null)
        {
            var result = default(FlowControlEndPoint);

            if (lbEndPoints != null && lbEndPoints.Any())
            {
                //若没有客户端IP则默认调用随机
                if (clientIp == null && type == LoadBalanceType.IPHash)
                {
                    type = LoadBalanceType.Random;
                }
                switch (type)
                {
                //随机
                case LoadBalanceType.Random:
                    result = lbEndPoints.OrderBy(x => Guid.NewGuid()).FirstOrDefault();
                    break;

                //轮询
                case LoadBalanceType.Polling:
                    result = TargetIp == null?lbEndPoints.FirstOrDefault() :
                                 lbEndPoints.Any(x => x.HashSort > TargetIpSortInex) ?
                                 lbEndPoints.First(x => x.HashSort > TargetIpSortInex) :
                                 lbEndPoints.First();

                    TargetIp         = result.GetEndPoint();
                    TargetIpSortInex = result.HashSort;
                    break;

                //IP哈希
                case LoadBalanceType.IPHash:
                    result = lbEndPoints[Math.Abs(clientIp.GetHashCode()) % lbEndPoints.Count];
                    break;

                //最小连接
                case LoadBalanceType.MinConnections:
                    result = lbEndPoints.OrderBy(x => x.ConnectCount).FirstOrDefault();
                    break;
                }
            }
            if (configure != null)
            {
                configure.ChangeConnectCount(result.GetEndPoint(), true);
            }
            return(result.GetEndPoint());
        }