コード例 #1
0
 public DynamicServerListLoadBalancer(string name, LoadBalancerOptions options)
     : this(name, options.Rule, options.Ping, options.ServerList, options.ServerListUpdater, options.ServerListFilter, options.Settings)
 {
 }
コード例 #2
0
 public DownstreamReRouteBuilder WithLoadBalancerOptions(LoadBalancerOptions loadBalancerOptions)
 {
     _loadBalancerOptions = loadBalancerOptions;
     return(this);
 }
コード例 #3
0
        private string CreateLoadBalancerKey(string downstreamTemplatePath, string httpMethod, LoadBalancerOptions loadBalancerOptions)
        {
            if (!string.IsNullOrEmpty(loadBalancerOptions.Type) && !string.IsNullOrEmpty(loadBalancerOptions.Key) && loadBalancerOptions.Type == nameof(CookieStickySessions))
            {
                return($"{nameof(CookieStickySessions)}:{loadBalancerOptions.Key}");
            }

            return(CreateQoSKey(downstreamTemplatePath, httpMethod));
        }
コード例 #4
0
 private void ThenTheStickySessionLoadBalancerIsUsed(LoadBalancerOptions expected)
 {
     _result.Data.ReRoute.DownstreamReRoute[0].LoadBalancerKey.ShouldBe($"{nameof(CookieStickySessions)}:boom");
     _result.Data.ReRoute.DownstreamReRoute[0].LoadBalancerOptions.Type.ShouldBe(nameof(CookieStickySessions));
     _result.Data.ReRoute.DownstreamReRoute[0].LoadBalancerOptions.ShouldBe(expected);
 }