internal ZooKeeperClient(EnsembleProvider ensembleProvider, TimeSpan sessionTimeout, RetryStrategy retryStrategy, string nameSpace, bool canBeReadonly, ILog log) : this( CuratorFrameworkFactory .builder() .ensembleProvider(ensembleProvider) .sessionTimeoutMs((int)sessionTimeout.TotalMilliseconds) .connectionTimeoutMs(retryStrategy.ToCuratorConnectionTimeout()) .retryPolicy(retryStrategy.ToCuratorRetryPolicy()) .@namespace(string.IsNullOrWhiteSpace(nameSpace) ? null : nameSpace.TrimStart('/')) .canBeReadOnly(canBeReadonly) .build(), log, new ConnectionStringRandomizer(ensembleProvider)) { }
/// <summary> /// Создает экземпляр клиента, используя фиксированную connection string. /// </summary> /// <param name="connectionString">Имя CC-топологии или список пар host:port, разделенных запятой (например, "zk1:2181,zk2:2181").</param> /// <param name="sessionTimeout">Таймаут клиентской сессии. Не рекомендуется делать меньше 5с. или больше минуты.</param> /// <param name="nameSpace">Chroot для всех путей. Служит для изоляции приложений. Пример: "MyApp".</param> /// <param name="log"></param> public ZooKeeperClient(string connectionString, TimeSpan sessionTimeout, string nameSpace, ILog log) : this(connectionString, sessionTimeout, RetryStrategy.CreateDefault(sessionTimeout), nameSpace, log) { }
/// <summary> /// Создает экземпляр клиента, используя фиксированную connection string. /// </summary> /// <param name="connectionString">Имя CC-топологии или список пар host:port, разделенных запятой (например, "zk1:2181,zk2:2181").</param> /// <param name="sessionTimeout">Таймаут клиентской сессии. Не рекомендуется делать меньше 5с. или больше минуты.</param> /// <param name="retryStrategy">Стратегия повторных попыток в случае потери соединения.</param> /// <param name="nameSpace">Chroot для всех путей. Служит для изоляции приложений. Пример: "MyApp".</param> /// <param name="log"></param> public ZooKeeperClient(string connectionString, TimeSpan sessionTimeout, RetryStrategy retryStrategy, string nameSpace, ILog log) : this(CreateEnsembleProvider(connectionString, log), sessionTimeout, retryStrategy, nameSpace, false, log) { }
/// <summary> /// Создает экземпляр клиента, используя фиксированную connection string. /// </summary> /// <param name="connectionString">Имя CC-топологии или список пар host:port, разделенных запятой (например, "zk1:2181,zk2:2181").</param> /// <param name="sessionTimeout">Таймаут клиентской сессии. Не рекомендуется делать меньше 5с. или больше минуты.</param> /// <param name="retryStrategy">Стратегия повторных попыток в случае потери соединения.</param> /// <param name="log"></param> public ZooKeeperClient(string connectionString, TimeSpan sessionTimeout, RetryStrategy retryStrategy, ILog log) : this(connectionString, sessionTimeout, retryStrategy, null, log) { }
protected bool Equals(RetryStrategy other) { return(MaxAttempts == other.MaxAttempts && AttemptTimeout.Equals(other.AttemptTimeout) && AttemptDelay.Equals(other.AttemptDelay)); }