Class ReadOnlyZooKeeperServer
- java.lang.Object
-
- org.apache.zookeeper.server.ZooKeeperServer
-
- org.apache.zookeeper.server.quorum.ReadOnlyZooKeeperServer
-
- All Implemented Interfaces:
ServerStats.Provider
,SessionTracker.SessionExpirer
public class ReadOnlyZooKeeperServer extends ZooKeeperServer
A ZooKeeperServer which comes into play when peer is partitioned from the majority. Handles read-only clients, but drops connections from not-read-only ones.The very first processor in the chain of request processors is a ReadOnlyRequestProcessor which drops state-changing requests.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.zookeeper.server.ZooKeeperServer
ZooKeeperServer.MissingSessionException, ZooKeeperServer.State
-
-
Field Summary
Fields Modifier and Type Field Description protected QuorumPeer
self
-
Fields inherited from class org.apache.zookeeper.server.ZooKeeperServer
ALLOW_SASL_FAILED_CLIENTS, CLOSE_SESSION_TXN_ENABLED, DEFAULT_STARTING_BUFFER_SIZE, DEFAULT_THROTTLED_OP_WAIT_TIME, DEFAULT_TICK_TIME, ENABLE_EAGER_ACL_CHECK, ENFORCE_QUOTA, enforceQuota, firstProcessor, GET_CHILDREN_RESPONSE_CACHE_SIZE, GET_DATA_RESPONSE_CACHE_SIZE, GLOBAL_OUTSTANDING_LIMIT, initialConfig, INT_BUFFER_STARTING_SIZE_BYTES, intBufferStartingSizeBytes, jmxDataTreeBean, jmxServerBean, jvmPauseMonitor, listenBacklog, LOG, maxSessionTimeout, minSessionTimeout, ok, reconfigEnabled, SASL_SUPER_USER, secureServerCnxnFactory, serverCnxnFactory, sessionTracker, SKIP_ACL, SNAP_COUNT, state, throttledOpWaitTime, tickTime, ZOOKEEPER_DIGEST_ENABLED, ZOOKEEPER_SERIALIZE_LAST_PROCESSED_ZXID_ENABLED
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
createSessionTracker()
void
dumpConf(PrintWriter pwriter)
long
getServerId()
Returns the id of the associated QuorumPeer, which will do for a unique id of this server.String
getState()
protected void
registerJMX()
void
registerJMX(ZooKeeperServerBean serverBean, LocalPeerBean localPeerBean)
protected void
setLocalSessionFlag(Request si)
If the underlying Zookeeper server support local session, this method will set a isLocalSession to true if a request is associated with a local session.protected void
setState(ZooKeeperServer.State state)
Sets the state of ZooKeeper server.protected void
setupRequestProcessors()
void
shutdown()
protected void
startSessionTracker()
void
startup()
protected void
unregisterJMX()
protected void
unregisterJMX(ZooKeeperServer zks)
protected void
validateSession(ServerCnxn cnxn, long sessionId)
Validate if a particular session can be reestablished.-
Methods inherited from class org.apache.zookeeper.server.ZooKeeperServer
authWriteRequest, canShutdown, checkACL, checkPasswd, checkQuota, checkRequestSizeWhenReceivingMessage, closeSession, closeSession, connThrottle, createRequestThrottler, decInProcess, dumpEphemerals, dumpMonitorValues, enqueueRequest, expire, expire, finishSessionInit, getClientPort, getClientPortListenBacklog, getConf, getConnectionDropChance, getDataDirSize, getEphemerals, getGetChildrenResponseCache, getGlobalOutstandingLimit, getInflight, getInitialConfig, getInProcess, getLargeRequestBytes, getLargeRequestMaxBytes, getLargeRequestThreshold, getLastProcessedZxid, getLogDirSize, getMaxClientCnxnsPerHost, getMaxSessionTimeout, getMinSessionTimeout, getNumAliveConnections, getOutstandingHandshakeNum, getOutstandingRequests, getReadResponseCache, getRequestPathMetricsCollector, getSecureClientPort, getSecureServerCnxnFactory, getServerCnxnFactory, getSessionExpiryMap, getSessionTracker, getSnapCount, getSnapSizeInBytes, getThrottledOpWaitTime, getTickTime, getTxnLogElapsedSyncTime, getTxnLogFactory, getZKDatabase, getZkShutdownHandler, getZooKeeperServerListener, getZxid, incInProcess, isCloseSessionTxnEnabled, isDigestEnabled, isEnableEagerACLCheck, isReconfigEnabled, isResponseCachingEnabled, isRunning, isSerializeLastProcessedZxidEnabled, killSession, loadData, processConnectRequest, processPacket, processTxn, processTxn, registerMetrics, reopenSession, requestFinished, restoreFromSnapshot, revalidateSession, serverStats, setClientPortListenBacklog, setCloseSessionTxnEnabled, setCreateSessionTrackerServerId, setDigestEnabled, setEnableEagerACLCheck, setLargeRequestMaxBytes, setLargeRequestThreshold, setMaxSessionTimeout, setMinSessionTimeout, setOwner, setResponseCachingEnabled, setSecureServerCnxnFactory, setSerializeLastProcessedZxidEnabled, setServerCnxnFactory, setThrottledOpWaitTime, setTickTime, setTxnLogFactory, setZKDatabase, setZxid, shouldForceWriteInitialSnapshotAfterLeaderElection, shouldThrottle, shutdown, startdata, startJvmPauseMonitor, startRequestThrottler, startServing, startupWithoutServing, submitRequest, submitRequestNow, takeSnapshot, takeSnapshot, takeSnapshot, truncateLog, unregisterMetrics
-
-
-
-
Field Detail
-
self
protected final QuorumPeer self
-
-
Method Detail
-
setupRequestProcessors
protected void setupRequestProcessors()
- Overrides:
setupRequestProcessors
in classZooKeeperServer
-
startup
public void startup()
- Overrides:
startup
in classZooKeeperServer
-
createSessionTracker
public void createSessionTracker()
- Overrides:
createSessionTracker
in classZooKeeperServer
-
startSessionTracker
protected void startSessionTracker()
- Overrides:
startSessionTracker
in classZooKeeperServer
-
setLocalSessionFlag
protected void setLocalSessionFlag(Request si)
Description copied from class:ZooKeeperServer
If the underlying Zookeeper server support local session, this method will set a isLocalSession to true if a request is associated with a local session.- Overrides:
setLocalSessionFlag
in classZooKeeperServer
-
validateSession
protected void validateSession(ServerCnxn cnxn, long sessionId) throws IOException
Description copied from class:ZooKeeperServer
Validate if a particular session can be reestablished.- Overrides:
validateSession
in classZooKeeperServer
- Throws:
IOException
-
registerJMX
protected void registerJMX()
- Overrides:
registerJMX
in classZooKeeperServer
-
registerJMX
public void registerJMX(ZooKeeperServerBean serverBean, LocalPeerBean localPeerBean)
-
unregisterJMX
protected void unregisterJMX()
- Overrides:
unregisterJMX
in classZooKeeperServer
-
unregisterJMX
protected void unregisterJMX(ZooKeeperServer zks)
-
getState
public String getState()
- Specified by:
getState
in interfaceServerStats.Provider
- Overrides:
getState
in classZooKeeperServer
-
getServerId
public long getServerId()
Returns the id of the associated QuorumPeer, which will do for a unique id of this server.- Specified by:
getServerId
in interfaceSessionTracker.SessionExpirer
- Overrides:
getServerId
in classZooKeeperServer
-
shutdown
public void shutdown()
- Overrides:
shutdown
in classZooKeeperServer
-
dumpConf
public void dumpConf(PrintWriter pwriter)
- Overrides:
dumpConf
in classZooKeeperServer
-
setState
protected void setState(ZooKeeperServer.State state)
Description copied from class:ZooKeeperServer
Sets the state of ZooKeeper server. After changing the state, it notifies the server state change to a registered shutdown handler, if any.The following are the server state transitions:
- During startup the server will be in the INITIAL state.
- After successfully starting, the server sets the state to RUNNING.
- The server transitions to the ERROR state if it hits an internal
error.
ZooKeeperServerListenerImpl
notifies any critical resource error events, e.g., SyncRequestProcessor not being able to write a txn to disk. - During shutdown the server sets the state to SHUTDOWN, which corresponds to the server not running.
- During maintenance (e.g. restore) the server sets the state to MAINTENANCE
- Overrides:
setState
in classZooKeeperServer
- Parameters:
state
- new server state.
-
-