Package org.apache.curator
Class CuratorZookeeperClient
java.lang.Object
org.apache.curator.CuratorZookeeperClient
- All Implemented Interfaces:
Closeable
,AutoCloseable
A wrapper around Zookeeper that takes care of some low-level housekeeping
-
Constructor Summary
ConstructorDescriptionCuratorZookeeperClient
(String connectString, int sessionTimeoutMs, int connectionTimeoutMs, org.apache.zookeeper.Watcher watcher, RetryPolicy retryPolicy) CuratorZookeeperClient
(EnsembleProvider ensembleProvider, int sessionTimeoutMs, int connectionTimeoutMs, org.apache.zookeeper.Watcher watcher, RetryPolicy retryPolicy) CuratorZookeeperClient
(ZookeeperFactory zookeeperFactory, EnsembleProvider ensembleProvider, int sessionTimeoutMs, int connectionTimeoutMs, int waitForShutdownTimeoutMs, org.apache.zookeeper.Watcher watcher, RetryPolicy retryPolicy, boolean canBeReadOnly) CuratorZookeeperClient
(ZookeeperFactory zookeeperFactory, EnsembleProvider ensembleProvider, int sessionTimeoutMs, int connectionTimeoutMs, org.apache.zookeeper.Watcher watcher, RetryPolicy retryPolicy, boolean canBeReadOnly) -
Method Summary
Modifier and TypeMethodDescriptionboolean
This method blocks until the connection to ZK succeeds.void
close()
Close the client.void
close
(int waitForShutdownTimeoutMs) Close this client object as theclose()
method.int
Return the configured connection timeoutReturns the current known connection string - not guaranteed to be correct value at any point in the future.long
Every time a newZooKeeper
instance is allocated, the "instance index" is incremented.int
Return the most recent value ofZooKeeper.getSessionTimeout()
or 0Return the current retry policyReturn the current tracing driverorg.apache.zookeeper.ZooKeeper
Return the managed ZK instance.void
For internal use onlyboolean
Returns true if the client is current connectedReturn a new retry loop.Return a new "session fail" retry loop.void
reset()
For internal use only - reset the internally managed ZK handlevoid
setRetryPolicy
(RetryPolicy policy) Change the retry policyvoid
setTracerDriver
(TracerDriver tracer) Change the tracing drivervoid
start()
Must be called after constructionstartAdvancedTracer
(String name) Start a new advanced tracer with more metrics being recordedstartTracer
(String name) Start a new tracer
-
Constructor Details
-
CuratorZookeeperClient
public CuratorZookeeperClient(String connectString, int sessionTimeoutMs, int connectionTimeoutMs, org.apache.zookeeper.Watcher watcher, RetryPolicy retryPolicy) - Parameters:
connectString
- list of servers to connect tosessionTimeoutMs
- session timeoutconnectionTimeoutMs
- connection timeoutwatcher
- default watcher or nullretryPolicy
- the retry policy to use
-
CuratorZookeeperClient
public CuratorZookeeperClient(EnsembleProvider ensembleProvider, int sessionTimeoutMs, int connectionTimeoutMs, org.apache.zookeeper.Watcher watcher, RetryPolicy retryPolicy) - Parameters:
ensembleProvider
- the ensemble providersessionTimeoutMs
- session timeoutconnectionTimeoutMs
- connection timeoutwatcher
- default watcher or nullretryPolicy
- the retry policy to use
-
CuratorZookeeperClient
public CuratorZookeeperClient(ZookeeperFactory zookeeperFactory, EnsembleProvider ensembleProvider, int sessionTimeoutMs, int connectionTimeoutMs, org.apache.zookeeper.Watcher watcher, RetryPolicy retryPolicy, boolean canBeReadOnly) - Parameters:
zookeeperFactory
- factory for creatingZooKeeper
instancesensembleProvider
- the ensemble providersessionTimeoutMs
- session timeoutconnectionTimeoutMs
- connection timeoutwatcher
- default watcher or nullretryPolicy
- the retry policy to usecanBeReadOnly
- if true, allow ZooKeeper client to enter read only mode in case of a network partition. SeeZooKeeper(String, int, Watcher, long, byte[], boolean)
for details
-
CuratorZookeeperClient
public CuratorZookeeperClient(ZookeeperFactory zookeeperFactory, EnsembleProvider ensembleProvider, int sessionTimeoutMs, int connectionTimeoutMs, int waitForShutdownTimeoutMs, org.apache.zookeeper.Watcher watcher, RetryPolicy retryPolicy, boolean canBeReadOnly) - Parameters:
zookeeperFactory
- factory for creatingZooKeeper
instancesensembleProvider
- the ensemble providersessionTimeoutMs
- session timeoutconnectionTimeoutMs
- connection timeoutwaitForShutdownTimeoutMs
- default timeout fo close operationwatcher
- default watcher or nullretryPolicy
- the retry policy to usecanBeReadOnly
- if true, allow ZooKeeper client to enter read only mode in case of a network partition. SeeZooKeeper(String, int, Watcher, long, byte[], boolean)
for details- Since:
- 4.0.2
-
-
Method Details
-
getZooKeeper
Return the managed ZK instance.- Returns:
- client the client
- Throws:
Exception
- if the connection timeout has elapsed or an exception occurs in a background process
-
newRetryLoop
Return a new retry loop. All operations should be performed in a retry loop- Returns:
- new retry loop
-
newSessionFailRetryLoop
Return a new "session fail" retry loop. SeeSessionFailRetryLoop
for details on when to use it.- Parameters:
mode
- failure mode- Returns:
- new retry loop
-
isConnected
public boolean isConnected()Returns true if the client is current connected- Returns:
- true/false
-
blockUntilConnectedOrTimedOut
This method blocks until the connection to ZK succeeds. Use with caution. The block will timeout after the connection timeout (as passed to the constructor) has elapsed- Returns:
- true if the connection succeeded, false if not
- Throws:
InterruptedException
- interrupted while waiting
-
start
Must be called after construction- Throws:
IOException
- errorsException
-
close
public void close()Close the client. Same asclose(int)
using the timeout set at construction time.- Specified by:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceCloseable
- See Also:
-
close
public void close(int waitForShutdownTimeoutMs) Close this client object as theclose()
method. This method will wait for internal resources to be released.- Parameters:
waitForShutdownTimeoutMs
- timeout (in milliseconds) to wait for resources to be released. Use zero or a negative value to skip the wait.
-
setRetryPolicy
Change the retry policy- Parameters:
policy
- new policy
-
getRetryPolicy
Return the current retry policy- Returns:
- policy
-
startTracer
Start a new tracer- Parameters:
name
- name of the event- Returns:
- the new tracer (
TimeTrace.commit()
must be called)
-
startAdvancedTracer
Start a new advanced tracer with more metrics being recorded- Parameters:
name
- name of the event- Returns:
- the new tracer (
OperationTrace.commit()
must be called)
-
getTracerDriver
Return the current tracing driver- Returns:
- tracing driver
-
setTracerDriver
Change the tracing driver- Parameters:
tracer
- new tracing driver
-
getCurrentConnectionString
Returns the current known connection string - not guaranteed to be correct value at any point in the future.- Returns:
- connection string
-
getConnectionTimeoutMs
public int getConnectionTimeoutMs()Return the configured connection timeout- Returns:
- timeout
-
reset
For internal use only - reset the internally managed ZK handle- Throws:
Exception
- errors
-
getInstanceIndex
public long getInstanceIndex()Every time a newZooKeeper
instance is allocated, the "instance index" is incremented.- Returns:
- the current instance index
-
getLastNegotiatedSessionTimeoutMs
public int getLastNegotiatedSessionTimeoutMs()Return the most recent value ofZooKeeper.getSessionTimeout()
or 0- Returns:
- session timeout or 0
-
internalBlockUntilConnectedOrTimedOut
For internal use only- Throws:
InterruptedException
- interruptions
-