public ClusterAwareHttpHandler(bool requiresLeader, IEndpointDiscoverer endpointDiscoverer) { _requiresLeader = requiresLeader; _endpointDiscoverer = endpointDiscoverer; _endpoint = new Lazy <Task <IPEndPoint> >(endpointDiscoverer.DiscoverAsync, LazyThreadSafetyMode.ExecutionAndPublication); }
public MultiChannel(EventStoreClientSettings settings) { _settings = settings; _endpointDiscoverer = settings.ConnectivitySettings.IsSingleNode ? (IEndpointDiscoverer) new SingleNodeEndpointDiscoverer(settings.ConnectivitySettings.Address) : new GossipBasedEndpointDiscoverer(settings.ConnectivitySettings, new GrpcGossipClient(settings)); _channels = new ConcurrentDictionary <EndPoint, ChannelBase>(); _log = settings.LoggerFactory?.CreateLogger <MultiChannel>() ?? new NullLogger <MultiChannel>(); if (settings.ConnectivitySettings.KeepAliveInterval < TimeSpan.FromSeconds(10)) { _log.LogWarning("Specified KeepAliveInterval of {interval} is less than recommended 10_000 ms.", settings.ConnectivitySettings.KeepAliveInterval); } }