|
@@ -292,6 +292,9 @@ document.write("Last Published: " + document.lastModified);
|
|
|
<li>
|
|
|
<a href="#Unsafe+Options">Unsafe Options</a>
|
|
|
</li>
|
|
|
+<li>
|
|
|
+<a href="#Communication+using+the+Netty+framework">Communication using the Netty framework</a>
|
|
|
+</li>
|
|
|
</ul>
|
|
|
</li>
|
|
|
<li>
|
|
@@ -1105,7 +1108,7 @@ server.3=zoo3:2888:3888</pre>
|
|
|
|
|
|
|
|
|
<dt>
|
|
|
-<term>clientPortBindAddress</term>
|
|
|
+<term>clientPortAddress</term>
|
|
|
</dt>
|
|
|
<dd>
|
|
|
<p>
|
|
@@ -1280,10 +1283,29 @@ server.3=zoo3:2888:3888</pre>
|
|
|
|
|
|
</p>
|
|
|
</dd>
|
|
|
+
|
|
|
+
|
|
|
+<dt>
|
|
|
+<term>cnxTimeout</term>
|
|
|
+</dt>
|
|
|
+<dd>
|
|
|
+<p>(Java system property: zookeeper.<strong>cnxTimeout</strong>)</p>
|
|
|
+<p>Sets the timeout value for opening connections for leader election notifications.
|
|
|
+ Only applicable if you are using electionAlg 3.
|
|
|
+ </p>
|
|
|
+<div class="note">
|
|
|
+<div class="label">Note</div>
|
|
|
+<div class="content">
|
|
|
+
|
|
|
+<p>Default value is 5 seconds.</p>
|
|
|
+
|
|
|
+</div>
|
|
|
+</div>
|
|
|
+</dd>
|
|
|
|
|
|
</dl>
|
|
|
<p></p>
|
|
|
-<a name="N103EC"></a><a name="sc_authOptions"></a>
|
|
|
+<a name="N103FD"></a><a name="sc_authOptions"></a>
|
|
|
<h4>Authentication & Authorization Options</h4>
|
|
|
<p>The options in this section allow control over
|
|
|
authentication/authorization performed by the service.</p>
|
|
@@ -1317,7 +1339,7 @@ server.3=zoo3:2888:3888</pre>
|
|
|
</dd>
|
|
|
|
|
|
</dl>
|
|
|
-<a name="N1040F"></a><a name="Unsafe+Options"></a>
|
|
|
+<a name="N10420"></a><a name="Unsafe+Options"></a>
|
|
|
<h4>Unsafe Options</h4>
|
|
|
<p>The following options can be useful, but be careful when you use
|
|
|
them. The risk of each is explained along with the explanation of what
|
|
@@ -1362,7 +1384,40 @@ server.3=zoo3:2888:3888</pre>
|
|
|
</dd>
|
|
|
|
|
|
</dl>
|
|
|
-<a name="N10441"></a><a name="sc_zkCommands"></a>
|
|
|
+<a name="N10451"></a><a name="Communication+using+the+Netty+framework"></a>
|
|
|
+<h4>Communication using the Netty framework</h4>
|
|
|
+<p>
|
|
|
+<strong>New in
|
|
|
+ 3.4:</strong> <a href="http://jboss.org/netty">Netty</a>
|
|
|
+ is an NIO based client/server communication framework, it
|
|
|
+ simplifies (over NIO being used directly) many of the
|
|
|
+ complexities of network level communication for java
|
|
|
+ applications. Additionally the Netty framework has built
|
|
|
+ in support for encryption (SSL) and authentication
|
|
|
+ (certificates). These are optional features and can be
|
|
|
+ turned on or off individually.
|
|
|
+ </p>
|
|
|
+<p>Prior to version 3.4 ZooKeeper has always used NIO
|
|
|
+ directly, however in versions 3.4 and later Netty is
|
|
|
+ supported as an option to NIO (replaces). NIO continues to
|
|
|
+ be the default, however Netty based communication can be
|
|
|
+ used in place of NIO by setting the environment variable
|
|
|
+ "zookeeper.serverCnxnFactory" to
|
|
|
+ "org.apache.zookeeper.server.NettyServerCnxnFactory". You
|
|
|
+ have the option of setting this on either the client(s) or
|
|
|
+ server(s), typically you would want to set this on both,
|
|
|
+ however that is at your discretion.
|
|
|
+ </p>
|
|
|
+<p>
|
|
|
+ TBD - tuning options for netty - currently there are none that are netty specific but we should add some. Esp around max bound on the number of reader worker threads netty creates.
|
|
|
+ </p>
|
|
|
+<p>
|
|
|
+ TBD - how to manage encryption
|
|
|
+ </p>
|
|
|
+<p>
|
|
|
+ TBD - how to manage certificates
|
|
|
+ </p>
|
|
|
+<a name="N1046E"></a><a name="sc_zkCommands"></a>
|
|
|
<h3 class="h4">ZooKeeper Commands: The Four Letter Words</h3>
|
|
|
<p>ZooKeeper responds to a small set of commands. Each command is
|
|
|
composed of four letters. You issue the commands to ZooKeeper via telnet
|
|
@@ -1500,6 +1555,42 @@ server.3=zoo3:2888:3888</pre>
|
|
|
operation may be expensive (ie impact server performance),
|
|
|
use it carefully.</p>
|
|
|
</dd>
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+<dt>
|
|
|
+<term>mntr</term>
|
|
|
+</dt>
|
|
|
+<dd>
|
|
|
+<p>
|
|
|
+<strong>New in 3.4.0:</strong> Outputs a list
|
|
|
+ of variables that could be used for monitoring the health of the cluster.</p>
|
|
|
+<pre class="code">$ echo mntr | nc localhost 2185
|
|
|
+
|
|
|
+zk_version 3.4.0
|
|
|
+zk_avg_latency 0
|
|
|
+zk_max_latency 0
|
|
|
+zk_min_latency 0
|
|
|
+zk_packets_received 70
|
|
|
+zk_packets_sent 69
|
|
|
+zk_outstanding_requests 0
|
|
|
+zk_server_state leader
|
|
|
+zk_znode_count 4
|
|
|
+zk_watch_count 0
|
|
|
+zk_ephemerals_count 0
|
|
|
+zk_approximate_data_size 27
|
|
|
+zk_followers 4 - only exposed by the Leader
|
|
|
+zk_synced_followers 4 - only exposed by the Leader
|
|
|
+zk_pending_syncs 0 - only exposed by the Leader
|
|
|
+zk_open_file_descriptor_count 23 - only available on Unix platforms
|
|
|
+zk_max_file_descriptor_count 1024 - only available on Unix platforms
|
|
|
+</pre>
|
|
|
+<p>The output is compatible with java properties format and the content
|
|
|
+ may change over time (new keys added). Your scripts should expect changes.</p>
|
|
|
+<p>ATTENTION: Some of the keys are platform specific and some of the keys are only exported by the Leader. </p>
|
|
|
+<p>The output contains multiple lines with the following format:</p>
|
|
|
+<pre class="code">key \t value</pre>
|
|
|
+</dd>
|
|
|
|
|
|
</dl>
|
|
|
<p>Here's an example of the <strong>ruok</strong>
|
|
@@ -1507,7 +1598,7 @@ server.3=zoo3:2888:3888</pre>
|
|
|
<pre class="code">$ echo ruok | nc 127.0.0.1 5111
|
|
|
imok
|
|
|
</pre>
|
|
|
-<a name="N104BE"></a><a name="sc_dataFileManagement"></a>
|
|
|
+<a name="N104FE"></a><a name="sc_dataFileManagement"></a>
|
|
|
<h3 class="h4">Data File Management</h3>
|
|
|
<p>ZooKeeper stores its data in a data directory and its transaction
|
|
|
log in a transaction log directory. By default these two directories are
|
|
@@ -1515,7 +1606,7 @@ imok
|
|
|
transaction log files in a separate directory than the data files.
|
|
|
Throughput increases and latency decreases when transaction logs reside
|
|
|
on a dedicated log devices.</p>
|
|
|
-<a name="N104C7"></a><a name="The+Data+Directory"></a>
|
|
|
+<a name="N10507"></a><a name="The+Data+Directory"></a>
|
|
|
<h4>The Data Directory</h4>
|
|
|
<p>This directory has two files in it:</p>
|
|
|
<ul>
|
|
@@ -1561,14 +1652,14 @@ imok
|
|
|
idempotent nature of its updates. By replaying the transaction log
|
|
|
against fuzzy snapshots ZooKeeper gets the state of the system at the
|
|
|
end of the log.</p>
|
|
|
-<a name="N10503"></a><a name="The+Log+Directory"></a>
|
|
|
+<a name="N10543"></a><a name="The+Log+Directory"></a>
|
|
|
<h4>The Log Directory</h4>
|
|
|
<p>The Log Directory contains the ZooKeeper transaction logs.
|
|
|
Before any update takes place, ZooKeeper ensures that the transaction
|
|
|
that represents the update is written to non-volatile storage. A new
|
|
|
log file is started each time a snapshot is begun. The log file's
|
|
|
suffix is the first zxid written to that log.</p>
|
|
|
-<a name="N1050D"></a><a name="sc_filemanagement"></a>
|
|
|
+<a name="N1054D"></a><a name="sc_filemanagement"></a>
|
|
|
<h4>File Management</h4>
|
|
|
<p>The format of snapshot and log files does not change between
|
|
|
standalone ZooKeeper servers and different configurations of
|
|
@@ -1588,7 +1679,7 @@ imok
|
|
|
this document for more details on setting a retention policy
|
|
|
and maintenance of ZooKeeper storage.
|
|
|
</p>
|
|
|
-<a name="N10522"></a><a name="sc_commonProblems"></a>
|
|
|
+<a name="N10562"></a><a name="sc_commonProblems"></a>
|
|
|
<h3 class="h4">Things to Avoid</h3>
|
|
|
<p>Here are some common problems you can avoid by configuring
|
|
|
ZooKeeper correctly:</p>
|
|
@@ -1642,7 +1733,7 @@ imok
|
|
|
</dd>
|
|
|
|
|
|
</dl>
|
|
|
-<a name="N10546"></a><a name="sc_bestPractices"></a>
|
|
|
+<a name="N10586"></a><a name="sc_bestPractices"></a>
|
|
|
<h3 class="h4">Best Practices</h3>
|
|
|
<p>For best results, take note of the following list of good
|
|
|
Zookeeper practices:</p>
|