You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by mm...@apache.org on 2018/10/31 18:46:16 UTC

[pulsar] branch asf-site updated: Updated site at revision 2591ccd

This is an automated email from the ASF dual-hosted git repository.

mmerli pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/pulsar.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 9a36ba0  Updated site at revision 2591ccd
9a36ba0 is described below

commit 9a36ba009a3a8cc033478e4bcb237cd0b5d9b5b3
Author: jenkins <bu...@apache.org>
AuthorDate: Wed Oct 31 18:46:01 2018 +0000

    Updated site at revision 2591ccd
---
 content/api/pulsar-functions/index-all.html        |  4 ++
 .../org/apache/pulsar/functions/api/Context.html   | 42 +++++++++++++----
 content/api/python/functions/context.m.html        | 34 ++++++++++++++
 .../docs/latest/adaptors/PulsarSpark/index.html    | 10 ++--
 .../docs/latest/adaptors/PulsarStorm/index.html    |  8 ++--
 content/docs/latest/admin-api/overview/index.html  | 18 ++++----
 content/docs/latest/clients/Cpp/index.html         |  8 ++--
 content/docs/latest/clients/Java/index.html        | 16 +++----
 content/docs/latest/clients/Python/index.html      | 10 ++--
 content/docs/latest/clients/WebSocket/index.html   |  8 ++--
 content/docs/latest/clients/go/index.html          |  6 +--
 .../docs/latest/cookbooks/Encryption/index.html    |  6 +--
 .../latest/cookbooks/PartitionedTopics/index.html  | 16 +++----
 .../latest/cookbooks/RetentionExpiry/index.html    | 16 +++----
 .../docs/latest/cookbooks/compaction/index.html    |  8 ++--
 .../cookbooks/message-deduplication/index.html     | 12 ++---
 .../docs/latest/cookbooks/message-queue/index.html | 16 +++----
 .../latest/cookbooks/tiered-storage/index.html     |  6 +--
 .../docs/latest/deployment/Kubernetes/index.html   |  4 +-
 .../docs/latest/deployment/aws-cluster/index.html  |  6 +--
 content/docs/latest/deployment/cluster/index.html  |  6 +--
 content/docs/latest/deployment/instance/index.html |  6 +--
 .../ConceptsAndArchitecture/index.html             |  4 +-
 .../latest/getting-started/LocalCluster/index.html |  4 +-
 .../latest/getting-started/Pulsar-2.0/index.html   |  2 +-
 .../docs/latest/getting-started/docker/index.html  |  4 +-
 .../docs/latest/project/BinaryProtocol/index.html  |  4 +-
 content/docs/latest/project/CompileCpp/index.html  |  8 ++--
 .../docs/latest/project/SimulationTools/index.html |  2 +-
 .../docs/latest/project/schema-storage/index.html  |  4 +-
 content/docs/latest/reference/CliTools/index.html  | 22 ++++-----
 .../docs/latest/security/authorization/index.html  | 14 +++---
 content/docs/latest/security/encryption/index.html |  6 +--
 .../zh-CN/2.1.0-incubating/admin-api-clusters.html | 50 ++++++++++----------
 .../2.1.0-incubating/admin-api-clusters/index.html | 50 ++++++++++----------
 .../concepts-architecture-overview.html            |  4 +-
 .../concepts-architecture-overview/index.html      |  4 +-
 .../2.1.0-incubating/concepts-authentication.html  |  4 +-
 .../concepts-authentication/index.html             |  4 +-
 .../zh-CN/2.1.0-incubating/concepts-overview.html  |  2 +-
 .../2.1.0-incubating/concepts-overview/index.html  |  2 +-
 .../2.1.0-incubating/concepts-tiered-storage.html  | 12 ++---
 .../concepts-tiered-storage/index.html             | 12 ++---
 .../concepts-topic-compaction.html                 | 38 +++++++--------
 .../concepts-topic-compaction/index.html           | 38 +++++++--------
 .../deploy-bare-metal-multi-cluster.html           |  8 ++--
 .../deploy-bare-metal-multi-cluster/index.html     |  8 ++--
 .../zh-CN/2.1.0-incubating/deploy-kubernetes.html  |  4 +-
 .../2.1.0-incubating/deploy-kubernetes/index.html  |  4 +-
 .../zh-CN/2.1.1-incubating/admin-api-clusters.html | 50 ++++++++++----------
 .../2.1.1-incubating/admin-api-clusters/index.html | 50 ++++++++++----------
 .../concepts-architecture-overview.html            |  4 +-
 .../concepts-architecture-overview/index.html      |  4 +-
 .../2.1.1-incubating/concepts-authentication.html  |  4 +-
 .../concepts-authentication/index.html             |  4 +-
 .../zh-CN/2.1.1-incubating/concepts-overview.html  |  2 +-
 .../2.1.1-incubating/concepts-overview/index.html  |  2 +-
 .../2.1.1-incubating/concepts-tiered-storage.html  | 12 ++---
 .../concepts-tiered-storage/index.html             | 12 ++---
 .../concepts-topic-compaction.html                 | 38 +++++++--------
 .../concepts-topic-compaction/index.html           | 38 +++++++--------
 .../deploy-bare-metal-multi-cluster.html           |  8 ++--
 .../deploy-bare-metal-multi-cluster/index.html     |  8 ++--
 .../zh-CN/2.1.1-incubating/deploy-kubernetes.html  |  4 +-
 .../2.1.1-incubating/deploy-kubernetes/index.html  |  4 +-
 content/docs/zh-CN/admin-api-clusters.html         | 50 ++++++++++----------
 content/docs/zh-CN/admin-api-clusters/index.html   | 50 ++++++++++----------
 .../docs/zh-CN/concepts-architecture-overview.html |  4 +-
 .../concepts-architecture-overview/index.html      |  4 +-
 content/docs/zh-CN/concepts-authentication.html    |  4 +-
 .../docs/zh-CN/concepts-authentication/index.html  |  4 +-
 content/docs/zh-CN/concepts-overview.html          |  2 +-
 content/docs/zh-CN/concepts-overview/index.html    |  2 +-
 content/docs/zh-CN/concepts-tiered-storage.html    | 12 ++---
 .../docs/zh-CN/concepts-tiered-storage/index.html  | 12 ++---
 content/docs/zh-CN/concepts-topic-compaction.html  | 38 +++++++--------
 .../zh-CN/concepts-topic-compaction/index.html     | 38 +++++++--------
 .../zh-CN/deploy-bare-metal-multi-cluster.html     |  8 ++--
 .../deploy-bare-metal-multi-cluster/index.html     |  8 ++--
 content/docs/zh-CN/deploy-kubernetes.html          |  4 +-
 content/docs/zh-CN/deploy-kubernetes/index.html    |  4 +-
 content/docs/zh-CN/next/admin-api-clusters.html    | 50 ++++++++++----------
 .../docs/zh-CN/next/admin-api-clusters/index.html  | 50 ++++++++++----------
 .../zh-CN/next/concepts-architecture-overview.html |  4 +-
 .../next/concepts-architecture-overview/index.html |  4 +-
 .../docs/zh-CN/next/concepts-authentication.html   |  4 +-
 .../zh-CN/next/concepts-authentication/index.html  |  4 +-
 .../docs/zh-CN/next/concepts-tiered-storage.html   | 12 ++---
 .../zh-CN/next/concepts-tiered-storage/index.html  | 12 ++---
 .../docs/zh-CN/next/concepts-topic-compaction.html | 38 +++++++--------
 .../next/concepts-topic-compaction/index.html      | 38 +++++++--------
 .../next/deploy-bare-metal-multi-cluster.html      |  8 ++--
 .../deploy-bare-metal-multi-cluster/index.html     |  8 ++--
 content/docs/zh-CN/next/deploy-kubernetes.html     |  4 +-
 .../docs/zh-CN/next/deploy-kubernetes/index.html   |  4 +-
 content/ja/adaptors/PulsarSpark/index.html         |  8 ++--
 content/ja/adaptors/PulsarStorm/index.html         |  6 +--
 content/ja/admin/AdminInterface/index.html         | 12 ++---
 content/ja/admin/Authz/index.html                  | 12 ++---
 content/ja/admin/ClustersBrokers/index.html        |  6 +--
 content/ja/admin/PropertiesNamespaces/index.html   |  6 +--
 content/ja/advanced/PartitionedTopics/index.html   | 12 ++---
 content/ja/advanced/RetentionExpiry/index.html     | 12 ++---
 content/ja/clients/Cpp/index.html                  |  6 +--
 content/ja/clients/Java/index.html                 |  8 ++--
 content/ja/clients/Python/index.html               |  8 ++--
 content/ja/clients/WebSocket/index.html            |  8 ++--
 content/ja/deployment/InstanceSetup/index.html     |  6 +--
 content/ja/deployment/Kubernetes/index.html        |  4 +-
 .../ConceptsAndArchitecture/index.html             |  2 +-
 content/ja/getting-started/LocalCluster/index.html |  4 +-
 content/ja/project/BinaryProtocol/index.html       |  4 +-
 content/ja/project/SimulationTools/index.html      |  2 +-
 content/ja/reference/CliTools/index.html           | 18 ++++----
 content/swagger/swagger.json                       | 54 +++++++++++-----------
 115 files changed, 785 insertions(+), 725 deletions(-)

diff --git a/content/api/pulsar-functions/index-all.html b/content/api/pulsar-functions/index-all.html
index 25546fb..65883a4 100644
--- a/content/api/pulsar-functions/index-all.html
+++ b/content/api/pulsar-functions/index-all.html
@@ -190,6 +190,10 @@
 <dd>
 <div class="block">Retrieves the sequence of the record from a source partition.</div>
 </dd>
+<dt><span class="memberNameLink"><a href="org/apache/pulsar/functions/api/Context.html#getSecret-java.lang.String-">getSecret(String)</a></span> - Method in interface org.apache.pulsar.functions.api.<a href="org/apache/pulsar/functions/api/Context.html" title="interface in org.apache.pulsar.functions.api">Context</a></dt>
+<dd>
+<div class="block">Get the secret associated with this key</div>
+</dd>
 <dt><span class="memberNameLink"><a href="org/apache/pulsar/functions/api/Context.html#getState-java.lang.String-">getState(String)</a></span> - Method in interface org.apache.pulsar.functions.api.<a href="org/apache/pulsar/functions/api/Context.html" title="interface in org.apache.pulsar.functions.api">Context</a></dt>
 <dd>
 <div class="block">Retrieve the state value for the key.</div>
diff --git a/content/api/pulsar-functions/org/apache/pulsar/functions/api/Context.html b/content/api/pulsar-functions/org/apache/pulsar/functions/api/Context.html
index 4a4f086..4f325b4 100644
--- a/content/api/pulsar-functions/org/apache/pulsar/functions/api/Context.html
+++ b/content/api/pulsar-functions/org/apache/pulsar/functions/api/Context.html
@@ -17,7 +17,7 @@
     catch(err) {
     }
 //-->
-var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6};
+var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6};
 var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
 var altColor = "altColor";
 var rowColor = "rowColor";
@@ -195,51 +195,57 @@ var activeTableTab = "activeTableTab";
 </td>
 </tr>
 <tr id="i12" class="altColor">
+<td class="colFirst"><code>String</code></td>
+<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/functions/api/Context.html#getSecret-java.lang.String-">getSecret</a></span>(String&nbsp;secretName)</code>
+<div class="block">Get the secret associated with this key</div>
+</td>
+</tr>
+<tr id="i13" class="rowColor">
 <td class="colFirst"><code>ByteBuffer</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/functions/api/Context.html#getState-java.lang.String-">getState</a></span>(String&nbsp;key)</code>
 <div class="block">Retrieve the state value for the key.</div>
 </td>
 </tr>
-<tr id="i13" class="rowColor">
+<tr id="i14" class="altColor">
 <td class="colFirst"><code>String</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/functions/api/Context.html#getTenant--">getTenant</a></span>()</code>
 <div class="block">The tenant this function belongs to</div>
 </td>
 </tr>
-<tr id="i14" class="altColor">
+<tr id="i15" class="rowColor">
 <td class="colFirst"><code>Map&lt;String,Object&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/functions/api/Context.html#getUserConfigMap--">getUserConfigMap</a></span>()</code>
 <div class="block">Get a map of all user-defined key/value configs for the function</div>
 </td>
 </tr>
-<tr id="i15" class="rowColor">
+<tr id="i16" class="altColor">
 <td class="colFirst"><code>Optional&lt;Object&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/functions/api/Context.html#getUserConfigValue-java.lang.String-">getUserConfigValue</a></span>(String&nbsp;key)</code>
 <div class="block">Get any user-defined key/value</div>
 </td>
 </tr>
-<tr id="i16" class="altColor">
+<tr id="i17" class="rowColor">
 <td class="colFirst"><code>Object</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/functions/api/Context.html#getUserConfigValueOrDefault-java.lang.String-java.lang.Object-">getUserConfigValueOrDefault</a></span>(String&nbsp;key,
                            Object&nbsp;defaultValue)</code>
 <div class="block">Get any user-defined key/value or a default value if none is present</div>
 </td>
 </tr>
-<tr id="i17" class="rowColor">
+<tr id="i18" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/functions/api/Context.html#incrCounter-java.lang.String-long-">incrCounter</a></span>(String&nbsp;key,
            long&nbsp;amount)</code>
 <div class="block">Increment the builtin distributed counter refered by key</div>
 </td>
 </tr>
-<tr id="i18" class="altColor">
+<tr id="i19" class="rowColor">
 <td class="colFirst"><code>&lt;O&gt;&nbsp;CompletableFuture&lt;Void&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/functions/api/Context.html#publish-java.lang.String-O-">publish</a></span>(String&nbsp;topicName,
        O&nbsp;object)</code>
 <div class="block">Publish an object to the topic using default schemas</div>
 </td>
 </tr>
-<tr id="i19" class="rowColor">
+<tr id="i20" class="altColor">
 <td class="colFirst"><code>&lt;O&gt;&nbsp;CompletableFuture&lt;Void&gt;</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/functions/api/Context.html#publish-java.lang.String-O-java.lang.String-">publish</a></span>(String&nbsp;topicName,
        O&nbsp;object,
@@ -247,14 +253,14 @@ var activeTableTab = "activeTableTab";
 <div class="block">Publish an object using serDe for serializing to the topic</div>
 </td>
 </tr>
-<tr id="i20" class="altColor">
+<tr id="i21" class="rowColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/functions/api/Context.html#putState-java.lang.String-java.nio.ByteBuffer-">putState</a></span>(String&nbsp;key,
         ByteBuffer&nbsp;value)</code>
 <div class="block">Updare the state value for the key.</div>
 </td>
 </tr>
-<tr id="i21" class="rowColor">
+<tr id="i22" class="altColor">
 <td class="colFirst"><code>void</code></td>
 <td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/pulsar/functions/api/Context.html#recordMetric-java.lang.String-double-">recordMetric</a></span>(String&nbsp;metricName,
             double&nbsp;value)</code>
@@ -555,6 +561,22 @@ var activeTableTab = "activeTableTab";
 </dl>
 </li>
 </ul>
+<a name="getSecret-java.lang.String-">
+<!--   -->
+</a>
+<ul class="blockList">
+<li class="blockList">
+<h4>getSecret</h4>
+<pre>String&nbsp;getSecret(String&nbsp;secretName)</pre>
+<div class="block">Get the secret associated with this key</div>
+<dl>
+<dt><span class="paramLabel">Parameters:</span></dt>
+<dd><code>secretName</code> - The name of the secret</dd>
+<dt><span class="returnLabel">Returns:</span></dt>
+<dd>The secret if anything was found or null</dd>
+</dl>
+</li>
+</ul>
 <a name="recordMetric-java.lang.String-double-">
 <!--   -->
 </a>
diff --git a/content/api/python/functions/context.m.html b/content/api/python/functions/context.m.html
index 51e3a69..516ab00 100644
--- a/content/api/python/functions/context.m.html
+++ b/content/api/python/functions/context.m.html
@@ -991,6 +991,7 @@ table {
     <li class="mono"><a href="#pulsar.functions.context.Context.get_message_id">get_message_id</a></li>
     <li class="mono"><a href="#pulsar.functions.context.Context.get_output_serde_class_name">get_output_serde_class_name</a></li>
     <li class="mono"><a href="#pulsar.functions.context.Context.get_output_topic">get_output_topic</a></li>
+    <li class="mono"><a href="#pulsar.functions.context.Context.get_secret">get_secret</a></li>
     <li class="mono"><a href="#pulsar.functions.context.Context.get_user_config_map">get_user_config_map</a></li>
     <li class="mono"><a href="#pulsar.functions.context.Context.get_user_config_value">get_user_config_value</a></li>
     <li class="mono"><a href="#pulsar.functions.context.Context.publish">publish</a></li>
@@ -1119,6 +1120,11 @@ class Context(object):
     pass
 
   @abstractmethod
+  def get_secret(self, secret_name):
+    """Returns the secret value associated with the name. None if nothing was found"""
+    pass
+
+  @abstractmethod
   def record_metric(self, metric_name, metric_value):
     """Records the metric_value. metric_value has to satisfy isinstance(metric_value, numbers.Number)"""
     pass
@@ -1218,6 +1224,11 @@ class Context(object):
     pass
 
   @abstractmethod
+  def get_secret(self, secret_name):
+    """Returns the secret value associated with the name. None if nothing was found"""
+    pass
+
+  @abstractmethod
   def record_metric(self, metric_name, metric_value):
     """Records the metric_value. metric_value has to satisfy isinstance(metric_value, numbers.Number)"""
     pass
@@ -1531,6 +1542,29 @@ def get_output_topic(self):
   
             
   <div class="item">
+    <div class="name def" id="pulsar.functions.context.Context.get_secret">
+    <p>def <span class="ident">get_secret</span>(</p><p>self, secret_name)</p>
+    </div>
+    
+
+    
+  
+    <div class="desc"><p>Returns the secret value associated with the name. None if nothing was found</p></div>
+  <div class="source_cont">
+  <p class="source_link"><a href="javascript:void(0);" onclick="toggle('source-pulsar.functions.context.Context.get_secret', this);">Show source &equiv;</a></p>
+  <div id="source-pulsar.functions.context.Context.get_secret" class="source">
+    <pre><code>@abstractmethod
+def get_secret(self, secret_name):
+  """Returns the secret value associated with the name. None if nothing was found"""
+  pass
+</code></pre>
+  </div>
+</div>
+
+  </div>
+  
+            
+  <div class="item">
     <div class="name def" id="pulsar.functions.context.Context.get_user_config_map">
     <p>def <span class="ident">get_user_config_map</span>(</p><p>self)</p>
     </div>
diff --git a/content/docs/latest/adaptors/PulsarSpark/index.html b/content/docs/latest/adaptors/PulsarSpark/index.html
index d130108..c00dd49 100644
--- a/content/docs/latest/adaptors/PulsarSpark/index.html
+++ b/content/docs/latest/adaptors/PulsarSpark/index.html
@@ -1079,9 +1079,9 @@
           
           
           
-          <li><a href="/docs/latest/adaptors/PulsarSpark/">Spark Streaming Pulsar receiver</a></li>
           
           
+          <li><a href="/docs/latest/adaptors/PulsarSpark/">Spark Streaming Pulsar receiver</a></li>
           
           
           
@@ -1325,9 +1325,9 @@
           
           
           
-          <li><a href="/docs/latest/adaptors/PulsarSpark/">Spark Streaming Pulsar receiver</a></li>
           
           
+          <li><a href="/docs/latest/adaptors/PulsarSpark/">Spark Streaming Pulsar receiver</a></li>
           
           
           
@@ -1537,6 +1537,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
@@ -1615,8 +1617,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1673,9 +1673,9 @@
           
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
diff --git a/content/docs/latest/adaptors/PulsarStorm/index.html b/content/docs/latest/adaptors/PulsarStorm/index.html
index 67a4256..a100055 100644
--- a/content/docs/latest/adaptors/PulsarStorm/index.html
+++ b/content/docs/latest/adaptors/PulsarStorm/index.html
@@ -1083,9 +1083,9 @@
           
           
           
-          <li><a href="/docs/latest/adaptors/PulsarStorm/">Pulsar adaptor for Apache Storm</a></li>
           
           
+          <li><a href="/docs/latest/adaptors/PulsarStorm/">Pulsar adaptor for Apache Storm</a></li>
           
           
           
@@ -1291,6 +1291,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
@@ -1369,8 +1371,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1427,9 +1427,9 @@
           
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
diff --git a/content/docs/latest/admin-api/overview/index.html b/content/docs/latest/admin-api/overview/index.html
index a2bc7c5..994ad01 100644
--- a/content/docs/latest/admin-api/overview/index.html
+++ b/content/docs/latest/admin-api/overview/index.html
@@ -1005,6 +1005,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1123,8 +1125,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1189,9 +1189,9 @@
           
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
@@ -1271,9 +1271,9 @@
           
           
           
-          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
+          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
           
@@ -1439,9 +1439,9 @@
           
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
@@ -1685,9 +1685,9 @@
           
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
@@ -1805,6 +1805,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
@@ -1883,8 +1885,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1941,9 +1941,9 @@
           
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
diff --git a/content/docs/latest/clients/Cpp/index.html b/content/docs/latest/clients/Cpp/index.html
index 58e0246..5dabb35 100644
--- a/content/docs/latest/clients/Cpp/index.html
+++ b/content/docs/latest/clients/Cpp/index.html
@@ -1005,9 +1005,9 @@
           
           
           
-          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
+          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
           
@@ -1033,6 +1033,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/clients/Cpp/">The Pulsar C++ client</a></li>
           
           
@@ -1155,8 +1157,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/clients/go/">The Pulsar Go client</a></li>
           
           
@@ -1287,9 +1287,9 @@
           
           
           
-          <li><a href="/docs/latest/clients/Cpp/">The Pulsar C++ client</a></li>
           
           
+          <li><a href="/docs/latest/clients/Cpp/">The Pulsar C++ client</a></li>
           
           
           
diff --git a/content/docs/latest/clients/Java/index.html b/content/docs/latest/clients/Java/index.html
index 5b89223..8ce7177 100644
--- a/content/docs/latest/clients/Java/index.html
+++ b/content/docs/latest/clients/Java/index.html
@@ -1005,9 +1005,9 @@
           
           
           
-          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
+          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
           
@@ -1033,6 +1033,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/clients/Cpp/">The Pulsar C++ client</a></li>
           
           
@@ -1155,8 +1157,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/clients/go/">The Pulsar Go client</a></li>
           
           
@@ -1301,6 +1301,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
@@ -1379,8 +1381,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1437,9 +1437,9 @@
           
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
@@ -1557,9 +1557,9 @@
           
           
           
-          <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
+          <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
           
@@ -1805,9 +1805,9 @@
           
           
           
-          <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
+          <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
           
diff --git a/content/docs/latest/clients/Python/index.html b/content/docs/latest/clients/Python/index.html
index 60bea8e..4d34e49 100644
--- a/content/docs/latest/clients/Python/index.html
+++ b/content/docs/latest/clients/Python/index.html
@@ -1005,9 +1005,9 @@
           
           
           
-          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
+          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
           
@@ -1033,6 +1033,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/clients/Cpp/">The Pulsar C++ client</a></li>
           
           
@@ -1155,8 +1157,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/clients/go/">The Pulsar Go client</a></li>
           
           
@@ -1343,9 +1343,9 @@
           
           
           
-          <li><a href="/docs/latest/clients/Python/">The Pulsar Python client</a></li>
           
           
+          <li><a href="/docs/latest/clients/Python/">The Pulsar Python client</a></li>
           
           
           
@@ -1365,9 +1365,9 @@
           
           
           
-          <li><a href="/docs/latest/clients/WebSocket/">Pulsar's WebSocket API</a></li>
           
           
+          <li><a href="/docs/latest/clients/WebSocket/">Pulsar's WebSocket API</a></li>
           
           
           
diff --git a/content/docs/latest/clients/WebSocket/index.html b/content/docs/latest/clients/WebSocket/index.html
index b881453..0c3f19d 100644
--- a/content/docs/latest/clients/WebSocket/index.html
+++ b/content/docs/latest/clients/WebSocket/index.html
@@ -1107,9 +1107,9 @@
           
           
           
-          <li><a href="/docs/latest/clients/WebSocket/">Pulsar's WebSocket API</a></li>
           
           
+          <li><a href="/docs/latest/clients/WebSocket/">Pulsar's WebSocket API</a></li>
           
           
           
@@ -1353,9 +1353,9 @@
           
           
           
-          <li><a href="/docs/latest/clients/WebSocket/">Pulsar's WebSocket API</a></li>
           
           
+          <li><a href="/docs/latest/clients/WebSocket/">Pulsar's WebSocket API</a></li>
           
           
           
@@ -1579,9 +1579,9 @@
           
           
           
-          <li><a href="/docs/latest/clients/Python/">The Pulsar Python client</a></li>
           
           
+          <li><a href="/docs/latest/clients/Python/">The Pulsar Python client</a></li>
           
           
           
@@ -1601,9 +1601,9 @@
           
           
           
-          <li><a href="/docs/latest/clients/WebSocket/">Pulsar's WebSocket API</a></li>
           
           
+          <li><a href="/docs/latest/clients/WebSocket/">Pulsar's WebSocket API</a></li>
           
           
           
diff --git a/content/docs/latest/clients/go/index.html b/content/docs/latest/clients/go/index.html
index a06ad5f..1492ffb 100644
--- a/content/docs/latest/clients/go/index.html
+++ b/content/docs/latest/clients/go/index.html
@@ -1005,9 +1005,9 @@
           
           
           
-          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
+          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
           
@@ -1033,6 +1033,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/clients/Cpp/">The Pulsar C++ client</a></li>
           
           
@@ -1155,8 +1157,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/clients/go/">The Pulsar Go client</a></li>
           
           
diff --git a/content/docs/latest/cookbooks/Encryption/index.html b/content/docs/latest/cookbooks/Encryption/index.html
index a6132a3..18ca402 100644
--- a/content/docs/latest/cookbooks/Encryption/index.html
+++ b/content/docs/latest/cookbooks/Encryption/index.html
@@ -1567,9 +1567,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
@@ -1823,9 +1823,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
@@ -1851,9 +1851,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
           
diff --git a/content/docs/latest/cookbooks/PartitionedTopics/index.html b/content/docs/latest/cookbooks/PartitionedTopics/index.html
index b385286..25ce2c6 100644
--- a/content/docs/latest/cookbooks/PartitionedTopics/index.html
+++ b/content/docs/latest/cookbooks/PartitionedTopics/index.html
@@ -1069,9 +1069,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
@@ -1315,9 +1315,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
@@ -1497,6 +1497,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1615,8 +1617,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1681,9 +1681,9 @@
           
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
@@ -1829,9 +1829,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
@@ -2085,9 +2085,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
@@ -2113,9 +2113,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
           
diff --git a/content/docs/latest/cookbooks/RetentionExpiry/index.html b/content/docs/latest/cookbooks/RetentionExpiry/index.html
index 48e2d65..0a51438 100644
--- a/content/docs/latest/cookbooks/RetentionExpiry/index.html
+++ b/content/docs/latest/cookbooks/RetentionExpiry/index.html
@@ -1005,6 +1005,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1123,8 +1125,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1189,9 +1189,9 @@
           
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
@@ -1361,9 +1361,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
           
@@ -1607,9 +1607,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
           
@@ -1853,9 +1853,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
           
@@ -2075,9 +2075,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
@@ -2103,9 +2103,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
           
diff --git a/content/docs/latest/cookbooks/compaction/index.html b/content/docs/latest/cookbooks/compaction/index.html
index 0d47061..fd7475c 100644
--- a/content/docs/latest/cookbooks/compaction/index.html
+++ b/content/docs/latest/cookbooks/compaction/index.html
@@ -1005,6 +1005,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1123,8 +1125,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1189,9 +1189,9 @@
           
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
@@ -1337,9 +1337,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
diff --git a/content/docs/latest/cookbooks/message-deduplication/index.html b/content/docs/latest/cookbooks/message-deduplication/index.html
index 5505920..03df0bf 100644
--- a/content/docs/latest/cookbooks/message-deduplication/index.html
+++ b/content/docs/latest/cookbooks/message-deduplication/index.html
@@ -1005,6 +1005,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1123,8 +1125,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1189,9 +1189,9 @@
           
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
@@ -1287,9 +1287,9 @@
           
           
           
-          <li><a href="/docs/latest/getting-started/ConceptsAndArchitecture/">Pulsar concepts and architecture</a></li>
           
           
+          <li><a href="/docs/latest/getting-started/ConceptsAndArchitecture/">Pulsar concepts and architecture</a></li>
           
           
           
@@ -1585,9 +1585,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
@@ -1613,9 +1613,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
           
diff --git a/content/docs/latest/cookbooks/message-queue/index.html b/content/docs/latest/cookbooks/message-queue/index.html
index 3aed975..3655ec9 100644
--- a/content/docs/latest/cookbooks/message-queue/index.html
+++ b/content/docs/latest/cookbooks/message-queue/index.html
@@ -1071,9 +1071,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
@@ -1301,6 +1301,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
@@ -1379,8 +1381,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1437,9 +1437,9 @@
           
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
@@ -1599,9 +1599,9 @@
           
           
           
-          <li><a href="/docs/latest/clients/Python/">The Pulsar Python client</a></li>
           
           
+          <li><a href="/docs/latest/clients/Python/">The Pulsar Python client</a></li>
           
           
           
@@ -1621,9 +1621,9 @@
           
           
           
-          <li><a href="/docs/latest/clients/WebSocket/">Pulsar's WebSocket API</a></li>
           
           
+          <li><a href="/docs/latest/clients/WebSocket/">Pulsar's WebSocket API</a></li>
           
           
           
@@ -2079,9 +2079,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
@@ -2107,9 +2107,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
           
diff --git a/content/docs/latest/cookbooks/tiered-storage/index.html b/content/docs/latest/cookbooks/tiered-storage/index.html
index e6a26c3..92718d6 100644
--- a/content/docs/latest/cookbooks/tiered-storage/index.html
+++ b/content/docs/latest/cookbooks/tiered-storage/index.html
@@ -1005,6 +1005,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1123,8 +1125,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1189,9 +1189,9 @@
           
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
diff --git a/content/docs/latest/deployment/Kubernetes/index.html b/content/docs/latest/deployment/Kubernetes/index.html
index 82e2140..868a18b 100644
--- a/content/docs/latest/deployment/Kubernetes/index.html
+++ b/content/docs/latest/deployment/Kubernetes/index.html
@@ -1051,9 +1051,9 @@
           
           
           
-          <li><a href="/docs/latest/deployment/Kubernetes/">Deploying Pulsar on Kubernetes</a></li>
           
           
+          <li><a href="/docs/latest/deployment/Kubernetes/">Deploying Pulsar on Kubernetes</a></li>
           
           
           
@@ -1297,9 +1297,9 @@
           
           
           
-          <li><a href="/docs/latest/deployment/Kubernetes/">Deploying Pulsar on Kubernetes</a></li>
           
           
+          <li><a href="/docs/latest/deployment/Kubernetes/">Deploying Pulsar on Kubernetes</a></li>
           
           
           
diff --git a/content/docs/latest/deployment/aws-cluster/index.html b/content/docs/latest/deployment/aws-cluster/index.html
index c0f626a..31cfc51 100644
--- a/content/docs/latest/deployment/aws-cluster/index.html
+++ b/content/docs/latest/deployment/aws-cluster/index.html
@@ -1005,6 +1005,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1123,8 +1125,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1189,9 +1189,9 @@
           
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
diff --git a/content/docs/latest/deployment/cluster/index.html b/content/docs/latest/deployment/cluster/index.html
index 64813ca..0a12601 100644
--- a/content/docs/latest/deployment/cluster/index.html
+++ b/content/docs/latest/deployment/cluster/index.html
@@ -1005,6 +1005,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1123,8 +1125,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1189,9 +1189,9 @@
           
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
diff --git a/content/docs/latest/deployment/instance/index.html b/content/docs/latest/deployment/instance/index.html
index cf29458..e4d8219 100644
--- a/content/docs/latest/deployment/instance/index.html
+++ b/content/docs/latest/deployment/instance/index.html
@@ -1005,6 +1005,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1123,8 +1125,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1189,9 +1189,9 @@
           
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
diff --git a/content/docs/latest/getting-started/ConceptsAndArchitecture/index.html b/content/docs/latest/getting-started/ConceptsAndArchitecture/index.html
index c7b2dad..51203a8 100644
--- a/content/docs/latest/getting-started/ConceptsAndArchitecture/index.html
+++ b/content/docs/latest/getting-started/ConceptsAndArchitecture/index.html
@@ -1021,9 +1021,9 @@
           
           
           
-          <li><a href="/docs/latest/getting-started/ConceptsAndArchitecture/">Pulsar concepts and architecture</a></li>
           
           
+          <li><a href="/docs/latest/getting-started/ConceptsAndArchitecture/">Pulsar concepts and architecture</a></li>
           
           
           
@@ -1267,9 +1267,9 @@
           
           
           
-          <li><a href="/docs/latest/getting-started/ConceptsAndArchitecture/">Pulsar concepts and architecture</a></li>
           
           
+          <li><a href="/docs/latest/getting-started/ConceptsAndArchitecture/">Pulsar concepts and architecture</a></li>
           
           
           
diff --git a/content/docs/latest/getting-started/LocalCluster/index.html b/content/docs/latest/getting-started/LocalCluster/index.html
index dcceda6..564bdd5 100644
--- a/content/docs/latest/getting-started/LocalCluster/index.html
+++ b/content/docs/latest/getting-started/LocalCluster/index.html
@@ -1057,9 +1057,9 @@
           
           
           
-          <li><a href="/docs/latest/getting-started/LocalCluster/">Setting up a local standalone cluster</a></li>
           
           
+          <li><a href="/docs/latest/getting-started/LocalCluster/">Setting up a local standalone cluster</a></li>
           
           
           
@@ -1305,9 +1305,9 @@
           
           
           
-          <li><a href="/docs/latest/getting-started/LocalCluster/">Setting up a local standalone cluster</a></li>
           
           
+          <li><a href="/docs/latest/getting-started/LocalCluster/">Setting up a local standalone cluster</a></li>
           
           
           
diff --git a/content/docs/latest/getting-started/Pulsar-2.0/index.html b/content/docs/latest/getting-started/Pulsar-2.0/index.html
index 2018e47..45ec5ca 100644
--- a/content/docs/latest/getting-started/Pulsar-2.0/index.html
+++ b/content/docs/latest/getting-started/Pulsar-2.0/index.html
@@ -1563,9 +1563,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
diff --git a/content/docs/latest/getting-started/docker/index.html b/content/docs/latest/getting-started/docker/index.html
index d67525e..9bd32cd 100644
--- a/content/docs/latest/getting-started/docker/index.html
+++ b/content/docs/latest/getting-started/docker/index.html
@@ -1057,9 +1057,9 @@
           
           
           
-          <li><a href="/docs/latest/getting-started/LocalCluster/">Setting up a local standalone cluster</a></li>
           
           
+          <li><a href="/docs/latest/getting-started/LocalCluster/">Setting up a local standalone cluster</a></li>
           
           
           
@@ -1305,9 +1305,9 @@
           
           
           
-          <li><a href="/docs/latest/getting-started/LocalCluster/">Setting up a local standalone cluster</a></li>
           
           
+          <li><a href="/docs/latest/getting-started/LocalCluster/">Setting up a local standalone cluster</a></li>
           
           
           
diff --git a/content/docs/latest/project/BinaryProtocol/index.html b/content/docs/latest/project/BinaryProtocol/index.html
index 5d74a12..3e28b29 100644
--- a/content/docs/latest/project/BinaryProtocol/index.html
+++ b/content/docs/latest/project/BinaryProtocol/index.html
@@ -1001,9 +1001,9 @@
           
           
           
-          <li><a href="/docs/latest/project/BinaryProtocol/">Pulsar binary protocol specification</a></li>
           
           
+          <li><a href="/docs/latest/project/BinaryProtocol/">Pulsar binary protocol specification</a></li>
           
           
           
@@ -1247,9 +1247,9 @@
           
           
           
-          <li><a href="/docs/latest/project/BinaryProtocol/">Pulsar binary protocol specification</a></li>
           
           
+          <li><a href="/docs/latest/project/BinaryProtocol/">Pulsar binary protocol specification</a></li>
           
           
           
diff --git a/content/docs/latest/project/CompileCpp/index.html b/content/docs/latest/project/CompileCpp/index.html
index 0b1376a..bd1db5f 100644
--- a/content/docs/latest/project/CompileCpp/index.html
+++ b/content/docs/latest/project/CompileCpp/index.html
@@ -1005,9 +1005,9 @@
           
           
           
-          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
+          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
           
@@ -1033,6 +1033,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/clients/Cpp/">The Pulsar C++ client</a></li>
           
           
@@ -1155,8 +1157,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/clients/go/">The Pulsar Go client</a></li>
           
           
@@ -1287,9 +1287,9 @@
           
           
           
-          <li><a href="/docs/latest/clients/Cpp/">The Pulsar C++ client</a></li>
           
           
+          <li><a href="/docs/latest/clients/Cpp/">The Pulsar C++ client</a></li>
           
           
           
diff --git a/content/docs/latest/project/SimulationTools/index.html b/content/docs/latest/project/SimulationTools/index.html
index 8857516..e601624 100644
--- a/content/docs/latest/project/SimulationTools/index.html
+++ b/content/docs/latest/project/SimulationTools/index.html
@@ -1099,9 +1099,9 @@
           
           
           
-          <li><a href="/docs/latest/project/SimulationTools/">Simulation tools</a></li>
           
           
+          <li><a href="/docs/latest/project/SimulationTools/">Simulation tools</a></li>
           
           
           
diff --git a/content/docs/latest/project/schema-storage/index.html b/content/docs/latest/project/schema-storage/index.html
index 9d6b5fd..333ed51 100644
--- a/content/docs/latest/project/schema-storage/index.html
+++ b/content/docs/latest/project/schema-storage/index.html
@@ -1045,9 +1045,9 @@
           
           
           
-          <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
+          <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
           
@@ -1293,9 +1293,9 @@
           
           
           
-          <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
+          <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
           
diff --git a/content/docs/latest/reference/CliTools/index.html b/content/docs/latest/reference/CliTools/index.html
index 6956c81..cc20bbd 100644
--- a/content/docs/latest/reference/CliTools/index.html
+++ b/content/docs/latest/reference/CliTools/index.html
@@ -1005,6 +1005,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1123,8 +1125,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1189,9 +1189,9 @@
           
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
@@ -1271,9 +1271,9 @@
           
           
           
-          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
+          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
           
@@ -1439,9 +1439,9 @@
           
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
@@ -1519,9 +1519,9 @@
           
           
           
-          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
+          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
           
@@ -1547,6 +1547,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/clients/Cpp/">The Pulsar C++ client</a></li>
           
           
@@ -1669,8 +1671,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/clients/go/">The Pulsar Go client</a></li>
           
           
@@ -1775,9 +1775,9 @@
           
           
           
-          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
+          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
           
@@ -2021,9 +2021,9 @@
           
           
           
-          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
+          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
           
@@ -2267,9 +2267,9 @@
           
           
           
-          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
+          <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
           
diff --git a/content/docs/latest/security/authorization/index.html b/content/docs/latest/security/authorization/index.html
index 45a42d9..755417d 100644
--- a/content/docs/latest/security/authorization/index.html
+++ b/content/docs/latest/security/authorization/index.html
@@ -1005,6 +1005,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/reference/CliTools/">Pulsar command-line tools</a></li>
           
           
@@ -1123,8 +1125,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -1189,9 +1189,9 @@
           
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
@@ -2299,6 +2299,8 @@
           
           
           
+          
+          
           <li><a href="/docs/latest/clients/Java/">The Pulsar Java client</a></li>
           
           
@@ -2377,8 +2379,6 @@
           
           
           
-          
-          
           <li><a href="/docs/latest/security/authorization/">Authentication and authorization in Pulsar</a></li>
           
           
@@ -2435,9 +2435,9 @@
           
           
           
+          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
-          <li><a href="/docs/latest/admin-api/overview/">The Pulsar admin interface</a></li>
           
           
           
@@ -2541,9 +2541,9 @@
           
           
           
-          <li><a href="/docs/latest/clients/Cpp/">The Pulsar C++ client</a></li>
           
           
+          <li><a href="/docs/latest/clients/Cpp/">The Pulsar C++ client</a></li>
           
           
           
diff --git a/content/docs/latest/security/encryption/index.html b/content/docs/latest/security/encryption/index.html
index a6132a3..18ca402 100644
--- a/content/docs/latest/security/encryption/index.html
+++ b/content/docs/latest/security/encryption/index.html
@@ -1567,9 +1567,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
@@ -1823,9 +1823,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/PartitionedTopics/">Partitioned topics</a></li>
           
           
           
@@ -1851,9 +1851,9 @@
           
           
           
-          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
+          <li><a href="/docs/latest/cookbooks/RetentionExpiry/">Message retention and expiry</a></li>
           
           
           
diff --git a/content/docs/zh-CN/2.1.0-incubating/admin-api-clusters.html b/content/docs/zh-CN/2.1.0-incubating/admin-api-clusters.html
index 9366ab3..400da9f 100644
--- a/content/docs/zh-CN/2.1.0-incubating/admin-api-clusters.html
+++ b/content/docs/zh-CN/2.1.0-incubating/admin-api-clusters.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Clusters · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar clusters consist of one or more Pulsar [brokers](/docs/zh-CN/2.1.0-incubating/reference-terminology#broker), one or more [BookKeeper](/docs/zh-CN/2.1.0-incubating/reference-terminology#book [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Clusters · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar集群的构成有,一个或多个pulsar[broker](/docs/zh-CN/2.1.0-incubating/reference-terminology#broker),一个或多个 [BookKeeper](/docs/zh-CN/2.1.0-incubating/reference-terminology#bookkeeper)服务器 也称为 [bookie](/docs/ [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -45,23 +45,23 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Managing Clusters</h1></header><article><div><span><p>Pulsar clusters consist of one or more Pulsar <a href="/docs/zh-CN/2.1.0-incubating/reference-terminology#broker">brok [...]
-<p>Clusters can be managed via:</p>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Managing Clusters</h1></header><article><div><span><p>Pulsar集群的构成有,一个或多个pulsar<a href="/docs/zh-CN/2.1.0-incubating/reference-terminology#broker">broker</a>,一个或多个 <a href=" [...]
+<p>集群可以通过如下几种方式管理:</p>
 <ul>
-<li>The <a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin#clusters"><code>clusters</code></a> command of the <a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin"><code>pulsar-admin</code></a> tool</li>
-<li>The <code>/admin/v2/clusters</code> endpoint of the admin <a href="https://pulsar.incubator.apache.org/en/admin-rest-api#/">REST</a>
+<li><a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin"><code>pulsar-admin</code></a>工具的<a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin#clusters"><code>clusters</code></a>命令</li>
+<li><code>/admin/v2/clusters</code> admin的endpoint <a href="https://pulsar.incubator.apache.org/en/admin-rest-api#/">REST</a>
  API</li>
-<li>The <code>clusters</code> method of the <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdmin">PulsarAdmin</a>
- object in the <a href="/docs/zh-CN/2.1.0-incubating/client-libraries-java">Java API</a></li>
+<li><a href="/docs/zh-CN/2.1.0-incubating/client-libraries-java">Java API</a>中<a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdmin">PulsarAdmin</a>
+ 对象的 <code>clusters</code>方法</li>
 </ul>
-<h2><a class="anchor" aria-hidden="true" id="clusters-resources"></a><a href="#clusters-resources" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
-<h3><a class="anchor" aria-hidden="true" id="provision"></a><a href="#provision" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<p>New clusters can be provisioned using the admin interface.</p>
+<h2><a class="anchor" aria-hidden="true" id="集群资源"></a><a href="#集群资源" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<h3><a class="anchor" aria-hidden="true" id="提供"></a><a href="#提供" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>新的集群可以通过admin接口提供。</p>
 <blockquote>
-<p>Please note that this operation requires superuser privileges.</p>
+<p>请注意这个操作需要超级用户权限</p>
 </blockquote>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>You can provision a new cluster using the <a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin#clusters-create"><code>create</code></a> subcommand. Here's an example:</p>
+<p>你可以使用<a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin#clusters-create"><code>create</code></a>子命令设置新的集群。下面是一个示例:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin clusters create cluster-1 \</span>
   --url http://my-cluster.org.com:8080 \
   --broker-url pulsar://my-cluster.org.com:6650
@@ -78,21 +78,21 @@
 );
 admin.clusters().createCluster(clusterName, clusterData);
 </code></pre>
-<h3><a class="anchor" aria-hidden="true" id="initialize-cluster-metadata"></a><a href="#initialize-cluster-metadata" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 1 [...]
-<p>When provision a new cluster, you need to initialize that cluster's <a href="/docs/zh-CN/2.1.0-incubating/concepts-architecture-overview#metadata-store">metadata</a>. When initializing cluster metadata, you need to specify all of the following:</p>
+<h3><a class="anchor" aria-hidden="true" id="初始化集群元数据"></a><a href="#初始化集群元数据" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
+<p>当准备新的集群,你需要初始化集群的<a href="/docs/zh-CN/2.1.0-incubating/concepts-architecture-overview#metadata-store">元数据</a> 当初始化集群元数据,你需要指定下面这些项:</p>
 <ul>
-<li>The name of the cluster</li>
-<li>The local ZooKeeper connection string for the cluster</li>
-<li>The global ZooKeeper connection string for the entire instance</li>
-<li>The web service URL for the cluster</li>
-<li>A broker service URL enabling interaction with the <a href="/docs/zh-CN/2.1.0-incubating/reference-terminology#broker">brokers</a> in the cluster</li>
+<li>集群的名称</li>
+<li>集群对本地zookeeper的连接串</li>
+<li>整个实例全局的ZooKeeper连接串</li>
+<li>集群的web服务URL</li>
+<li>Broker服务的URL,来开启和集群中<a href="/docs/zh-CN/2.1.0-incubating/reference-terminology#broker">broker</a>的交互</li>
 </ul>
-<p>You must initialize cluster metadata <em>before</em> starting up any <a href="/docs/zh-CN/2.1.0-incubating/admin-api-brokers">brokers</a> that will belong to the cluster.</p>
+<p>在你启动集群中任意一个<a href="/docs/zh-CN/2.1.0-incubating/admin-api-brokers">broker</a><em>前</em>,你必须要初始化集群元数据。</p>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="no-cluster-metadata-initialization-through-the-rest-api-or-the-java-admin-api"></a><a href="#no-cluster-metadata-initialization-through-the-rest-api-or-the-java-admin-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.2 [...]
-<p>Unlike most other admin functions in Pulsar, cluster metadata initialization cannot be performed via the admin REST API or the admin Java client, as metadata initialization involves communicating with ZooKeeper directly. Instead, you can use the <a href="/docs/zh-CN/2.1.0-incubating/reference-cli-tools#pulsar"><code>pulsar</code></a> CLI tool, in particular the <a href="/docs/zh-CN/2.1.0-incubating/reference-cli-tools#pulsar-initialize-cluster-metadata"><code>initialize-cluster-metada [...]
+<h4><a class="anchor" aria-hidden="true" id="通过rest-api或者java-admin-api-并不能集群原数据初始化"></a><a href="#通过rest-api或者java-admin-api-并不能集群原数据初始化" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1. [...]
+<p>和Pulsar其他的admin功能不一样,集群元数据初始化不能通过admin REST API执行。 但是你可以使用 <a href="/docs/zh-CN/2.1.0-incubating/reference-cli-tools#pulsar"><code>pulsar</code></a> CLI工具,执行指定的<a href="/docs/zh-CN/2.1.0-incubating/reference-cli-tools#pulsar-initialize-cluster-metadata"><code>initialize-cluster-metadata</code></a>命令</p>
 </blockquote>
-<p>Here's an example cluster metadata initialization command:</p>
+<p>下面是集群元数据初始化命令的例子:</p>
 <pre><code class="hljs css language-shell">bin/pulsar initialize-cluster-metadata \
   --cluster us-west \
   --zookeeper zk1.us-west.example.com:2181 \
@@ -102,7 +102,7 @@ admin.clusters().createCluster(clusterName, clusterData);
   --broker-service-url pulsar://pulsar.us-west.example.com:6650/ \
   --broker-service-url-tls pulsar+ssl://pulsar.us-west.example.com:6651/
 </code></pre>
-<p>You'll need to use <code>--*-tls</code> flags only if you're using <a href="/docs/zh-CN/2.1.0-incubating/security-tls-authentication">TLS authentication</a> in your instance.</p>
+<p>你需要仅使用<code>--*-tls</code>标记,如果你正在你的实例中使用 <a href="/docs/zh-CN/2.1.0-incubating/security-tls-authentication">TLS authentication</a>。</p>
 <h3><a class="anchor" aria-hidden="true" id="get-configuration"></a><a href="#get-configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
 <p>You can fetch the <a href="/docs/zh-CN/2.1.0-incubating/reference-configuration">configuration</a> for an existing cluster at any time.</p>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-1"></a><a href="#pulsar-admin-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
@@ -180,7 +180,7 @@ cluster-2
 <h4><a class="anchor" aria-hidden="true" id="java-5"></a><a href="#java-5" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.clusters().updatePeerClusterNames(clusterName, peerClusterList);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/admin-api-overview"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/admin-api-tenants"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#clusters-resources">Clusters resources</a><ul class="toc-headings"><li [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/admin-api-overview"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/admin-api-tenants"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#集群资源">集群资源</a><ul class="toc-headings"><li><a href="#提供">提供</a></li><l [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.1.0-incubating/admin-api-clusters/index.html b/content/docs/zh-CN/2.1.0-incubating/admin-api-clusters/index.html
index 9366ab3..400da9f 100644
--- a/content/docs/zh-CN/2.1.0-incubating/admin-api-clusters/index.html
+++ b/content/docs/zh-CN/2.1.0-incubating/admin-api-clusters/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Clusters · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar clusters consist of one or more Pulsar [brokers](/docs/zh-CN/2.1.0-incubating/reference-terminology#broker), one or more [BookKeeper](/docs/zh-CN/2.1.0-incubating/reference-terminology#book [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Clusters · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar集群的构成有,一个或多个pulsar[broker](/docs/zh-CN/2.1.0-incubating/reference-terminology#broker),一个或多个 [BookKeeper](/docs/zh-CN/2.1.0-incubating/reference-terminology#bookkeeper)服务器 也称为 [bookie](/docs/ [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -45,23 +45,23 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Managing Clusters</h1></header><article><div><span><p>Pulsar clusters consist of one or more Pulsar <a href="/docs/zh-CN/2.1.0-incubating/reference-terminology#broker">brok [...]
-<p>Clusters can be managed via:</p>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Managing Clusters</h1></header><article><div><span><p>Pulsar集群的构成有,一个或多个pulsar<a href="/docs/zh-CN/2.1.0-incubating/reference-terminology#broker">broker</a>,一个或多个 <a href=" [...]
+<p>集群可以通过如下几种方式管理:</p>
 <ul>
-<li>The <a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin#clusters"><code>clusters</code></a> command of the <a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin"><code>pulsar-admin</code></a> tool</li>
-<li>The <code>/admin/v2/clusters</code> endpoint of the admin <a href="https://pulsar.incubator.apache.org/en/admin-rest-api#/">REST</a>
+<li><a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin"><code>pulsar-admin</code></a>工具的<a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin#clusters"><code>clusters</code></a>命令</li>
+<li><code>/admin/v2/clusters</code> admin的endpoint <a href="https://pulsar.incubator.apache.org/en/admin-rest-api#/">REST</a>
  API</li>
-<li>The <code>clusters</code> method of the <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdmin">PulsarAdmin</a>
- object in the <a href="/docs/zh-CN/2.1.0-incubating/client-libraries-java">Java API</a></li>
+<li><a href="/docs/zh-CN/2.1.0-incubating/client-libraries-java">Java API</a>中<a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdmin">PulsarAdmin</a>
+ 对象的 <code>clusters</code>方法</li>
 </ul>
-<h2><a class="anchor" aria-hidden="true" id="clusters-resources"></a><a href="#clusters-resources" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
-<h3><a class="anchor" aria-hidden="true" id="provision"></a><a href="#provision" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<p>New clusters can be provisioned using the admin interface.</p>
+<h2><a class="anchor" aria-hidden="true" id="集群资源"></a><a href="#集群资源" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<h3><a class="anchor" aria-hidden="true" id="提供"></a><a href="#提供" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>新的集群可以通过admin接口提供。</p>
 <blockquote>
-<p>Please note that this operation requires superuser privileges.</p>
+<p>请注意这个操作需要超级用户权限</p>
 </blockquote>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>You can provision a new cluster using the <a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin#clusters-create"><code>create</code></a> subcommand. Here's an example:</p>
+<p>你可以使用<a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin#clusters-create"><code>create</code></a>子命令设置新的集群。下面是一个示例:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin clusters create cluster-1 \</span>
   --url http://my-cluster.org.com:8080 \
   --broker-url pulsar://my-cluster.org.com:6650
@@ -78,21 +78,21 @@
 );
 admin.clusters().createCluster(clusterName, clusterData);
 </code></pre>
-<h3><a class="anchor" aria-hidden="true" id="initialize-cluster-metadata"></a><a href="#initialize-cluster-metadata" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 1 [...]
-<p>When provision a new cluster, you need to initialize that cluster's <a href="/docs/zh-CN/2.1.0-incubating/concepts-architecture-overview#metadata-store">metadata</a>. When initializing cluster metadata, you need to specify all of the following:</p>
+<h3><a class="anchor" aria-hidden="true" id="初始化集群元数据"></a><a href="#初始化集群元数据" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
+<p>当准备新的集群,你需要初始化集群的<a href="/docs/zh-CN/2.1.0-incubating/concepts-architecture-overview#metadata-store">元数据</a> 当初始化集群元数据,你需要指定下面这些项:</p>
 <ul>
-<li>The name of the cluster</li>
-<li>The local ZooKeeper connection string for the cluster</li>
-<li>The global ZooKeeper connection string for the entire instance</li>
-<li>The web service URL for the cluster</li>
-<li>A broker service URL enabling interaction with the <a href="/docs/zh-CN/2.1.0-incubating/reference-terminology#broker">brokers</a> in the cluster</li>
+<li>集群的名称</li>
+<li>集群对本地zookeeper的连接串</li>
+<li>整个实例全局的ZooKeeper连接串</li>
+<li>集群的web服务URL</li>
+<li>Broker服务的URL,来开启和集群中<a href="/docs/zh-CN/2.1.0-incubating/reference-terminology#broker">broker</a>的交互</li>
 </ul>
-<p>You must initialize cluster metadata <em>before</em> starting up any <a href="/docs/zh-CN/2.1.0-incubating/admin-api-brokers">brokers</a> that will belong to the cluster.</p>
+<p>在你启动集群中任意一个<a href="/docs/zh-CN/2.1.0-incubating/admin-api-brokers">broker</a><em>前</em>,你必须要初始化集群元数据。</p>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="no-cluster-metadata-initialization-through-the-rest-api-or-the-java-admin-api"></a><a href="#no-cluster-metadata-initialization-through-the-rest-api-or-the-java-admin-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.2 [...]
-<p>Unlike most other admin functions in Pulsar, cluster metadata initialization cannot be performed via the admin REST API or the admin Java client, as metadata initialization involves communicating with ZooKeeper directly. Instead, you can use the <a href="/docs/zh-CN/2.1.0-incubating/reference-cli-tools#pulsar"><code>pulsar</code></a> CLI tool, in particular the <a href="/docs/zh-CN/2.1.0-incubating/reference-cli-tools#pulsar-initialize-cluster-metadata"><code>initialize-cluster-metada [...]
+<h4><a class="anchor" aria-hidden="true" id="通过rest-api或者java-admin-api-并不能集群原数据初始化"></a><a href="#通过rest-api或者java-admin-api-并不能集群原数据初始化" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1. [...]
+<p>和Pulsar其他的admin功能不一样,集群元数据初始化不能通过admin REST API执行。 但是你可以使用 <a href="/docs/zh-CN/2.1.0-incubating/reference-cli-tools#pulsar"><code>pulsar</code></a> CLI工具,执行指定的<a href="/docs/zh-CN/2.1.0-incubating/reference-cli-tools#pulsar-initialize-cluster-metadata"><code>initialize-cluster-metadata</code></a>命令</p>
 </blockquote>
-<p>Here's an example cluster metadata initialization command:</p>
+<p>下面是集群元数据初始化命令的例子:</p>
 <pre><code class="hljs css language-shell">bin/pulsar initialize-cluster-metadata \
   --cluster us-west \
   --zookeeper zk1.us-west.example.com:2181 \
@@ -102,7 +102,7 @@ admin.clusters().createCluster(clusterName, clusterData);
   --broker-service-url pulsar://pulsar.us-west.example.com:6650/ \
   --broker-service-url-tls pulsar+ssl://pulsar.us-west.example.com:6651/
 </code></pre>
-<p>You'll need to use <code>--*-tls</code> flags only if you're using <a href="/docs/zh-CN/2.1.0-incubating/security-tls-authentication">TLS authentication</a> in your instance.</p>
+<p>你需要仅使用<code>--*-tls</code>标记,如果你正在你的实例中使用 <a href="/docs/zh-CN/2.1.0-incubating/security-tls-authentication">TLS authentication</a>。</p>
 <h3><a class="anchor" aria-hidden="true" id="get-configuration"></a><a href="#get-configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
 <p>You can fetch the <a href="/docs/zh-CN/2.1.0-incubating/reference-configuration">configuration</a> for an existing cluster at any time.</p>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-1"></a><a href="#pulsar-admin-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
@@ -180,7 +180,7 @@ cluster-2
 <h4><a class="anchor" aria-hidden="true" id="java-5"></a><a href="#java-5" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.clusters().updatePeerClusterNames(clusterName, peerClusterList);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/admin-api-overview"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/admin-api-tenants"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#clusters-resources">Clusters resources</a><ul class="toc-headings"><li [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/admin-api-overview"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/admin-api-tenants"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#集群资源">集群资源</a><ul class="toc-headings"><li><a href="#提供">提供</a></li><l [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.1.0-incubating/concepts-architecture-overview.html b/content/docs/zh-CN/2.1.0-incubating/concepts-architecture-overview.html
index 7565b90..3ccd338 100644
--- a/content/docs/zh-CN/2.1.0-incubating/concepts-architecture-overview.html
+++ b/content/docs/zh-CN/2.1.0-incubating/concepts-architecture-overview.html
@@ -67,7 +67,7 @@
 <blockquote>
 <p>For a guide to managing Pulsar brokers, see the <a href="/docs/zh-CN/2.1.0-incubating/admin-api-brokers">brokers</a> guide.</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="clusters"></a><a href="#clusters" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
+<h2><a class="anchor" aria-hidden="true" id="集群"></a><a href="#集群" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <p>A Pulsar instance consists of one or more Pulsar <em>clusters</em>. Clusters, in turn, consist of:</p>
 <ul>
 <li>One or more Pulsar <a href="#brokers">brokers</a></li>
@@ -154,7 +154,7 @@
 
 client = Client(<span class="hljs-string">'pulsar://pulsar-cluster.acme.com:6650'</span>)
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/concepts-messaging"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/concepts-clients"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#brokers">Brokers</a></li><li><a href="#clusters">Clusters</a></li><li>< [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/concepts-messaging"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/concepts-clients"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#brokers">Brokers</a></li><li><a href="#集群">集群</a></li><li><a href="#met [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.1.0-incubating/concepts-architecture-overview/index.html b/content/docs/zh-CN/2.1.0-incubating/concepts-architecture-overview/index.html
index 7565b90..3ccd338 100644
--- a/content/docs/zh-CN/2.1.0-incubating/concepts-architecture-overview/index.html
+++ b/content/docs/zh-CN/2.1.0-incubating/concepts-architecture-overview/index.html
@@ -67,7 +67,7 @@
 <blockquote>
 <p>For a guide to managing Pulsar brokers, see the <a href="/docs/zh-CN/2.1.0-incubating/admin-api-brokers">brokers</a> guide.</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="clusters"></a><a href="#clusters" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
+<h2><a class="anchor" aria-hidden="true" id="集群"></a><a href="#集群" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <p>A Pulsar instance consists of one or more Pulsar <em>clusters</em>. Clusters, in turn, consist of:</p>
 <ul>
 <li>One or more Pulsar <a href="#brokers">brokers</a></li>
@@ -154,7 +154,7 @@
 
 client = Client(<span class="hljs-string">'pulsar://pulsar-cluster.acme.com:6650'</span>)
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/concepts-messaging"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/concepts-clients"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#brokers">Brokers</a></li><li><a href="#clusters">Clusters</a></li><li>< [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/concepts-messaging"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/concepts-clients"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#brokers">Brokers</a></li><li><a href="#集群">集群</a></li><li><a href="#met [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.1.0-incubating/concepts-authentication.html b/content/docs/zh-CN/2.1.0-incubating/concepts-authentication.html
index ab16cb8..cfa7f88 100644
--- a/content/docs/zh-CN/2.1.0-incubating/concepts-authentication.html
+++ b/content/docs/zh-CN/2.1.0-incubating/concepts-authentication.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Authentication and Authorization · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar supports a pluggable [authentication](/docs/zh-CN/2.1.0-incubating/security-overview) mechanism which can be configured at broker and it also supports authorization to identi [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>认证和授权 · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar支持可插入的 [认证](/docs/zh-CN/2.1.0-incubating/security-overview)机制,它配置在broker上,并且支持授权,来识别客户端及它能够访问的topic和tenant"/><meta name="docsearch:version" content="2.1.0-incubating"/><meta name="docsearch:language" co [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Authentication and Authorization</h1></header><article><div><span><p>Pulsar supports a pluggable <a href="/docs/zh-CN/2.1.0-incubating/security-overview">authentication</a> [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">认证和授权</h1></header><article><div><span><p>Pulsar支持可插入的 <a href="/docs/zh-CN/2.1.0-incubating/security-overview">认证</a>机制,它配置在broker上,并且支持授权,来识别客户端及它能够访问的topic和tenant</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/concepts-multi-tenancy"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/concepts-topic-compaction"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 Th [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/zh-CN/2.1.0-incubating/concepts-authentication/index.html b/content/docs/zh-CN/2.1.0-incubating/concepts-authentication/index.html
index ab16cb8..cfa7f88 100644
--- a/content/docs/zh-CN/2.1.0-incubating/concepts-authentication/index.html
+++ b/content/docs/zh-CN/2.1.0-incubating/concepts-authentication/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Authentication and Authorization · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar supports a pluggable [authentication](/docs/zh-CN/2.1.0-incubating/security-overview) mechanism which can be configured at broker and it also supports authorization to identi [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>认证和授权 · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar支持可插入的 [认证](/docs/zh-CN/2.1.0-incubating/security-overview)机制,它配置在broker上,并且支持授权,来识别客户端及它能够访问的topic和tenant"/><meta name="docsearch:version" content="2.1.0-incubating"/><meta name="docsearch:language" co [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Authentication and Authorization</h1></header><article><div><span><p>Pulsar supports a pluggable <a href="/docs/zh-CN/2.1.0-incubating/security-overview">authentication</a> [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">认证和授权</h1></header><article><div><span><p>Pulsar支持可插入的 <a href="/docs/zh-CN/2.1.0-incubating/security-overview">认证</a>机制,它配置在broker上,并且支持授权,来识别客户端及它能够访问的topic和tenant</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/concepts-multi-tenancy"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/concepts-topic-compaction"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 Th [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/zh-CN/2.1.0-incubating/concepts-overview.html b/content/docs/zh-CN/2.1.0-incubating/concepts-overview.html
index f898b4f..85e02f8 100644
--- a/content/docs/zh-CN/2.1.0-incubating/concepts-overview.html
+++ b/content/docs/zh-CN/2.1.0-incubating/concepts-overview.html
@@ -65,7 +65,7 @@
 <li><a href="/docs/zh-CN/2.1.0-incubating/concepts-clients">Pulsar客户端</a></li>
 <li><a href="/docs/zh-CN/2.1.0-incubating/concepts-replication">基于地理位置的备份</a></li>
 <li><a href="/docs/zh-CN/2.1.0-incubating/concepts-multi-tenancy">多租户</a></li>
-<li><a href="/docs/zh-CN/2.1.0-incubating/concepts-authentication">Authentication and Authorization</a></li>
+<li><a href="/docs/zh-CN/2.1.0-incubating/concepts-authentication">认证和授权</a></li>
 <li><a href="/docs/zh-CN/2.1.0-incubating/concepts-topic-compaction">消息压缩</a></li>
 <li><a href="/docs/zh-CN/2.1.0-incubating/concepts-tiered-storage">Tiered Storage</a></li>
 <li><a href="/docs/zh-CN/2.1.0-incubating/concepts-schema-registry">Schema管理服务</a></li>
diff --git a/content/docs/zh-CN/2.1.0-incubating/concepts-overview/index.html b/content/docs/zh-CN/2.1.0-incubating/concepts-overview/index.html
index f898b4f..85e02f8 100644
--- a/content/docs/zh-CN/2.1.0-incubating/concepts-overview/index.html
+++ b/content/docs/zh-CN/2.1.0-incubating/concepts-overview/index.html
@@ -65,7 +65,7 @@
 <li><a href="/docs/zh-CN/2.1.0-incubating/concepts-clients">Pulsar客户端</a></li>
 <li><a href="/docs/zh-CN/2.1.0-incubating/concepts-replication">基于地理位置的备份</a></li>
 <li><a href="/docs/zh-CN/2.1.0-incubating/concepts-multi-tenancy">多租户</a></li>
-<li><a href="/docs/zh-CN/2.1.0-incubating/concepts-authentication">Authentication and Authorization</a></li>
+<li><a href="/docs/zh-CN/2.1.0-incubating/concepts-authentication">认证和授权</a></li>
 <li><a href="/docs/zh-CN/2.1.0-incubating/concepts-topic-compaction">消息压缩</a></li>
 <li><a href="/docs/zh-CN/2.1.0-incubating/concepts-tiered-storage">Tiered Storage</a></li>
 <li><a href="/docs/zh-CN/2.1.0-incubating/concepts-schema-registry">Schema管理服务</a></li>
diff --git a/content/docs/zh-CN/2.1.0-incubating/concepts-tiered-storage.html b/content/docs/zh-CN/2.1.0-incubating/concepts-tiered-storage.html
index 6b026e6..5bdb529 100644
--- a/content/docs/zh-CN/2.1.0-incubating/concepts-tiered-storage.html
+++ b/content/docs/zh-CN/2.1.0-incubating/concepts-tiered-storage.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Tiered Storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar&#x27;s segment oriented architecture allows for topic backlogs to grow very large, effectively without limit. However, this can become expensive over time."/><meta name="docsearch:version" con [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Tiered Storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar面向segment的架构允许topic backlong增长的十分庞大,如果有没加以限制,随着时间的增加,代价将越来越高。"/><meta name="docsearch:version" content="2.1.0-incubating"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:ti [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -45,15 +45,15 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Tiered Storage</h1></header><article><div><span><p>Pulsar's segment oriented architecture allows for topic backlogs to grow very large, effectively without limit. However,  [...]
-<p>One way to alleviate this cost is to use Tiered Storage. With tiered storage, older messages in the backlog can be moved from bookkeeper to a cheaper storage mechanism, while still allowing clients to access the backlog as if nothing had changed.</p>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Tiered Storage</h1></header><article><div><span><p>Pulsar面向segment的架构允许topic backlong增长的十分庞大,如果有没加以限制,随着时间的增加,代价将越来越高。</p>
+<p>有一个减轻这个消耗的办法,那就是使用分层存储。 使用分层存储,backlog中旧的消息,将被从booKeeper转移到更低廉的存储机制中,当然还是允许客户端进入backlog,就像什么也没有发生一样。</p>
 <p><img src="/docs/assets/pulsar-tiered-storage.png" alt="Tiered Storage"></p>
 <blockquote>
-<p>Data written to bookkeeper is replicated to 3 physical machines by default. However, once a segment is sealed in bookkeeper is becomes immutable and can be copied to long term storage. Long term storage can achieve cost savings by using mechanisms such as <a href="https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction">Reed-Solomon error correction</a> to require fewer physical copies of data.</p>
+<p>写入bookKeeper的数据被默认复制到3台物理机。 但是,一旦segment在bookKeeper中被封闭,将会变成不可改变,并且可以被拷贝到长期存储中。 长期存储可以达到节省存储的目的,通过使用如 <a href="https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction">Reed-Solomon error correction</a> 的机制,以实现所需更少的数据物理备份。</p>
 </blockquote>
-<p>Pulsar currently supports S3 as a long term store. Offloading to S3 triggered via a Rest API or command line interface. The user passes in the amount of topic data they wish to retain on bookkeeper, and the broker will copy the backlog data to S3. The original data will then be deleted from bookkeeper after a configured delay (4 hours by default).</p>
+<p>Pulsar目前支持S3作为长期存储。 可以通过Rest API或者命令行接口,卸载数据到S3。 用户传入他们想要保留在bookKeeper的topic数据的数量,broker将会拷贝backlog到S3. 原始数据将在配置的延迟之后,从bookKeeper中删除(默认4小时)。</p>
 <blockquote>
-<p>For a guide for setting up tiered storage, see the <a href="/docs/zh-CN/2.1.0-incubating/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
+<p>搭建分层存储的指导,请参考 <a href="/docs/zh-CN/2.1.0-incubating/cookbooks-tiered-storage">Tiered storage cookbook</a>。</p>
 </blockquote>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/concepts-topic-compaction"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/concepts-schema-registry"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/zh-CN/2.1.0-incubating/concepts-tiered-storage/index.html b/content/docs/zh-CN/2.1.0-incubating/concepts-tiered-storage/index.html
index 6b026e6..5bdb529 100644
--- a/content/docs/zh-CN/2.1.0-incubating/concepts-tiered-storage/index.html
+++ b/content/docs/zh-CN/2.1.0-incubating/concepts-tiered-storage/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Tiered Storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar&#x27;s segment oriented architecture allows for topic backlogs to grow very large, effectively without limit. However, this can become expensive over time."/><meta name="docsearch:version" con [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Tiered Storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar面向segment的架构允许topic backlong增长的十分庞大,如果有没加以限制,随着时间的增加,代价将越来越高。"/><meta name="docsearch:version" content="2.1.0-incubating"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:ti [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -45,15 +45,15 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Tiered Storage</h1></header><article><div><span><p>Pulsar's segment oriented architecture allows for topic backlogs to grow very large, effectively without limit. However,  [...]
-<p>One way to alleviate this cost is to use Tiered Storage. With tiered storage, older messages in the backlog can be moved from bookkeeper to a cheaper storage mechanism, while still allowing clients to access the backlog as if nothing had changed.</p>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Tiered Storage</h1></header><article><div><span><p>Pulsar面向segment的架构允许topic backlong增长的十分庞大,如果有没加以限制,随着时间的增加,代价将越来越高。</p>
+<p>有一个减轻这个消耗的办法,那就是使用分层存储。 使用分层存储,backlog中旧的消息,将被从booKeeper转移到更低廉的存储机制中,当然还是允许客户端进入backlog,就像什么也没有发生一样。</p>
 <p><img src="/docs/assets/pulsar-tiered-storage.png" alt="Tiered Storage"></p>
 <blockquote>
-<p>Data written to bookkeeper is replicated to 3 physical machines by default. However, once a segment is sealed in bookkeeper is becomes immutable and can be copied to long term storage. Long term storage can achieve cost savings by using mechanisms such as <a href="https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction">Reed-Solomon error correction</a> to require fewer physical copies of data.</p>
+<p>写入bookKeeper的数据被默认复制到3台物理机。 但是,一旦segment在bookKeeper中被封闭,将会变成不可改变,并且可以被拷贝到长期存储中。 长期存储可以达到节省存储的目的,通过使用如 <a href="https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction">Reed-Solomon error correction</a> 的机制,以实现所需更少的数据物理备份。</p>
 </blockquote>
-<p>Pulsar currently supports S3 as a long term store. Offloading to S3 triggered via a Rest API or command line interface. The user passes in the amount of topic data they wish to retain on bookkeeper, and the broker will copy the backlog data to S3. The original data will then be deleted from bookkeeper after a configured delay (4 hours by default).</p>
+<p>Pulsar目前支持S3作为长期存储。 可以通过Rest API或者命令行接口,卸载数据到S3。 用户传入他们想要保留在bookKeeper的topic数据的数量,broker将会拷贝backlog到S3. 原始数据将在配置的延迟之后,从bookKeeper中删除(默认4小时)。</p>
 <blockquote>
-<p>For a guide for setting up tiered storage, see the <a href="/docs/zh-CN/2.1.0-incubating/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
+<p>搭建分层存储的指导,请参考 <a href="/docs/zh-CN/2.1.0-incubating/cookbooks-tiered-storage">Tiered storage cookbook</a>。</p>
 </blockquote>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/concepts-topic-compaction"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/concepts-schema-registry"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/zh-CN/2.1.0-incubating/concepts-topic-compaction.html b/content/docs/zh-CN/2.1.0-incubating/concepts-topic-compaction.html
index d3e3778..08d5cf5 100644
--- a/content/docs/zh-CN/2.1.0-incubating/concepts-topic-compaction.html
+++ b/content/docs/zh-CN/2.1.0-incubating/concepts-topic-compaction.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>消息压缩 · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar was built with highly scalable [persistent storage](/docs/zh-CN/2.1.0-incubating/concepts-architecture-overview#persistent-storage) of message data as a primary objective. Pulsar topics enable you to pe [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>消息压缩 · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar是带着消息数据高可扩展的[持久存储](/docs/zh-CN/2.1.0-incubating/concepts-architecture-overview#persistent-storage)为主要目标去构建的。 Pulsar的topic让你可以持久存储你所需要的这么多未被确认的消息,同时保留了消息的顺序。 默认的,Pulsar存储生产到主题上*所有*未被确认/未被处理的消息。 在很多Pulsar的 [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -45,34 +45,34 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">消息压缩</h1></header><article><div><span><p>Pulsar was built with highly scalable <a href="/docs/zh-CN/2.1.0-incubating/concepts-architecture-overview#persistent-storage">pers [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">消息压缩</h1></header><article><div><span><p>Pulsar是带着消息数据高可扩展的<a href="/docs/zh-CN/2.1.0-incubating/concepts-architecture-overview#persistent-storage">持久存储</a>为主要目标去构建的。 Pulsa [...]
 <blockquote>
-<p>For a more practical guide to topic compaction, see the <a href="/docs/zh-CN/2.1.0-incubating/cookbooks-compaction">Topic compaction cookbook</a>.</p>
+<p>更多topic压缩实践的指南,请参考 <a href="/docs/zh-CN/2.1.0-incubating/cookbooks-compaction">Topic compaction cookbook</a></p>
 </blockquote>
-<p>For some use cases consumers don't need a complete &quot;image&quot; of the topic log. They may only need a few values to construct a more &quot;shallow&quot; image of the log, perhaps even just the most recent value. For these kinds of use cases Pulsar offers <strong>topic compaction</strong>. When you run compaction on a topic, Pulsar goes through a topic's backlog and removes messages that are <em>obscured</em> by later messages, i.e. it goes through the topic on a per-key basis an [...]
-<p>Pulsar's topic compaction feature:</p>
+<p>某些情况下,consumer并不需要完整的topic日志。 他们可能只需要几个值来构造一个更 &quot;浅&quot; 的日志图像, 也许仅仅只是最近的值。 对于这种应用场景,Pulsar提供了 <strong>topic压缩</strong>. 当你在topic上执行压缩,Pulsar会遍历topic的backlog然后把遥远<em>模糊</em>已经有了更新的消息移除。例如,它遍历一个以key为基础的topic,只留下关联到key上最新的消息。</p>
+<p>Pulsar的topic压缩特性:</p>
 <ul>
-<li>Allows for faster &quot;rewind&quot; through topic logs</li>
-<li>Applies only to <a href="/docs/zh-CN/2.1.0-incubating/concepts-architecture-overview#persistent-storage">persistent topics</a></li>
-<li>Triggered automatically when the backlog reaches a certain size or can be triggered manually via the command line. See the <a href="/docs/zh-CN/2.1.0-incubating/cookbooks-compaction">Topic compaction cookbook</a></li>
-<li>Is conceptually and operationally distinct from <a href="/docs/zh-CN/2.1.0-incubating/concepts-messaging#message-retention-and-expiry">retention and expiry</a>. Topic compaction <em>does</em>, however, respect retention. If retention has removed a message from the message backlog of a topic, the message will also not be readable from the compacted topic ledger.</li>
+<li>允许通过主题日志更快地 &quot;后退&quot;</li>
+<li>仅适用于 <a href="/docs/zh-CN/2.1.0-incubating/concepts-architecture-overview#persistent-storage">持久性topic</a></li>
+<li>当backlog达到一定大小时,可以被自动出发,或者通过命令行手动出发。请参见<a href="/docs/zh-CN/2.1.0-incubating/cookbooks-compaction">Topic compaction cookbook</a></li>
+<li>在概念上和操作上与<a href="/docs/zh-CN/2.1.0-incubating/concepts-messaging#message-retention-and-expiry"> retention和expiry </a>是不同的。 但是,在topic压缩中,还是<em>会</em>尊重retention。 如果retention已经从topic的backlog中移除了消息,那么此条消息在压缩的topic账簿上也是无法被读取的。</li>
 </ul>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="topic-compaction-example-the-stock-ticker"></a><a href="#topic-compaction-example-the-stock-ticker" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1  [...]
-<p>An example use case for a compacted Pulsar topic would be a stock ticker topic. On a stock ticker topic, each message bears a timestamped dollar value for stocks for purchase (with the message key holding the stock symbol, e.g. <code>AAPL</code> or <code>GOOG</code>). With a stock ticker you may care only about the most recent value(s) of the stock and have no interest in historical data (i.e. you don't need to construct a complete image of the topic's sequence of messages per key). C [...]
+<h4><a class="anchor" aria-hidden="true" id="topic压缩示例-股票报价机"></a><a href="#topic压缩示例-股票报价机" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
+<p>Pulsar topic压缩的一个使用例子,可以看一下股票报价机topic。 在股票报价机topic中,每条消息都有带有时间戳的股票买入价格(包含代表股票符号的消息key,例如<code>AAPL</code>或者<code>GOOG</code>)。 可能你感兴趣的只是股票报价机中最新的股票价格,而对历史数据并不感兴趣(即你不需要构建topic每个key下消息序列的完整图像)。 压缩在这种场景下非常的方便,因为它使得用户不需回退到模糊的消息上。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="how-topic-compaction-works"></a><a href="#how-topic-compaction-works" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H [...]
-<p>When topic compaction is triggered <a href="/docs/zh-CN/2.1.0-incubating/cookbooks-compaction">via the CLI</a>, Pulsar will iterate over the entire topic from beginning to end. For each key that it encounters the compaction routine will keep a record of the latest occurrence of that key.</p>
-<p>After that, the broker will create a new <a href="/docs/zh-CN/2.1.0-incubating/concepts-architecture-overview#ledgers">BookKeeper ledger</a> and make a second iteration through each message on the topic. For each message, if the key matches the latest occurrence of that key, then the key's data payload, message ID, and metadata will be written to the newly created ledger. If the key doesn't match the latest then the message will be skipped and left alone. If any given message has an e [...]
-<p>After the initial compaction operation, the Pulsar <a href="/docs/zh-CN/2.1.0-incubating/reference-terminology#broker">broker</a> that owns the topic is notified whenever any future changes are made to the compaction horizon and compacted backlog. When such changes occur:</p>
+<h2><a class="anchor" aria-hidden="true" id="topic压缩的工作原理"></a><a href="#topic压缩的工作原理" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
+<p>当<a href="/docs/zh-CN/2.1.0-incubating/cookbooks-compaction">通过命令行</a>触发topic压缩,Pulsar将会从头到尾迭代整个topic。 对于它碰到的每个key,压缩程序将会只保留这个key最近的事件。</p>
+<p>之后,broker将会创建一个新的<a href="/docs/zh-CN/2.1.0-incubating/concepts-architecture-overview#ledgers">BookKeeper ledger</a> 然后开始对topic的每条消息进行第二次迭代。 对于每条消息,如果key匹配到它的最新事件,key的数据内容,消息ID,元数据将会被写入最新创建的ledger。 如果key并没有匹配到最新的消息,消息将被跳过。 如果给定的消息,负载是空的,它将被跳过并且视为删除(类似key-value数据库中的 <a href="https://en.wikipedia.org/wiki/Tombstone_(data_store)">tombstones</a>概念); 在本topic第二次迭代结束时,新创建的BookKeeper ledger将被关闭,并将两个内容写入元数据 :BookKeeper ledger的ID及最新被压缩的消息的ID(这被称为topic的<strong>压缩层位</strong>)。 写入元数据后,压缩就完成了。</p>
+<p>初始化压缩操作完成后,将来任何对压缩层位及压缩backlog的修改,都会通知给拥有该topic的Pulsar <a href="/docs/zh-CN/2.1.0-incubating/reference-terminology#broker">broker</a>。 当下列更改发生时:</p>
 <ul>
-<li>Clients (consumers and readers) that have read compacted enabled will attempt to read messages from a topic and either:
+<li>启用读取压缩功能的客户端(consumer和reader),将会尝试从topic中读取消息,或者:
 <ul>
-<li>Read from the topic like normal (if the message ID is greater than or equal to the compaction horizon) or</li>
-<li>Read beginning at the compaction horizon (if the message ID is lower than the compaction horizon)</li>
+<li>像从正常的主题那样读取(如果消息的ID大于等于压缩层位),或</li>
+<li>从压缩层位的开始读取(如果消息ID小于压缩层位)</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/concepts-authentication"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/concepts-tiered-storage"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#how-topic-compaction-works">How topic compaction works</a>< [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/concepts-authentication"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/concepts-tiered-storage"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#topic压缩的工作原理">Topic压缩的工作原理</a></li></ul></nav></div><footer [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.1.0-incubating/concepts-topic-compaction/index.html b/content/docs/zh-CN/2.1.0-incubating/concepts-topic-compaction/index.html
index d3e3778..08d5cf5 100644
--- a/content/docs/zh-CN/2.1.0-incubating/concepts-topic-compaction/index.html
+++ b/content/docs/zh-CN/2.1.0-incubating/concepts-topic-compaction/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>消息压缩 · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar was built with highly scalable [persistent storage](/docs/zh-CN/2.1.0-incubating/concepts-architecture-overview#persistent-storage) of message data as a primary objective. Pulsar topics enable you to pe [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>消息压缩 · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar是带着消息数据高可扩展的[持久存储](/docs/zh-CN/2.1.0-incubating/concepts-architecture-overview#persistent-storage)为主要目标去构建的。 Pulsar的topic让你可以持久存储你所需要的这么多未被确认的消息,同时保留了消息的顺序。 默认的,Pulsar存储生产到主题上*所有*未被确认/未被处理的消息。 在很多Pulsar的 [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -45,34 +45,34 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">消息压缩</h1></header><article><div><span><p>Pulsar was built with highly scalable <a href="/docs/zh-CN/2.1.0-incubating/concepts-architecture-overview#persistent-storage">pers [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">消息压缩</h1></header><article><div><span><p>Pulsar是带着消息数据高可扩展的<a href="/docs/zh-CN/2.1.0-incubating/concepts-architecture-overview#persistent-storage">持久存储</a>为主要目标去构建的。 Pulsa [...]
 <blockquote>
-<p>For a more practical guide to topic compaction, see the <a href="/docs/zh-CN/2.1.0-incubating/cookbooks-compaction">Topic compaction cookbook</a>.</p>
+<p>更多topic压缩实践的指南,请参考 <a href="/docs/zh-CN/2.1.0-incubating/cookbooks-compaction">Topic compaction cookbook</a></p>
 </blockquote>
-<p>For some use cases consumers don't need a complete &quot;image&quot; of the topic log. They may only need a few values to construct a more &quot;shallow&quot; image of the log, perhaps even just the most recent value. For these kinds of use cases Pulsar offers <strong>topic compaction</strong>. When you run compaction on a topic, Pulsar goes through a topic's backlog and removes messages that are <em>obscured</em> by later messages, i.e. it goes through the topic on a per-key basis an [...]
-<p>Pulsar's topic compaction feature:</p>
+<p>某些情况下,consumer并不需要完整的topic日志。 他们可能只需要几个值来构造一个更 &quot;浅&quot; 的日志图像, 也许仅仅只是最近的值。 对于这种应用场景,Pulsar提供了 <strong>topic压缩</strong>. 当你在topic上执行压缩,Pulsar会遍历topic的backlog然后把遥远<em>模糊</em>已经有了更新的消息移除。例如,它遍历一个以key为基础的topic,只留下关联到key上最新的消息。</p>
+<p>Pulsar的topic压缩特性:</p>
 <ul>
-<li>Allows for faster &quot;rewind&quot; through topic logs</li>
-<li>Applies only to <a href="/docs/zh-CN/2.1.0-incubating/concepts-architecture-overview#persistent-storage">persistent topics</a></li>
-<li>Triggered automatically when the backlog reaches a certain size or can be triggered manually via the command line. See the <a href="/docs/zh-CN/2.1.0-incubating/cookbooks-compaction">Topic compaction cookbook</a></li>
-<li>Is conceptually and operationally distinct from <a href="/docs/zh-CN/2.1.0-incubating/concepts-messaging#message-retention-and-expiry">retention and expiry</a>. Topic compaction <em>does</em>, however, respect retention. If retention has removed a message from the message backlog of a topic, the message will also not be readable from the compacted topic ledger.</li>
+<li>允许通过主题日志更快地 &quot;后退&quot;</li>
+<li>仅适用于 <a href="/docs/zh-CN/2.1.0-incubating/concepts-architecture-overview#persistent-storage">持久性topic</a></li>
+<li>当backlog达到一定大小时,可以被自动出发,或者通过命令行手动出发。请参见<a href="/docs/zh-CN/2.1.0-incubating/cookbooks-compaction">Topic compaction cookbook</a></li>
+<li>在概念上和操作上与<a href="/docs/zh-CN/2.1.0-incubating/concepts-messaging#message-retention-and-expiry"> retention和expiry </a>是不同的。 但是,在topic压缩中,还是<em>会</em>尊重retention。 如果retention已经从topic的backlog中移除了消息,那么此条消息在压缩的topic账簿上也是无法被读取的。</li>
 </ul>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="topic-compaction-example-the-stock-ticker"></a><a href="#topic-compaction-example-the-stock-ticker" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1  [...]
-<p>An example use case for a compacted Pulsar topic would be a stock ticker topic. On a stock ticker topic, each message bears a timestamped dollar value for stocks for purchase (with the message key holding the stock symbol, e.g. <code>AAPL</code> or <code>GOOG</code>). With a stock ticker you may care only about the most recent value(s) of the stock and have no interest in historical data (i.e. you don't need to construct a complete image of the topic's sequence of messages per key). C [...]
+<h4><a class="anchor" aria-hidden="true" id="topic压缩示例-股票报价机"></a><a href="#topic压缩示例-股票报价机" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
+<p>Pulsar topic压缩的一个使用例子,可以看一下股票报价机topic。 在股票报价机topic中,每条消息都有带有时间戳的股票买入价格(包含代表股票符号的消息key,例如<code>AAPL</code>或者<code>GOOG</code>)。 可能你感兴趣的只是股票报价机中最新的股票价格,而对历史数据并不感兴趣(即你不需要构建topic每个key下消息序列的完整图像)。 压缩在这种场景下非常的方便,因为它使得用户不需回退到模糊的消息上。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="how-topic-compaction-works"></a><a href="#how-topic-compaction-works" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H [...]
-<p>When topic compaction is triggered <a href="/docs/zh-CN/2.1.0-incubating/cookbooks-compaction">via the CLI</a>, Pulsar will iterate over the entire topic from beginning to end. For each key that it encounters the compaction routine will keep a record of the latest occurrence of that key.</p>
-<p>After that, the broker will create a new <a href="/docs/zh-CN/2.1.0-incubating/concepts-architecture-overview#ledgers">BookKeeper ledger</a> and make a second iteration through each message on the topic. For each message, if the key matches the latest occurrence of that key, then the key's data payload, message ID, and metadata will be written to the newly created ledger. If the key doesn't match the latest then the message will be skipped and left alone. If any given message has an e [...]
-<p>After the initial compaction operation, the Pulsar <a href="/docs/zh-CN/2.1.0-incubating/reference-terminology#broker">broker</a> that owns the topic is notified whenever any future changes are made to the compaction horizon and compacted backlog. When such changes occur:</p>
+<h2><a class="anchor" aria-hidden="true" id="topic压缩的工作原理"></a><a href="#topic压缩的工作原理" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
+<p>当<a href="/docs/zh-CN/2.1.0-incubating/cookbooks-compaction">通过命令行</a>触发topic压缩,Pulsar将会从头到尾迭代整个topic。 对于它碰到的每个key,压缩程序将会只保留这个key最近的事件。</p>
+<p>之后,broker将会创建一个新的<a href="/docs/zh-CN/2.1.0-incubating/concepts-architecture-overview#ledgers">BookKeeper ledger</a> 然后开始对topic的每条消息进行第二次迭代。 对于每条消息,如果key匹配到它的最新事件,key的数据内容,消息ID,元数据将会被写入最新创建的ledger。 如果key并没有匹配到最新的消息,消息将被跳过。 如果给定的消息,负载是空的,它将被跳过并且视为删除(类似key-value数据库中的 <a href="https://en.wikipedia.org/wiki/Tombstone_(data_store)">tombstones</a>概念); 在本topic第二次迭代结束时,新创建的BookKeeper ledger将被关闭,并将两个内容写入元数据 :BookKeeper ledger的ID及最新被压缩的消息的ID(这被称为topic的<strong>压缩层位</strong>)。 写入元数据后,压缩就完成了。</p>
+<p>初始化压缩操作完成后,将来任何对压缩层位及压缩backlog的修改,都会通知给拥有该topic的Pulsar <a href="/docs/zh-CN/2.1.0-incubating/reference-terminology#broker">broker</a>。 当下列更改发生时:</p>
 <ul>
-<li>Clients (consumers and readers) that have read compacted enabled will attempt to read messages from a topic and either:
+<li>启用读取压缩功能的客户端(consumer和reader),将会尝试从topic中读取消息,或者:
 <ul>
-<li>Read from the topic like normal (if the message ID is greater than or equal to the compaction horizon) or</li>
-<li>Read beginning at the compaction horizon (if the message ID is lower than the compaction horizon)</li>
+<li>像从正常的主题那样读取(如果消息的ID大于等于压缩层位),或</li>
+<li>从压缩层位的开始读取(如果消息ID小于压缩层位)</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/concepts-authentication"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/concepts-tiered-storage"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#how-topic-compaction-works">How topic compaction works</a>< [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/concepts-authentication"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/concepts-tiered-storage"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#topic压缩的工作原理">Topic压缩的工作原理</a></li></ul></nav></div><footer [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.1.0-incubating/deploy-bare-metal-multi-cluster.html b/content/docs/zh-CN/2.1.0-incubating/deploy-bare-metal-multi-cluster.html
index 08551e8..ad47f20 100644
--- a/content/docs/zh-CN/2.1.0-incubating/deploy-bare-metal-multi-cluster.html
+++ b/content/docs/zh-CN/2.1.0-incubating/deploy-bare-metal-multi-cluster.html
@@ -194,11 +194,11 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.2.0
 </code></pre>
 <p>As you can see from the example above, the following needs to be specified:</p>
 <ul>
-<li>The name of the cluster</li>
-<li>The local ZooKeeper connection string for the cluster</li>
+<li>集群的名称</li>
+<li>集群对本地zookeeper的连接串</li>
 <li>The configuration store connection string for the entire instance</li>
-<li>The web service URL for the cluster</li>
-<li>A broker service URL enabling interaction with the <a href="/docs/zh-CN/2.1.0-incubating/reference-terminology#broker">brokers</a> in the cluster</li>
+<li>集群的web服务URL</li>
+<li>Broker服务的URL,来开启和集群中<a href="/docs/zh-CN/2.1.0-incubating/reference-terminology#broker">broker</a>的交互</li>
 </ul>
 <p>If you're using <a href="/docs/zh-CN/2.1.0-incubating/security-tls-transport">TLS</a>, you'll also need to specify a TLS web service URL for the cluster as well as a TLS broker service URL for the brokers in the cluster.</p>
 <p>Make sure to run <code>initialize-cluster-metadata</code> for each cluster in your instance.</p>
diff --git a/content/docs/zh-CN/2.1.0-incubating/deploy-bare-metal-multi-cluster/index.html b/content/docs/zh-CN/2.1.0-incubating/deploy-bare-metal-multi-cluster/index.html
index 08551e8..ad47f20 100644
--- a/content/docs/zh-CN/2.1.0-incubating/deploy-bare-metal-multi-cluster/index.html
+++ b/content/docs/zh-CN/2.1.0-incubating/deploy-bare-metal-multi-cluster/index.html
@@ -194,11 +194,11 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.2.0
 </code></pre>
 <p>As you can see from the example above, the following needs to be specified:</p>
 <ul>
-<li>The name of the cluster</li>
-<li>The local ZooKeeper connection string for the cluster</li>
+<li>集群的名称</li>
+<li>集群对本地zookeeper的连接串</li>
 <li>The configuration store connection string for the entire instance</li>
-<li>The web service URL for the cluster</li>
-<li>A broker service URL enabling interaction with the <a href="/docs/zh-CN/2.1.0-incubating/reference-terminology#broker">brokers</a> in the cluster</li>
+<li>集群的web服务URL</li>
+<li>Broker服务的URL,来开启和集群中<a href="/docs/zh-CN/2.1.0-incubating/reference-terminology#broker">broker</a>的交互</li>
 </ul>
 <p>If you're using <a href="/docs/zh-CN/2.1.0-incubating/security-tls-transport">TLS</a>, you'll also need to specify a TLS web service URL for the cluster as well as a TLS broker service URL for the brokers in the cluster.</p>
 <p>Make sure to run <code>initialize-cluster-metadata</code> for each cluster in your instance.</p>
diff --git a/content/docs/zh-CN/2.1.0-incubating/deploy-kubernetes.html b/content/docs/zh-CN/2.1.0-incubating/deploy-kubernetes.html
index 2616c10..66f96bd 100644
--- a/content/docs/zh-CN/2.1.0-incubating/deploy-kubernetes.html
+++ b/content/docs/zh-CN/2.1.0-incubating/deploy-kubernetes.html
@@ -170,7 +170,7 @@ zk-1      1/1       Running            0          17m
 zk-2      0/1       Running            6          15m
 </code></pre>
 <p>This step may take several minutes, as Kubernetes needs to download the Docker image on the VMs.</p>
-<h3><a class="anchor" aria-hidden="true" id="initialize-cluster-metadata"></a><a href="#initialize-cluster-metadata" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 1 [...]
+<h3><a class="anchor" aria-hidden="true" id="初始化集群元数据"></a><a href="#初始化集群元数据" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
 <p>Once ZooKeeper is running, you need to <a href="#cluster-metadata-initialization">initialize the metadata</a> for the Pulsar cluster in ZooKeeper. This includes system metadata for <a href="/docs/zh-CN/2.1.0-incubating/reference-terminology#bookkeeper">BookKeeper</a> and Pulsar more broadly. There is a Kubernetes <a href="https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/">job</a> in the <code>cluster-metadata.yaml</code> file that you only need to run o [...]
 <pre><code class="hljs css language-bash">$ kubectl apply -f cluster-metadata.yaml
 </code></pre>
@@ -300,7 +300,7 @@ helm install --values pulsar/values-mini.yaml ./pulsar</p></li>
 <li>Web service url: <code>http://$(minikube ip):30001/</code></li>
 <li>Pulsar service url: <code>pulsar://$(minikube ip):30002/</code></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/deploy-aws"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/deploy-bare-metal"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#setup">Setup</a></li><li><a href="#pulsar-on-google-kubernetes-engine">Pulsar  [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/deploy-aws"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/deploy-bare-metal"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#setup">Setup</a></li><li><a href="#pulsar-on-google-kubernetes-engine">Pulsar  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.1.0-incubating/deploy-kubernetes/index.html b/content/docs/zh-CN/2.1.0-incubating/deploy-kubernetes/index.html
index 2616c10..66f96bd 100644
--- a/content/docs/zh-CN/2.1.0-incubating/deploy-kubernetes/index.html
+++ b/content/docs/zh-CN/2.1.0-incubating/deploy-kubernetes/index.html
@@ -170,7 +170,7 @@ zk-1      1/1       Running            0          17m
 zk-2      0/1       Running            6          15m
 </code></pre>
 <p>This step may take several minutes, as Kubernetes needs to download the Docker image on the VMs.</p>
-<h3><a class="anchor" aria-hidden="true" id="initialize-cluster-metadata"></a><a href="#initialize-cluster-metadata" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 1 [...]
+<h3><a class="anchor" aria-hidden="true" id="初始化集群元数据"></a><a href="#初始化集群元数据" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
 <p>Once ZooKeeper is running, you need to <a href="#cluster-metadata-initialization">initialize the metadata</a> for the Pulsar cluster in ZooKeeper. This includes system metadata for <a href="/docs/zh-CN/2.1.0-incubating/reference-terminology#bookkeeper">BookKeeper</a> and Pulsar more broadly. There is a Kubernetes <a href="https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/">job</a> in the <code>cluster-metadata.yaml</code> file that you only need to run o [...]
 <pre><code class="hljs css language-bash">$ kubectl apply -f cluster-metadata.yaml
 </code></pre>
@@ -300,7 +300,7 @@ helm install --values pulsar/values-mini.yaml ./pulsar</p></li>
 <li>Web service url: <code>http://$(minikube ip):30001/</code></li>
 <li>Pulsar service url: <code>pulsar://$(minikube ip):30002/</code></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/deploy-aws"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/deploy-bare-metal"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#setup">Setup</a></li><li><a href="#pulsar-on-google-kubernetes-engine">Pulsar  [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/deploy-aws"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/deploy-bare-metal"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#setup">Setup</a></li><li><a href="#pulsar-on-google-kubernetes-engine">Pulsar  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.1.1-incubating/admin-api-clusters.html b/content/docs/zh-CN/2.1.1-incubating/admin-api-clusters.html
index f7e341b..b218a09 100644
--- a/content/docs/zh-CN/2.1.1-incubating/admin-api-clusters.html
+++ b/content/docs/zh-CN/2.1.1-incubating/admin-api-clusters.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Clusters · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar clusters consist of one or more Pulsar [brokers](/docs/zh-CN/2.1.1-incubating/reference-terminology#broker), one or more [BookKeeper](/docs/zh-CN/2.1.1-incubating/reference-terminology#book [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Clusters · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar集群的构成有,一个或多个pulsar[broker](/docs/zh-CN/2.1.1-incubating/reference-terminology#broker),一个或多个 [BookKeeper](/docs/zh-CN/2.1.1-incubating/reference-terminology#bookkeeper)服务器 也称为 [bookie](/docs/ [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -45,23 +45,23 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Managing Clusters</h1></header><article><div><span><p>Pulsar clusters consist of one or more Pulsar <a href="/docs/zh-CN/2.1.1-incubating/reference-terminology#broker">brok [...]
-<p>Clusters can be managed via:</p>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Managing Clusters</h1></header><article><div><span><p>Pulsar集群的构成有,一个或多个pulsar<a href="/docs/zh-CN/2.1.1-incubating/reference-terminology#broker">broker</a>,一个或多个 <a href=" [...]
+<p>集群可以通过如下几种方式管理:</p>
 <ul>
-<li>The <a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin#clusters"><code>clusters</code></a> command of the <a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin"><code>pulsar-admin</code></a> tool</li>
-<li>The <code>/admin/v2/clusters</code> endpoint of the admin <a href="https://pulsar.incubator.apache.org/en/admin-rest-api#/">REST</a>
+<li><a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin"><code>pulsar-admin</code></a>工具的<a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin#clusters"><code>clusters</code></a>命令</li>
+<li><code>/admin/v2/clusters</code> admin的endpoint <a href="https://pulsar.incubator.apache.org/en/admin-rest-api#/">REST</a>
  API</li>
-<li>The <code>clusters</code> method of the <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdmin">PulsarAdmin</a>
- object in the <a href="/docs/zh-CN/2.1.1-incubating/client-libraries-java">Java API</a></li>
+<li><a href="/docs/zh-CN/2.1.1-incubating/client-libraries-java">Java API</a>中<a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdmin">PulsarAdmin</a>
+ 对象的 <code>clusters</code>方法</li>
 </ul>
-<h2><a class="anchor" aria-hidden="true" id="clusters-resources"></a><a href="#clusters-resources" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
-<h3><a class="anchor" aria-hidden="true" id="provision"></a><a href="#provision" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<p>New clusters can be provisioned using the admin interface.</p>
+<h2><a class="anchor" aria-hidden="true" id="集群资源"></a><a href="#集群资源" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<h3><a class="anchor" aria-hidden="true" id="提供"></a><a href="#提供" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>新的集群可以通过admin接口提供。</p>
 <blockquote>
-<p>Please note that this operation requires superuser privileges.</p>
+<p>请注意这个操作需要超级用户权限</p>
 </blockquote>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>You can provision a new cluster using the <a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin#clusters-create"><code>create</code></a> subcommand. Here's an example:</p>
+<p>你可以使用<a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin#clusters-create"><code>create</code></a>子命令设置新的集群。下面是一个示例:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin clusters create cluster-1 \</span>
   --url http://my-cluster.org.com:8080 \
   --broker-url pulsar://my-cluster.org.com:6650
@@ -78,21 +78,21 @@
 );
 admin.clusters().createCluster(clusterName, clusterData);
 </code></pre>
-<h3><a class="anchor" aria-hidden="true" id="initialize-cluster-metadata"></a><a href="#initialize-cluster-metadata" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 1 [...]
-<p>When provision a new cluster, you need to initialize that cluster's <a href="/docs/zh-CN/2.1.1-incubating/concepts-architecture-overview#metadata-store">metadata</a>. When initializing cluster metadata, you need to specify all of the following:</p>
+<h3><a class="anchor" aria-hidden="true" id="初始化集群元数据"></a><a href="#初始化集群元数据" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
+<p>当准备新的集群,你需要初始化集群的<a href="/docs/zh-CN/2.1.1-incubating/concepts-architecture-overview#metadata-store">元数据</a> 当初始化集群元数据,你需要指定下面这些项:</p>
 <ul>
-<li>The name of the cluster</li>
-<li>The local ZooKeeper connection string for the cluster</li>
-<li>The global ZooKeeper connection string for the entire instance</li>
-<li>The web service URL for the cluster</li>
-<li>A broker service URL enabling interaction with the <a href="/docs/zh-CN/2.1.1-incubating/reference-terminology#broker">brokers</a> in the cluster</li>
+<li>集群的名称</li>
+<li>集群对本地zookeeper的连接串</li>
+<li>整个实例全局的ZooKeeper连接串</li>
+<li>集群的web服务URL</li>
+<li>Broker服务的URL,来开启和集群中<a href="/docs/zh-CN/2.1.1-incubating/reference-terminology#broker">broker</a>的交互</li>
 </ul>
-<p>You must initialize cluster metadata <em>before</em> starting up any <a href="/docs/zh-CN/2.1.1-incubating/admin-api-brokers">brokers</a> that will belong to the cluster.</p>
+<p>在你启动集群中任意一个<a href="/docs/zh-CN/2.1.1-incubating/admin-api-brokers">broker</a><em>前</em>,你必须要初始化集群元数据。</p>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="no-cluster-metadata-initialization-through-the-rest-api-or-the-java-admin-api"></a><a href="#no-cluster-metadata-initialization-through-the-rest-api-or-the-java-admin-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.2 [...]
-<p>Unlike most other admin functions in Pulsar, cluster metadata initialization cannot be performed via the admin REST API or the admin Java client, as metadata initialization involves communicating with ZooKeeper directly. Instead, you can use the <a href="/docs/zh-CN/2.1.1-incubating/reference-cli-tools#pulsar"><code>pulsar</code></a> CLI tool, in particular the <a href="/docs/zh-CN/2.1.1-incubating/reference-cli-tools#pulsar-initialize-cluster-metadata"><code>initialize-cluster-metada [...]
+<h4><a class="anchor" aria-hidden="true" id="通过rest-api或者java-admin-api-并不能集群原数据初始化"></a><a href="#通过rest-api或者java-admin-api-并不能集群原数据初始化" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1. [...]
+<p>和Pulsar其他的admin功能不一样,集群元数据初始化不能通过admin REST API执行。 但是你可以使用 <a href="/docs/zh-CN/2.1.1-incubating/reference-cli-tools#pulsar"><code>pulsar</code></a> CLI工具,执行指定的<a href="/docs/zh-CN/2.1.1-incubating/reference-cli-tools#pulsar-initialize-cluster-metadata"><code>initialize-cluster-metadata</code></a>命令</p>
 </blockquote>
-<p>Here's an example cluster metadata initialization command:</p>
+<p>下面是集群元数据初始化命令的例子:</p>
 <pre><code class="hljs css language-shell">bin/pulsar initialize-cluster-metadata \
   --cluster us-west \
   --zookeeper zk1.us-west.example.com:2181 \
@@ -102,7 +102,7 @@ admin.clusters().createCluster(clusterName, clusterData);
   --broker-service-url pulsar://pulsar.us-west.example.com:6650/ \
   --broker-service-url-tls pulsar+ssl://pulsar.us-west.example.com:6651/
 </code></pre>
-<p>You'll need to use <code>--*-tls</code> flags only if you're using <a href="/docs/zh-CN/2.1.1-incubating/security-tls-authentication">TLS authentication</a> in your instance.</p>
+<p>你需要仅使用<code>--*-tls</code>标记,如果你正在你的实例中使用 <a href="/docs/zh-CN/2.1.1-incubating/security-tls-authentication">TLS authentication</a>。</p>
 <h3><a class="anchor" aria-hidden="true" id="get-configuration"></a><a href="#get-configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
 <p>You can fetch the <a href="/docs/zh-CN/2.1.1-incubating/reference-configuration">configuration</a> for an existing cluster at any time.</p>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-1"></a><a href="#pulsar-admin-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
@@ -180,7 +180,7 @@ cluster-2
 <h4><a class="anchor" aria-hidden="true" id="java-5"></a><a href="#java-5" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.clusters().updatePeerClusterNames(clusterName, peerClusterList);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/admin-api-overview"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/admin-api-tenants"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#clusters-resources">Clusters resources</a><ul class="toc-headings"><li [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/admin-api-overview"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/admin-api-tenants"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#集群资源">集群资源</a><ul class="toc-headings"><li><a href="#提供">提供</a></li><l [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.1.1-incubating/admin-api-clusters/index.html b/content/docs/zh-CN/2.1.1-incubating/admin-api-clusters/index.html
index f7e341b..b218a09 100644
--- a/content/docs/zh-CN/2.1.1-incubating/admin-api-clusters/index.html
+++ b/content/docs/zh-CN/2.1.1-incubating/admin-api-clusters/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Clusters · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar clusters consist of one or more Pulsar [brokers](/docs/zh-CN/2.1.1-incubating/reference-terminology#broker), one or more [BookKeeper](/docs/zh-CN/2.1.1-incubating/reference-terminology#book [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Clusters · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar集群的构成有,一个或多个pulsar[broker](/docs/zh-CN/2.1.1-incubating/reference-terminology#broker),一个或多个 [BookKeeper](/docs/zh-CN/2.1.1-incubating/reference-terminology#bookkeeper)服务器 也称为 [bookie](/docs/ [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -45,23 +45,23 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Managing Clusters</h1></header><article><div><span><p>Pulsar clusters consist of one or more Pulsar <a href="/docs/zh-CN/2.1.1-incubating/reference-terminology#broker">brok [...]
-<p>Clusters can be managed via:</p>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Managing Clusters</h1></header><article><div><span><p>Pulsar集群的构成有,一个或多个pulsar<a href="/docs/zh-CN/2.1.1-incubating/reference-terminology#broker">broker</a>,一个或多个 <a href=" [...]
+<p>集群可以通过如下几种方式管理:</p>
 <ul>
-<li>The <a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin#clusters"><code>clusters</code></a> command of the <a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin"><code>pulsar-admin</code></a> tool</li>
-<li>The <code>/admin/v2/clusters</code> endpoint of the admin <a href="https://pulsar.incubator.apache.org/en/admin-rest-api#/">REST</a>
+<li><a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin"><code>pulsar-admin</code></a>工具的<a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin#clusters"><code>clusters</code></a>命令</li>
+<li><code>/admin/v2/clusters</code> admin的endpoint <a href="https://pulsar.incubator.apache.org/en/admin-rest-api#/">REST</a>
  API</li>
-<li>The <code>clusters</code> method of the <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdmin">PulsarAdmin</a>
- object in the <a href="/docs/zh-CN/2.1.1-incubating/client-libraries-java">Java API</a></li>
+<li><a href="/docs/zh-CN/2.1.1-incubating/client-libraries-java">Java API</a>中<a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdmin">PulsarAdmin</a>
+ 对象的 <code>clusters</code>方法</li>
 </ul>
-<h2><a class="anchor" aria-hidden="true" id="clusters-resources"></a><a href="#clusters-resources" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
-<h3><a class="anchor" aria-hidden="true" id="provision"></a><a href="#provision" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<p>New clusters can be provisioned using the admin interface.</p>
+<h2><a class="anchor" aria-hidden="true" id="集群资源"></a><a href="#集群资源" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<h3><a class="anchor" aria-hidden="true" id="提供"></a><a href="#提供" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>新的集群可以通过admin接口提供。</p>
 <blockquote>
-<p>Please note that this operation requires superuser privileges.</p>
+<p>请注意这个操作需要超级用户权限</p>
 </blockquote>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>You can provision a new cluster using the <a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin#clusters-create"><code>create</code></a> subcommand. Here's an example:</p>
+<p>你可以使用<a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin#clusters-create"><code>create</code></a>子命令设置新的集群。下面是一个示例:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin clusters create cluster-1 \</span>
   --url http://my-cluster.org.com:8080 \
   --broker-url pulsar://my-cluster.org.com:6650
@@ -78,21 +78,21 @@
 );
 admin.clusters().createCluster(clusterName, clusterData);
 </code></pre>
-<h3><a class="anchor" aria-hidden="true" id="initialize-cluster-metadata"></a><a href="#initialize-cluster-metadata" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 1 [...]
-<p>When provision a new cluster, you need to initialize that cluster's <a href="/docs/zh-CN/2.1.1-incubating/concepts-architecture-overview#metadata-store">metadata</a>. When initializing cluster metadata, you need to specify all of the following:</p>
+<h3><a class="anchor" aria-hidden="true" id="初始化集群元数据"></a><a href="#初始化集群元数据" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
+<p>当准备新的集群,你需要初始化集群的<a href="/docs/zh-CN/2.1.1-incubating/concepts-architecture-overview#metadata-store">元数据</a> 当初始化集群元数据,你需要指定下面这些项:</p>
 <ul>
-<li>The name of the cluster</li>
-<li>The local ZooKeeper connection string for the cluster</li>
-<li>The global ZooKeeper connection string for the entire instance</li>
-<li>The web service URL for the cluster</li>
-<li>A broker service URL enabling interaction with the <a href="/docs/zh-CN/2.1.1-incubating/reference-terminology#broker">brokers</a> in the cluster</li>
+<li>集群的名称</li>
+<li>集群对本地zookeeper的连接串</li>
+<li>整个实例全局的ZooKeeper连接串</li>
+<li>集群的web服务URL</li>
+<li>Broker服务的URL,来开启和集群中<a href="/docs/zh-CN/2.1.1-incubating/reference-terminology#broker">broker</a>的交互</li>
 </ul>
-<p>You must initialize cluster metadata <em>before</em> starting up any <a href="/docs/zh-CN/2.1.1-incubating/admin-api-brokers">brokers</a> that will belong to the cluster.</p>
+<p>在你启动集群中任意一个<a href="/docs/zh-CN/2.1.1-incubating/admin-api-brokers">broker</a><em>前</em>,你必须要初始化集群元数据。</p>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="no-cluster-metadata-initialization-through-the-rest-api-or-the-java-admin-api"></a><a href="#no-cluster-metadata-initialization-through-the-rest-api-or-the-java-admin-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.2 [...]
-<p>Unlike most other admin functions in Pulsar, cluster metadata initialization cannot be performed via the admin REST API or the admin Java client, as metadata initialization involves communicating with ZooKeeper directly. Instead, you can use the <a href="/docs/zh-CN/2.1.1-incubating/reference-cli-tools#pulsar"><code>pulsar</code></a> CLI tool, in particular the <a href="/docs/zh-CN/2.1.1-incubating/reference-cli-tools#pulsar-initialize-cluster-metadata"><code>initialize-cluster-metada [...]
+<h4><a class="anchor" aria-hidden="true" id="通过rest-api或者java-admin-api-并不能集群原数据初始化"></a><a href="#通过rest-api或者java-admin-api-并不能集群原数据初始化" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1. [...]
+<p>和Pulsar其他的admin功能不一样,集群元数据初始化不能通过admin REST API执行。 但是你可以使用 <a href="/docs/zh-CN/2.1.1-incubating/reference-cli-tools#pulsar"><code>pulsar</code></a> CLI工具,执行指定的<a href="/docs/zh-CN/2.1.1-incubating/reference-cli-tools#pulsar-initialize-cluster-metadata"><code>initialize-cluster-metadata</code></a>命令</p>
 </blockquote>
-<p>Here's an example cluster metadata initialization command:</p>
+<p>下面是集群元数据初始化命令的例子:</p>
 <pre><code class="hljs css language-shell">bin/pulsar initialize-cluster-metadata \
   --cluster us-west \
   --zookeeper zk1.us-west.example.com:2181 \
@@ -102,7 +102,7 @@ admin.clusters().createCluster(clusterName, clusterData);
   --broker-service-url pulsar://pulsar.us-west.example.com:6650/ \
   --broker-service-url-tls pulsar+ssl://pulsar.us-west.example.com:6651/
 </code></pre>
-<p>You'll need to use <code>--*-tls</code> flags only if you're using <a href="/docs/zh-CN/2.1.1-incubating/security-tls-authentication">TLS authentication</a> in your instance.</p>
+<p>你需要仅使用<code>--*-tls</code>标记,如果你正在你的实例中使用 <a href="/docs/zh-CN/2.1.1-incubating/security-tls-authentication">TLS authentication</a>。</p>
 <h3><a class="anchor" aria-hidden="true" id="get-configuration"></a><a href="#get-configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
 <p>You can fetch the <a href="/docs/zh-CN/2.1.1-incubating/reference-configuration">configuration</a> for an existing cluster at any time.</p>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-1"></a><a href="#pulsar-admin-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
@@ -180,7 +180,7 @@ cluster-2
 <h4><a class="anchor" aria-hidden="true" id="java-5"></a><a href="#java-5" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.clusters().updatePeerClusterNames(clusterName, peerClusterList);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/admin-api-overview"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/admin-api-tenants"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#clusters-resources">Clusters resources</a><ul class="toc-headings"><li [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/admin-api-overview"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/admin-api-tenants"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#集群资源">集群资源</a><ul class="toc-headings"><li><a href="#提供">提供</a></li><l [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.1.1-incubating/concepts-architecture-overview.html b/content/docs/zh-CN/2.1.1-incubating/concepts-architecture-overview.html
index 063f6ca..8db50bf 100644
--- a/content/docs/zh-CN/2.1.1-incubating/concepts-architecture-overview.html
+++ b/content/docs/zh-CN/2.1.1-incubating/concepts-architecture-overview.html
@@ -67,7 +67,7 @@
 <blockquote>
 <p>For a guide to managing Pulsar brokers, see the <a href="/docs/zh-CN/2.1.1-incubating/admin-api-brokers">brokers</a> guide.</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="clusters"></a><a href="#clusters" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
+<h2><a class="anchor" aria-hidden="true" id="集群"></a><a href="#集群" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <p>A Pulsar instance consists of one or more Pulsar <em>clusters</em>. Clusters, in turn, consist of:</p>
 <ul>
 <li>One or more Pulsar <a href="#brokers">brokers</a></li>
@@ -154,7 +154,7 @@
 
 client = Client(<span class="hljs-string">'pulsar://pulsar-cluster.acme.com:6650'</span>)
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/concepts-messaging"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/concepts-clients"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#brokers">Brokers</a></li><li><a href="#clusters">Clusters</a></li><li>< [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/concepts-messaging"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/concepts-clients"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#brokers">Brokers</a></li><li><a href="#集群">集群</a></li><li><a href="#met [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.1.1-incubating/concepts-architecture-overview/index.html b/content/docs/zh-CN/2.1.1-incubating/concepts-architecture-overview/index.html
index 063f6ca..8db50bf 100644
--- a/content/docs/zh-CN/2.1.1-incubating/concepts-architecture-overview/index.html
+++ b/content/docs/zh-CN/2.1.1-incubating/concepts-architecture-overview/index.html
@@ -67,7 +67,7 @@
 <blockquote>
 <p>For a guide to managing Pulsar brokers, see the <a href="/docs/zh-CN/2.1.1-incubating/admin-api-brokers">brokers</a> guide.</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="clusters"></a><a href="#clusters" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
+<h2><a class="anchor" aria-hidden="true" id="集群"></a><a href="#集群" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <p>A Pulsar instance consists of one or more Pulsar <em>clusters</em>. Clusters, in turn, consist of:</p>
 <ul>
 <li>One or more Pulsar <a href="#brokers">brokers</a></li>
@@ -154,7 +154,7 @@
 
 client = Client(<span class="hljs-string">'pulsar://pulsar-cluster.acme.com:6650'</span>)
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/concepts-messaging"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/concepts-clients"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#brokers">Brokers</a></li><li><a href="#clusters">Clusters</a></li><li>< [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/concepts-messaging"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/concepts-clients"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#brokers">Brokers</a></li><li><a href="#集群">集群</a></li><li><a href="#met [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.1.1-incubating/concepts-authentication.html b/content/docs/zh-CN/2.1.1-incubating/concepts-authentication.html
index c851b34..0884c10 100644
--- a/content/docs/zh-CN/2.1.1-incubating/concepts-authentication.html
+++ b/content/docs/zh-CN/2.1.1-incubating/concepts-authentication.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Authentication and Authorization · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar supports a pluggable [authentication](/docs/zh-CN/2.1.1-incubating/security-overview) mechanism which can be configured at broker and it also supports authorization to identi [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Authentication and Authorization · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar支持可插入的 [认证](/docs/zh-CN/2.1.1-incubating/security-overview)机制,它配置在broker上,并且支持授权,来识别客户端及它能够访问的topic和tenant"/><meta name="docsearch:version" content="2.1.1-incubating"/><meta n [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Authentication and Authorization</h1></header><article><div><span><p>Pulsar supports a pluggable <a href="/docs/zh-CN/2.1.1-incubating/security-overview">authentication</a> [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Authentication and Authorization</h1></header><article><div><span><p>Pulsar支持可插入的 <a href="/docs/zh-CN/2.1.1-incubating/security-overview">认证</a>机制,它配置在broker上,并且支持授权,来识别客户 [...]
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/concepts-multi-tenancy"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/concepts-topic-compaction"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 Th [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/zh-CN/2.1.1-incubating/concepts-authentication/index.html b/content/docs/zh-CN/2.1.1-incubating/concepts-authentication/index.html
index c851b34..0884c10 100644
--- a/content/docs/zh-CN/2.1.1-incubating/concepts-authentication/index.html
+++ b/content/docs/zh-CN/2.1.1-incubating/concepts-authentication/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Authentication and Authorization · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar supports a pluggable [authentication](/docs/zh-CN/2.1.1-incubating/security-overview) mechanism which can be configured at broker and it also supports authorization to identi [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Authentication and Authorization · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar支持可插入的 [认证](/docs/zh-CN/2.1.1-incubating/security-overview)机制,它配置在broker上,并且支持授权,来识别客户端及它能够访问的topic和tenant"/><meta name="docsearch:version" content="2.1.1-incubating"/><meta n [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Authentication and Authorization</h1></header><article><div><span><p>Pulsar supports a pluggable <a href="/docs/zh-CN/2.1.1-incubating/security-overview">authentication</a> [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Authentication and Authorization</h1></header><article><div><span><p>Pulsar支持可插入的 <a href="/docs/zh-CN/2.1.1-incubating/security-overview">认证</a>机制,它配置在broker上,并且支持授权,来识别客户 [...]
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/concepts-multi-tenancy"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/concepts-topic-compaction"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 Th [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/zh-CN/2.1.1-incubating/concepts-overview.html b/content/docs/zh-CN/2.1.1-incubating/concepts-overview.html
index 8fbd956..48c79ca 100644
--- a/content/docs/zh-CN/2.1.1-incubating/concepts-overview.html
+++ b/content/docs/zh-CN/2.1.1-incubating/concepts-overview.html
@@ -65,7 +65,7 @@
 <li><a href="/docs/zh-CN/2.1.1-incubating/concepts-clients">Pulsar客户端</a></li>
 <li><a href="/docs/zh-CN/2.1.1-incubating/concepts-replication">基于地理位置的备份</a></li>
 <li><a href="/docs/zh-CN/2.1.1-incubating/concepts-multi-tenancy">多租户</a></li>
-<li><a href="/docs/zh-CN/2.1.1-incubating/concepts-authentication">Authentication and Authorization</a></li>
+<li><a href="/docs/zh-CN/2.1.1-incubating/concepts-authentication">认证和授权</a></li>
 <li><a href="/docs/zh-CN/2.1.1-incubating/concepts-topic-compaction">消息压缩</a></li>
 <li><a href="/docs/zh-CN/2.1.1-incubating/concepts-tiered-storage">Tiered Storage</a></li>
 <li><a href="/docs/zh-CN/2.1.1-incubating/concepts-schema-registry">Schema管理服务</a></li>
diff --git a/content/docs/zh-CN/2.1.1-incubating/concepts-overview/index.html b/content/docs/zh-CN/2.1.1-incubating/concepts-overview/index.html
index 8fbd956..48c79ca 100644
--- a/content/docs/zh-CN/2.1.1-incubating/concepts-overview/index.html
+++ b/content/docs/zh-CN/2.1.1-incubating/concepts-overview/index.html
@@ -65,7 +65,7 @@
 <li><a href="/docs/zh-CN/2.1.1-incubating/concepts-clients">Pulsar客户端</a></li>
 <li><a href="/docs/zh-CN/2.1.1-incubating/concepts-replication">基于地理位置的备份</a></li>
 <li><a href="/docs/zh-CN/2.1.1-incubating/concepts-multi-tenancy">多租户</a></li>
-<li><a href="/docs/zh-CN/2.1.1-incubating/concepts-authentication">Authentication and Authorization</a></li>
+<li><a href="/docs/zh-CN/2.1.1-incubating/concepts-authentication">认证和授权</a></li>
 <li><a href="/docs/zh-CN/2.1.1-incubating/concepts-topic-compaction">消息压缩</a></li>
 <li><a href="/docs/zh-CN/2.1.1-incubating/concepts-tiered-storage">Tiered Storage</a></li>
 <li><a href="/docs/zh-CN/2.1.1-incubating/concepts-schema-registry">Schema管理服务</a></li>
diff --git a/content/docs/zh-CN/2.1.1-incubating/concepts-tiered-storage.html b/content/docs/zh-CN/2.1.1-incubating/concepts-tiered-storage.html
index 258adfb..d0864b4 100644
--- a/content/docs/zh-CN/2.1.1-incubating/concepts-tiered-storage.html
+++ b/content/docs/zh-CN/2.1.1-incubating/concepts-tiered-storage.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Tiered Storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar&#x27;s segment oriented architecture allows for topic backlogs to grow very large, effectively without limit. However, this can become expensive over time."/><meta name="docsearch:version" con [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Tiered Storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar面向segment的架构允许topic backlong增长的十分庞大,如果有没加以限制,随着时间的增加,代价将越来越高。"/><meta name="docsearch:version" content="2.1.1-incubating"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:ti [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -45,15 +45,15 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Tiered Storage</h1></header><article><div><span><p>Pulsar's segment oriented architecture allows for topic backlogs to grow very large, effectively without limit. However,  [...]
-<p>One way to alleviate this cost is to use Tiered Storage. With tiered storage, older messages in the backlog can be moved from bookkeeper to a cheaper storage mechanism, while still allowing clients to access the backlog as if nothing had changed.</p>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Tiered Storage</h1></header><article><div><span><p>Pulsar面向segment的架构允许topic backlong增长的十分庞大,如果有没加以限制,随着时间的增加,代价将越来越高。</p>
+<p>有一个减轻这个消耗的办法,那就是使用分层存储。 使用分层存储,backlog中旧的消息,将被从booKeeper转移到更低廉的存储机制中,当然还是允许客户端进入backlog,就像什么也没有发生一样。</p>
 <p><img src="/docs/assets/pulsar-tiered-storage.png" alt="Tiered Storage"></p>
 <blockquote>
-<p>Data written to bookkeeper is replicated to 3 physical machines by default. However, once a segment is sealed in bookkeeper is becomes immutable and can be copied to long term storage. Long term storage can achieve cost savings by using mechanisms such as <a href="https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction">Reed-Solomon error correction</a> to require fewer physical copies of data.</p>
+<p>写入bookKeeper的数据被默认复制到3台物理机。 但是,一旦segment在bookKeeper中被封闭,将会变成不可改变,并且可以被拷贝到长期存储中。 长期存储可以达到节省存储的目的,通过使用如 <a href="https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction">Reed-Solomon error correction</a> 的机制,以实现所需更少的数据物理备份。</p>
 </blockquote>
-<p>Pulsar currently supports S3 as a long term store. Offloading to S3 triggered via a Rest API or command line interface. The user passes in the amount of topic data they wish to retain on bookkeeper, and the broker will copy the backlog data to S3. The original data will then be deleted from bookkeeper after a configured delay (4 hours by default).</p>
+<p>Pulsar目前支持S3作为长期存储。 可以通过Rest API或者命令行接口,卸载数据到S3。 用户传入他们想要保留在bookKeeper的topic数据的数量,broker将会拷贝backlog到S3. 原始数据将在配置的延迟之后,从bookKeeper中删除(默认4小时)。</p>
 <blockquote>
-<p>For a guide for setting up tiered storage, see the <a href="/docs/zh-CN/2.1.1-incubating/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
+<p>搭建分层存储的指导,请参考 <a href="/docs/zh-CN/2.1.1-incubating/cookbooks-tiered-storage">Tiered storage cookbook</a>。</p>
 </blockquote>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/concepts-topic-compaction"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/concepts-schema-registry"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/zh-CN/2.1.1-incubating/concepts-tiered-storage/index.html b/content/docs/zh-CN/2.1.1-incubating/concepts-tiered-storage/index.html
index 258adfb..d0864b4 100644
--- a/content/docs/zh-CN/2.1.1-incubating/concepts-tiered-storage/index.html
+++ b/content/docs/zh-CN/2.1.1-incubating/concepts-tiered-storage/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Tiered Storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar&#x27;s segment oriented architecture allows for topic backlogs to grow very large, effectively without limit. However, this can become expensive over time."/><meta name="docsearch:version" con [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Tiered Storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar面向segment的架构允许topic backlong增长的十分庞大,如果有没加以限制,随着时间的增加,代价将越来越高。"/><meta name="docsearch:version" content="2.1.1-incubating"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:ti [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -45,15 +45,15 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Tiered Storage</h1></header><article><div><span><p>Pulsar's segment oriented architecture allows for topic backlogs to grow very large, effectively without limit. However,  [...]
-<p>One way to alleviate this cost is to use Tiered Storage. With tiered storage, older messages in the backlog can be moved from bookkeeper to a cheaper storage mechanism, while still allowing clients to access the backlog as if nothing had changed.</p>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Tiered Storage</h1></header><article><div><span><p>Pulsar面向segment的架构允许topic backlong增长的十分庞大,如果有没加以限制,随着时间的增加,代价将越来越高。</p>
+<p>有一个减轻这个消耗的办法,那就是使用分层存储。 使用分层存储,backlog中旧的消息,将被从booKeeper转移到更低廉的存储机制中,当然还是允许客户端进入backlog,就像什么也没有发生一样。</p>
 <p><img src="/docs/assets/pulsar-tiered-storage.png" alt="Tiered Storage"></p>
 <blockquote>
-<p>Data written to bookkeeper is replicated to 3 physical machines by default. However, once a segment is sealed in bookkeeper is becomes immutable and can be copied to long term storage. Long term storage can achieve cost savings by using mechanisms such as <a href="https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction">Reed-Solomon error correction</a> to require fewer physical copies of data.</p>
+<p>写入bookKeeper的数据被默认复制到3台物理机。 但是,一旦segment在bookKeeper中被封闭,将会变成不可改变,并且可以被拷贝到长期存储中。 长期存储可以达到节省存储的目的,通过使用如 <a href="https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction">Reed-Solomon error correction</a> 的机制,以实现所需更少的数据物理备份。</p>
 </blockquote>
-<p>Pulsar currently supports S3 as a long term store. Offloading to S3 triggered via a Rest API or command line interface. The user passes in the amount of topic data they wish to retain on bookkeeper, and the broker will copy the backlog data to S3. The original data will then be deleted from bookkeeper after a configured delay (4 hours by default).</p>
+<p>Pulsar目前支持S3作为长期存储。 可以通过Rest API或者命令行接口,卸载数据到S3。 用户传入他们想要保留在bookKeeper的topic数据的数量,broker将会拷贝backlog到S3. 原始数据将在配置的延迟之后,从bookKeeper中删除(默认4小时)。</p>
 <blockquote>
-<p>For a guide for setting up tiered storage, see the <a href="/docs/zh-CN/2.1.1-incubating/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
+<p>搭建分层存储的指导,请参考 <a href="/docs/zh-CN/2.1.1-incubating/cookbooks-tiered-storage">Tiered storage cookbook</a>。</p>
 </blockquote>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/concepts-topic-compaction"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/concepts-schema-registry"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/zh-CN/2.1.1-incubating/concepts-topic-compaction.html b/content/docs/zh-CN/2.1.1-incubating/concepts-topic-compaction.html
index bc9780e..d645817 100644
--- a/content/docs/zh-CN/2.1.1-incubating/concepts-topic-compaction.html
+++ b/content/docs/zh-CN/2.1.1-incubating/concepts-topic-compaction.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Topic Compaction · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar was built with highly scalable [persistent storage](/docs/zh-CN/2.1.1-incubating/concepts-architecture-overview#persistent-storage) of message data as a primary objective. Pulsar topics enab [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Topic Compaction · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar是带着消息数据高可扩展的[持久存储](/docs/zh-CN/2.1.1-incubating/concepts-architecture-overview#persistent-storage)为主要目标去构建的。 Pulsar的topic让你可以持久存储你所需要的这么多未被确认的消息,同时保留了消息的顺序。 默认的,Pulsar存储生产到主题上*所有*未被确认/未被处理的消息 [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -45,34 +45,34 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Topic Compaction</h1></header><article><div><span><p>Pulsar was built with highly scalable <a href="/docs/zh-CN/2.1.1-incubating/concepts-architecture-overview#persistent-s [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Topic Compaction</h1></header><article><div><span><p>Pulsar是带着消息数据高可扩展的<a href="/docs/zh-CN/2.1.1-incubating/concepts-architecture-overview#persistent-storage">持久存储</a>为主要目 [...]
 <blockquote>
-<p>For a more practical guide to topic compaction, see the <a href="/docs/zh-CN/2.1.1-incubating/cookbooks-compaction">Topic compaction cookbook</a>.</p>
+<p>更多topic压缩实践的指南,请参考 <a href="/docs/zh-CN/2.1.1-incubating/cookbooks-compaction">Topic compaction cookbook</a></p>
 </blockquote>
-<p>For some use cases consumers don't need a complete &quot;image&quot; of the topic log. They may only need a few values to construct a more &quot;shallow&quot; image of the log, perhaps even just the most recent value. For these kinds of use cases Pulsar offers <strong>topic compaction</strong>. When you run compaction on a topic, Pulsar goes through a topic's backlog and removes messages that are <em>obscured</em> by later messages, i.e. it goes through the topic on a per-key basis an [...]
-<p>Pulsar's topic compaction feature:</p>
+<p>某些情况下,consumer并不需要完整的topic日志。 他们可能只需要几个值来构造一个更 &quot;浅&quot; 的日志图像, 也许仅仅只是最近的值。 对于这种应用场景,Pulsar提供了 <strong>topic压缩</strong>. 当你在topic上执行压缩,Pulsar会遍历topic的backlog然后把遥远<em>模糊</em>已经有了更新的消息移除。例如,它遍历一个以key为基础的topic,只留下关联到key上最新的消息。</p>
+<p>Pulsar的topic压缩特性:</p>
 <ul>
-<li>Allows for faster &quot;rewind&quot; through topic logs</li>
-<li>Applies only to <a href="/docs/zh-CN/2.1.1-incubating/concepts-architecture-overview#persistent-storage">persistent topics</a></li>
-<li>Triggered automatically when the backlog reaches a certain size or can be triggered manually via the command line. See the <a href="/docs/zh-CN/2.1.1-incubating/cookbooks-compaction">Topic compaction cookbook</a></li>
-<li>Is conceptually and operationally distinct from <a href="/docs/zh-CN/2.1.1-incubating/concepts-messaging#message-retention-and-expiry">retention and expiry</a>. Topic compaction <em>does</em>, however, respect retention. If retention has removed a message from the message backlog of a topic, the message will also not be readable from the compacted topic ledger.</li>
+<li>允许通过主题日志更快地 &quot;后退&quot;</li>
+<li>仅适用于 <a href="/docs/zh-CN/2.1.1-incubating/concepts-architecture-overview#persistent-storage">持久性topic</a></li>
+<li>当backlog达到一定大小时,可以被自动出发,或者通过命令行手动出发。请参见<a href="/docs/zh-CN/2.1.1-incubating/cookbooks-compaction">Topic compaction cookbook</a></li>
+<li>在概念上和操作上与<a href="/docs/zh-CN/2.1.1-incubating/concepts-messaging#message-retention-and-expiry"> retention和expiry </a>是不同的。 但是,在topic压缩中,还是<em>会</em>尊重retention。 如果retention已经从topic的backlog中移除了消息,那么此条消息在压缩的topic账簿上也是无法被读取的。</li>
 </ul>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="topic-compaction-example-the-stock-ticker"></a><a href="#topic-compaction-example-the-stock-ticker" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1  [...]
-<p>An example use case for a compacted Pulsar topic would be a stock ticker topic. On a stock ticker topic, each message bears a timestamped dollar value for stocks for purchase (with the message key holding the stock symbol, e.g. <code>AAPL</code> or <code>GOOG</code>). With a stock ticker you may care only about the most recent value(s) of the stock and have no interest in historical data (i.e. you don't need to construct a complete image of the topic's sequence of messages per key). C [...]
+<h4><a class="anchor" aria-hidden="true" id="topic压缩示例-股票报价机"></a><a href="#topic压缩示例-股票报价机" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
+<p>Pulsar topic压缩的一个使用例子,可以看一下股票报价机topic。 在股票报价机topic中,每条消息都有带有时间戳的股票买入价格(包含代表股票符号的消息key,例如<code>AAPL</code>或者<code>GOOG</code>)。 可能你感兴趣的只是股票报价机中最新的股票价格,而对历史数据并不感兴趣(即你不需要构建topic每个key下消息序列的完整图像)。 压缩在这种场景下非常的方便,因为它使得用户不需回退到模糊的消息上。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="how-topic-compaction-works"></a><a href="#how-topic-compaction-works" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H [...]
-<p>When topic compaction is triggered <a href="/docs/zh-CN/2.1.1-incubating/cookbooks-compaction">via the CLI</a>, Pulsar will iterate over the entire topic from beginning to end. For each key that it encounters the compaction routine will keep a record of the latest occurrence of that key.</p>
-<p>After that, the broker will create a new <a href="/docs/zh-CN/2.1.1-incubating/concepts-architecture-overview#ledgers">BookKeeper ledger</a> and make a second iteration through each message on the topic. For each message, if the key matches the latest occurrence of that key, then the key's data payload, message ID, and metadata will be written to the newly created ledger. If the key doesn't match the latest then the message will be skipped and left alone. If any given message has an e [...]
-<p>After the initial compaction operation, the Pulsar <a href="/docs/zh-CN/2.1.1-incubating/reference-terminology#broker">broker</a> that owns the topic is notified whenever any future changes are made to the compaction horizon and compacted backlog. When such changes occur:</p>
+<h2><a class="anchor" aria-hidden="true" id="topic压缩的工作原理"></a><a href="#topic压缩的工作原理" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
+<p>当<a href="/docs/zh-CN/2.1.1-incubating/cookbooks-compaction">通过命令行</a>触发topic压缩,Pulsar将会从头到尾迭代整个topic。 对于它碰到的每个key,压缩程序将会只保留这个key最近的事件。</p>
+<p>之后,broker将会创建一个新的<a href="/docs/zh-CN/2.1.1-incubating/concepts-architecture-overview#ledgers">BookKeeper ledger</a> 然后开始对topic的每条消息进行第二次迭代。 对于每条消息,如果key匹配到它的最新事件,key的数据内容,消息ID,元数据将会被写入最新创建的ledger。 如果key并没有匹配到最新的消息,消息将被跳过。 如果给定的消息,负载是空的,它将被跳过并且视为删除(类似key-value数据库中的 <a href="https://en.wikipedia.org/wiki/Tombstone_(data_store)">tombstones</a>概念); 在本topic第二次迭代结束时,新创建的BookKeeper ledger将被关闭,并将两个内容写入元数据 :BookKeeper ledger的ID及最新被压缩的消息的ID(这被称为topic的<strong>压缩层位</strong>)。 写入元数据后,压缩就完成了。</p>
+<p>初始化压缩操作完成后,将来任何对压缩层位及压缩backlog的修改,都会通知给拥有该topic的Pulsar <a href="/docs/zh-CN/2.1.1-incubating/reference-terminology#broker">broker</a>。 当下列更改发生时:</p>
 <ul>
-<li>Clients (consumers and readers) that have read compacted enabled will attempt to read messages from a topic and either:
+<li>启用读取压缩功能的客户端(consumer和reader),将会尝试从topic中读取消息,或者:
 <ul>
-<li>Read from the topic like normal (if the message ID is greater than or equal to the compaction horizon) or</li>
-<li>Read beginning at the compaction horizon (if the message ID is lower than the compaction horizon)</li>
+<li>像从正常的主题那样读取(如果消息的ID大于等于压缩层位),或</li>
+<li>从压缩层位的开始读取(如果消息ID小于压缩层位)</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/concepts-authentication"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/concepts-tiered-storage"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#how-topic-compaction-works">How topic compaction works</a>< [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/concepts-authentication"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/concepts-tiered-storage"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#topic压缩的工作原理">Topic压缩的工作原理</a></li></ul></nav></div><footer [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.1.1-incubating/concepts-topic-compaction/index.html b/content/docs/zh-CN/2.1.1-incubating/concepts-topic-compaction/index.html
index bc9780e..d645817 100644
--- a/content/docs/zh-CN/2.1.1-incubating/concepts-topic-compaction/index.html
+++ b/content/docs/zh-CN/2.1.1-incubating/concepts-topic-compaction/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Topic Compaction · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar was built with highly scalable [persistent storage](/docs/zh-CN/2.1.1-incubating/concepts-architecture-overview#persistent-storage) of message data as a primary objective. Pulsar topics enab [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Topic Compaction · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar是带着消息数据高可扩展的[持久存储](/docs/zh-CN/2.1.1-incubating/concepts-architecture-overview#persistent-storage)为主要目标去构建的。 Pulsar的topic让你可以持久存储你所需要的这么多未被确认的消息,同时保留了消息的顺序。 默认的,Pulsar存储生产到主题上*所有*未被确认/未被处理的消息 [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -45,34 +45,34 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Topic Compaction</h1></header><article><div><span><p>Pulsar was built with highly scalable <a href="/docs/zh-CN/2.1.1-incubating/concepts-architecture-overview#persistent-s [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Topic Compaction</h1></header><article><div><span><p>Pulsar是带着消息数据高可扩展的<a href="/docs/zh-CN/2.1.1-incubating/concepts-architecture-overview#persistent-storage">持久存储</a>为主要目 [...]
 <blockquote>
-<p>For a more practical guide to topic compaction, see the <a href="/docs/zh-CN/2.1.1-incubating/cookbooks-compaction">Topic compaction cookbook</a>.</p>
+<p>更多topic压缩实践的指南,请参考 <a href="/docs/zh-CN/2.1.1-incubating/cookbooks-compaction">Topic compaction cookbook</a></p>
 </blockquote>
-<p>For some use cases consumers don't need a complete &quot;image&quot; of the topic log. They may only need a few values to construct a more &quot;shallow&quot; image of the log, perhaps even just the most recent value. For these kinds of use cases Pulsar offers <strong>topic compaction</strong>. When you run compaction on a topic, Pulsar goes through a topic's backlog and removes messages that are <em>obscured</em> by later messages, i.e. it goes through the topic on a per-key basis an [...]
-<p>Pulsar's topic compaction feature:</p>
+<p>某些情况下,consumer并不需要完整的topic日志。 他们可能只需要几个值来构造一个更 &quot;浅&quot; 的日志图像, 也许仅仅只是最近的值。 对于这种应用场景,Pulsar提供了 <strong>topic压缩</strong>. 当你在topic上执行压缩,Pulsar会遍历topic的backlog然后把遥远<em>模糊</em>已经有了更新的消息移除。例如,它遍历一个以key为基础的topic,只留下关联到key上最新的消息。</p>
+<p>Pulsar的topic压缩特性:</p>
 <ul>
-<li>Allows for faster &quot;rewind&quot; through topic logs</li>
-<li>Applies only to <a href="/docs/zh-CN/2.1.1-incubating/concepts-architecture-overview#persistent-storage">persistent topics</a></li>
-<li>Triggered automatically when the backlog reaches a certain size or can be triggered manually via the command line. See the <a href="/docs/zh-CN/2.1.1-incubating/cookbooks-compaction">Topic compaction cookbook</a></li>
-<li>Is conceptually and operationally distinct from <a href="/docs/zh-CN/2.1.1-incubating/concepts-messaging#message-retention-and-expiry">retention and expiry</a>. Topic compaction <em>does</em>, however, respect retention. If retention has removed a message from the message backlog of a topic, the message will also not be readable from the compacted topic ledger.</li>
+<li>允许通过主题日志更快地 &quot;后退&quot;</li>
+<li>仅适用于 <a href="/docs/zh-CN/2.1.1-incubating/concepts-architecture-overview#persistent-storage">持久性topic</a></li>
+<li>当backlog达到一定大小时,可以被自动出发,或者通过命令行手动出发。请参见<a href="/docs/zh-CN/2.1.1-incubating/cookbooks-compaction">Topic compaction cookbook</a></li>
+<li>在概念上和操作上与<a href="/docs/zh-CN/2.1.1-incubating/concepts-messaging#message-retention-and-expiry"> retention和expiry </a>是不同的。 但是,在topic压缩中,还是<em>会</em>尊重retention。 如果retention已经从topic的backlog中移除了消息,那么此条消息在压缩的topic账簿上也是无法被读取的。</li>
 </ul>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="topic-compaction-example-the-stock-ticker"></a><a href="#topic-compaction-example-the-stock-ticker" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1  [...]
-<p>An example use case for a compacted Pulsar topic would be a stock ticker topic. On a stock ticker topic, each message bears a timestamped dollar value for stocks for purchase (with the message key holding the stock symbol, e.g. <code>AAPL</code> or <code>GOOG</code>). With a stock ticker you may care only about the most recent value(s) of the stock and have no interest in historical data (i.e. you don't need to construct a complete image of the topic's sequence of messages per key). C [...]
+<h4><a class="anchor" aria-hidden="true" id="topic压缩示例-股票报价机"></a><a href="#topic压缩示例-股票报价机" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
+<p>Pulsar topic压缩的一个使用例子,可以看一下股票报价机topic。 在股票报价机topic中,每条消息都有带有时间戳的股票买入价格(包含代表股票符号的消息key,例如<code>AAPL</code>或者<code>GOOG</code>)。 可能你感兴趣的只是股票报价机中最新的股票价格,而对历史数据并不感兴趣(即你不需要构建topic每个key下消息序列的完整图像)。 压缩在这种场景下非常的方便,因为它使得用户不需回退到模糊的消息上。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="how-topic-compaction-works"></a><a href="#how-topic-compaction-works" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H [...]
-<p>When topic compaction is triggered <a href="/docs/zh-CN/2.1.1-incubating/cookbooks-compaction">via the CLI</a>, Pulsar will iterate over the entire topic from beginning to end. For each key that it encounters the compaction routine will keep a record of the latest occurrence of that key.</p>
-<p>After that, the broker will create a new <a href="/docs/zh-CN/2.1.1-incubating/concepts-architecture-overview#ledgers">BookKeeper ledger</a> and make a second iteration through each message on the topic. For each message, if the key matches the latest occurrence of that key, then the key's data payload, message ID, and metadata will be written to the newly created ledger. If the key doesn't match the latest then the message will be skipped and left alone. If any given message has an e [...]
-<p>After the initial compaction operation, the Pulsar <a href="/docs/zh-CN/2.1.1-incubating/reference-terminology#broker">broker</a> that owns the topic is notified whenever any future changes are made to the compaction horizon and compacted backlog. When such changes occur:</p>
+<h2><a class="anchor" aria-hidden="true" id="topic压缩的工作原理"></a><a href="#topic压缩的工作原理" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
+<p>当<a href="/docs/zh-CN/2.1.1-incubating/cookbooks-compaction">通过命令行</a>触发topic压缩,Pulsar将会从头到尾迭代整个topic。 对于它碰到的每个key,压缩程序将会只保留这个key最近的事件。</p>
+<p>之后,broker将会创建一个新的<a href="/docs/zh-CN/2.1.1-incubating/concepts-architecture-overview#ledgers">BookKeeper ledger</a> 然后开始对topic的每条消息进行第二次迭代。 对于每条消息,如果key匹配到它的最新事件,key的数据内容,消息ID,元数据将会被写入最新创建的ledger。 如果key并没有匹配到最新的消息,消息将被跳过。 如果给定的消息,负载是空的,它将被跳过并且视为删除(类似key-value数据库中的 <a href="https://en.wikipedia.org/wiki/Tombstone_(data_store)">tombstones</a>概念); 在本topic第二次迭代结束时,新创建的BookKeeper ledger将被关闭,并将两个内容写入元数据 :BookKeeper ledger的ID及最新被压缩的消息的ID(这被称为topic的<strong>压缩层位</strong>)。 写入元数据后,压缩就完成了。</p>
+<p>初始化压缩操作完成后,将来任何对压缩层位及压缩backlog的修改,都会通知给拥有该topic的Pulsar <a href="/docs/zh-CN/2.1.1-incubating/reference-terminology#broker">broker</a>。 当下列更改发生时:</p>
 <ul>
-<li>Clients (consumers and readers) that have read compacted enabled will attempt to read messages from a topic and either:
+<li>启用读取压缩功能的客户端(consumer和reader),将会尝试从topic中读取消息,或者:
 <ul>
-<li>Read from the topic like normal (if the message ID is greater than or equal to the compaction horizon) or</li>
-<li>Read beginning at the compaction horizon (if the message ID is lower than the compaction horizon)</li>
+<li>像从正常的主题那样读取(如果消息的ID大于等于压缩层位),或</li>
+<li>从压缩层位的开始读取(如果消息ID小于压缩层位)</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/concepts-authentication"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/concepts-tiered-storage"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#how-topic-compaction-works">How topic compaction works</a>< [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/concepts-authentication"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/concepts-tiered-storage"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#topic压缩的工作原理">Topic压缩的工作原理</a></li></ul></nav></div><footer [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.1.1-incubating/deploy-bare-metal-multi-cluster.html b/content/docs/zh-CN/2.1.1-incubating/deploy-bare-metal-multi-cluster.html
index 2adf268..c9f44b3 100644
--- a/content/docs/zh-CN/2.1.1-incubating/deploy-bare-metal-multi-cluster.html
+++ b/content/docs/zh-CN/2.1.1-incubating/deploy-bare-metal-multi-cluster.html
@@ -194,11 +194,11 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.2.0
 </code></pre>
 <p>As you can see from the example above, the following needs to be specified:</p>
 <ul>
-<li>The name of the cluster</li>
-<li>The local ZooKeeper connection string for the cluster</li>
+<li>集群的名称</li>
+<li>集群对本地zookeeper的连接串</li>
 <li>The configuration store connection string for the entire instance</li>
-<li>The web service URL for the cluster</li>
-<li>A broker service URL enabling interaction with the <a href="/docs/zh-CN/2.1.1-incubating/reference-terminology#broker">brokers</a> in the cluster</li>
+<li>集群的web服务URL</li>
+<li>Broker服务的URL,来开启和集群中<a href="/docs/zh-CN/2.1.1-incubating/reference-terminology#broker">broker</a>的交互</li>
 </ul>
 <p>If you're using <a href="/docs/zh-CN/2.1.1-incubating/security-tls-transport">TLS</a>, you'll also need to specify a TLS web service URL for the cluster as well as a TLS broker service URL for the brokers in the cluster.</p>
 <p>Make sure to run <code>initialize-cluster-metadata</code> for each cluster in your instance.</p>
diff --git a/content/docs/zh-CN/2.1.1-incubating/deploy-bare-metal-multi-cluster/index.html b/content/docs/zh-CN/2.1.1-incubating/deploy-bare-metal-multi-cluster/index.html
index 2adf268..c9f44b3 100644
--- a/content/docs/zh-CN/2.1.1-incubating/deploy-bare-metal-multi-cluster/index.html
+++ b/content/docs/zh-CN/2.1.1-incubating/deploy-bare-metal-multi-cluster/index.html
@@ -194,11 +194,11 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.2.0
 </code></pre>
 <p>As you can see from the example above, the following needs to be specified:</p>
 <ul>
-<li>The name of the cluster</li>
-<li>The local ZooKeeper connection string for the cluster</li>
+<li>集群的名称</li>
+<li>集群对本地zookeeper的连接串</li>
 <li>The configuration store connection string for the entire instance</li>
-<li>The web service URL for the cluster</li>
-<li>A broker service URL enabling interaction with the <a href="/docs/zh-CN/2.1.1-incubating/reference-terminology#broker">brokers</a> in the cluster</li>
+<li>集群的web服务URL</li>
+<li>Broker服务的URL,来开启和集群中<a href="/docs/zh-CN/2.1.1-incubating/reference-terminology#broker">broker</a>的交互</li>
 </ul>
 <p>If you're using <a href="/docs/zh-CN/2.1.1-incubating/security-tls-transport">TLS</a>, you'll also need to specify a TLS web service URL for the cluster as well as a TLS broker service URL for the brokers in the cluster.</p>
 <p>Make sure to run <code>initialize-cluster-metadata</code> for each cluster in your instance.</p>
diff --git a/content/docs/zh-CN/2.1.1-incubating/deploy-kubernetes.html b/content/docs/zh-CN/2.1.1-incubating/deploy-kubernetes.html
index 06e3ad8..5941151 100644
--- a/content/docs/zh-CN/2.1.1-incubating/deploy-kubernetes.html
+++ b/content/docs/zh-CN/2.1.1-incubating/deploy-kubernetes.html
@@ -170,7 +170,7 @@ zk-1      1/1       Running            0          17m
 zk-2      0/1       Running            6          15m
 </code></pre>
 <p>This step may take several minutes, as Kubernetes needs to download the Docker image on the VMs.</p>
-<h3><a class="anchor" aria-hidden="true" id="initialize-cluster-metadata"></a><a href="#initialize-cluster-metadata" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 1 [...]
+<h3><a class="anchor" aria-hidden="true" id="初始化集群元数据"></a><a href="#初始化集群元数据" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
 <p>Once ZooKeeper is running, you need to <a href="#cluster-metadata-initialization">initialize the metadata</a> for the Pulsar cluster in ZooKeeper. This includes system metadata for <a href="/docs/zh-CN/2.1.1-incubating/reference-terminology#bookkeeper">BookKeeper</a> and Pulsar more broadly. There is a Kubernetes <a href="https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/">job</a> in the <code>cluster-metadata.yaml</code> file that you only need to run o [...]
 <pre><code class="hljs css language-bash">$ kubectl apply -f cluster-metadata.yaml
 </code></pre>
@@ -300,7 +300,7 @@ helm install --values pulsar/values-mini.yaml ./pulsar</p></li>
 <li>Web service url: <code>http://$(minikube ip):30001/</code></li>
 <li>Pulsar service url: <code>pulsar://$(minikube ip):30002/</code></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/deploy-aws"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/deploy-bare-metal"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#setup">Setup</a></li><li><a href="#pulsar-on-google-kubernetes-engine">Pulsar  [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/deploy-aws"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/deploy-bare-metal"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#setup">Setup</a></li><li><a href="#pulsar-on-google-kubernetes-engine">Pulsar  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.1.1-incubating/deploy-kubernetes/index.html b/content/docs/zh-CN/2.1.1-incubating/deploy-kubernetes/index.html
index 06e3ad8..5941151 100644
--- a/content/docs/zh-CN/2.1.1-incubating/deploy-kubernetes/index.html
+++ b/content/docs/zh-CN/2.1.1-incubating/deploy-kubernetes/index.html
@@ -170,7 +170,7 @@ zk-1      1/1       Running            0          17m
 zk-2      0/1       Running            6          15m
 </code></pre>
 <p>This step may take several minutes, as Kubernetes needs to download the Docker image on the VMs.</p>
-<h3><a class="anchor" aria-hidden="true" id="initialize-cluster-metadata"></a><a href="#initialize-cluster-metadata" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 1 [...]
+<h3><a class="anchor" aria-hidden="true" id="初始化集群元数据"></a><a href="#初始化集群元数据" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
 <p>Once ZooKeeper is running, you need to <a href="#cluster-metadata-initialization">initialize the metadata</a> for the Pulsar cluster in ZooKeeper. This includes system metadata for <a href="/docs/zh-CN/2.1.1-incubating/reference-terminology#bookkeeper">BookKeeper</a> and Pulsar more broadly. There is a Kubernetes <a href="https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/">job</a> in the <code>cluster-metadata.yaml</code> file that you only need to run o [...]
 <pre><code class="hljs css language-bash">$ kubectl apply -f cluster-metadata.yaml
 </code></pre>
@@ -300,7 +300,7 @@ helm install --values pulsar/values-mini.yaml ./pulsar</p></li>
 <li>Web service url: <code>http://$(minikube ip):30001/</code></li>
 <li>Pulsar service url: <code>pulsar://$(minikube ip):30002/</code></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/deploy-aws"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/deploy-bare-metal"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#setup">Setup</a></li><li><a href="#pulsar-on-google-kubernetes-engine">Pulsar  [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/deploy-aws"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/deploy-bare-metal"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#setup">Setup</a></li><li><a href="#pulsar-on-google-kubernetes-engine">Pulsar  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/admin-api-clusters.html b/content/docs/zh-CN/admin-api-clusters.html
index 3a4c35f..037fe20 100644
--- a/content/docs/zh-CN/admin-api-clusters.html
+++ b/content/docs/zh-CN/admin-api-clusters.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Clusters · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar clusters consist of one or more Pulsar [brokers](/docs/zh-CN/reference-terminology#broker), one or more [BookKeeper](/docs/zh-CN/reference-terminology#bookkeeper) servers (aka [bookies](/do [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Clusters · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar集群的构成有,一个或多个pulsar[broker](/docs/zh-CN/reference-terminology#broker),一个或多个 [BookKeeper](/docs/zh-CN/reference-terminology#bookkeeper)服务器 也称为 [bookie](/docs/zh-CN/reference-terminology#bookie [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -45,23 +45,23 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Managing Clusters</h1></header><article><div><span><p>Pulsar clusters consist of one or more Pulsar <a href="/docs/zh-CN/reference-terminology#broker">brokers</a>, one or m [...]
-<p>Clusters can be managed via:</p>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Managing Clusters</h1></header><article><div><span><p>Pulsar集群的构成有,一个或多个pulsar<a href="/docs/zh-CN/reference-terminology#broker">broker</a>,一个或多个 <a href="/docs/zh-CN/refer [...]
+<p>集群可以通过如下几种方式管理:</p>
 <ul>
-<li>The <a href="/docs/zh-CN/pulsar-admin#clusters"><code>clusters</code></a> command of the <a href="/docs/zh-CN/pulsar-admin"><code>pulsar-admin</code></a> tool</li>
-<li>The <code>/admin/v2/clusters</code> endpoint of the admin <a href="https://pulsar.incubator.apache.org/en/admin-rest-api#/">REST</a>
+<li><a href="/docs/zh-CN/pulsar-admin"><code>pulsar-admin</code></a>工具的<a href="/docs/zh-CN/pulsar-admin#clusters"><code>clusters</code></a>命令</li>
+<li><code>/admin/v2/clusters</code> admin的endpoint <a href="https://pulsar.incubator.apache.org/en/admin-rest-api#/">REST</a>
  API</li>
-<li>The <code>clusters</code> method of the <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdmin">PulsarAdmin</a>
- object in the <a href="/docs/zh-CN/client-libraries-java">Java API</a></li>
+<li><a href="/docs/zh-CN/client-libraries-java">Java API</a>中<a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdmin">PulsarAdmin</a>
+ 对象的 <code>clusters</code>方法</li>
 </ul>
-<h2><a class="anchor" aria-hidden="true" id="clusters-resources"></a><a href="#clusters-resources" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
-<h3><a class="anchor" aria-hidden="true" id="provision"></a><a href="#provision" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<p>New clusters can be provisioned using the admin interface.</p>
+<h2><a class="anchor" aria-hidden="true" id="集群资源"></a><a href="#集群资源" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<h3><a class="anchor" aria-hidden="true" id="提供"></a><a href="#提供" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>新的集群可以通过admin接口提供。</p>
 <blockquote>
-<p>Please note that this operation requires superuser privileges.</p>
+<p>请注意这个操作需要超级用户权限</p>
 </blockquote>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>You can provision a new cluster using the <a href="/docs/zh-CN/pulsar-admin#clusters-create"><code>create</code></a> subcommand. Here's an example:</p>
+<p>你可以使用<a href="/docs/zh-CN/pulsar-admin#clusters-create"><code>create</code></a>子命令设置新的集群。下面是一个示例:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin clusters create cluster-1 \</span>
   --url http://my-cluster.org.com:8080 \
   --broker-url pulsar://my-cluster.org.com:6650
@@ -78,21 +78,21 @@
 );
 admin.clusters().createCluster(clusterName, clusterData);
 </code></pre>
-<h3><a class="anchor" aria-hidden="true" id="initialize-cluster-metadata"></a><a href="#initialize-cluster-metadata" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 1 [...]
-<p>When provision a new cluster, you need to initialize that cluster's <a href="/docs/zh-CN/concepts-architecture-overview#metadata-store">metadata</a>. When initializing cluster metadata, you need to specify all of the following:</p>
+<h3><a class="anchor" aria-hidden="true" id="初始化集群元数据"></a><a href="#初始化集群元数据" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
+<p>当准备新的集群,你需要初始化集群的<a href="/docs/zh-CN/concepts-architecture-overview#metadata-store">元数据</a> 当初始化集群元数据,你需要指定下面这些项:</p>
 <ul>
-<li>The name of the cluster</li>
-<li>The local ZooKeeper connection string for the cluster</li>
-<li>The global ZooKeeper connection string for the entire instance</li>
-<li>The web service URL for the cluster</li>
-<li>A broker service URL enabling interaction with the <a href="/docs/zh-CN/reference-terminology#broker">brokers</a> in the cluster</li>
+<li>集群的名称</li>
+<li>集群对本地zookeeper的连接串</li>
+<li>整个实例全局的ZooKeeper连接串</li>
+<li>集群的web服务URL</li>
+<li>Broker服务的URL,来开启和集群中<a href="/docs/zh-CN/reference-terminology#broker">broker</a>的交互</li>
 </ul>
-<p>You must initialize cluster metadata <em>before</em> starting up any <a href="/docs/zh-CN/admin-api-brokers">brokers</a> that will belong to the cluster.</p>
+<p>在你启动集群中任意一个<a href="/docs/zh-CN/admin-api-brokers">broker</a><em>前</em>,你必须要初始化集群元数据。</p>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="no-cluster-metadata-initialization-through-the-rest-api-or-the-java-admin-api"></a><a href="#no-cluster-metadata-initialization-through-the-rest-api-or-the-java-admin-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.2 [...]
-<p>Unlike most other admin functions in Pulsar, cluster metadata initialization cannot be performed via the admin REST API or the admin Java client, as metadata initialization involves communicating with ZooKeeper directly. Instead, you can use the <a href="/docs/zh-CN/reference-cli-tools#pulsar"><code>pulsar</code></a> CLI tool, in particular the <a href="/docs/zh-CN/reference-cli-tools#pulsar-initialize-cluster-metadata"><code>initialize-cluster-metadata</code></a> command.</p>
+<h4><a class="anchor" aria-hidden="true" id="通过rest-api或者java-admin-api-并不能集群原数据初始化"></a><a href="#通过rest-api或者java-admin-api-并不能集群原数据初始化" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1. [...]
+<p>和Pulsar其他的admin功能不一样,集群元数据初始化不能通过admin REST API执行。 但是你可以使用 <a href="/docs/zh-CN/reference-cli-tools#pulsar"><code>pulsar</code></a> CLI工具,执行指定的<a href="/docs/zh-CN/reference-cli-tools#pulsar-initialize-cluster-metadata"><code>initialize-cluster-metadata</code></a>命令</p>
 </blockquote>
-<p>Here's an example cluster metadata initialization command:</p>
+<p>下面是集群元数据初始化命令的例子:</p>
 <pre><code class="hljs css language-shell">bin/pulsar initialize-cluster-metadata \
   --cluster us-west \
   --zookeeper zk1.us-west.example.com:2181 \
@@ -102,7 +102,7 @@ admin.clusters().createCluster(clusterName, clusterData);
   --broker-service-url pulsar://pulsar.us-west.example.com:6650/ \
   --broker-service-url-tls pulsar+ssl://pulsar.us-west.example.com:6651/
 </code></pre>
-<p>You'll need to use <code>--*-tls</code> flags only if you're using <a href="/docs/zh-CN/security-tls-authentication">TLS authentication</a> in your instance.</p>
+<p>你需要仅使用<code>--*-tls</code>标记,如果你正在你的实例中使用 <a href="/docs/zh-CN/security-tls-authentication">TLS authentication</a>。</p>
 <h3><a class="anchor" aria-hidden="true" id="get-configuration"></a><a href="#get-configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
 <p>You can fetch the <a href="/docs/zh-CN/reference-configuration">configuration</a> for an existing cluster at any time.</p>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-1"></a><a href="#pulsar-admin-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
@@ -180,7 +180,7 @@ cluster-2
 <h4><a class="anchor" aria-hidden="true" id="java-5"></a><a href="#java-5" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.clusters().updatePeerClusterNames(clusterName, peerClusterList);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/admin-api-overview"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/admin-api-tenants"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#clusters-resources">Clusters resources</a><ul class="toc-headings"><li><a href="#provision">Provision</a [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/admin-api-overview"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/admin-api-tenants"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#集群资源">集群资源</a><ul class="toc-headings"><li><a href="#提供">提供</a></li><li><a href="#初始化集群元数据">初始化集群元数据</a> [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/admin-api-clusters/index.html b/content/docs/zh-CN/admin-api-clusters/index.html
index 3a4c35f..037fe20 100644
--- a/content/docs/zh-CN/admin-api-clusters/index.html
+++ b/content/docs/zh-CN/admin-api-clusters/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Clusters · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar clusters consist of one or more Pulsar [brokers](/docs/zh-CN/reference-terminology#broker), one or more [BookKeeper](/docs/zh-CN/reference-terminology#bookkeeper) servers (aka [bookies](/do [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Clusters · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar集群的构成有,一个或多个pulsar[broker](/docs/zh-CN/reference-terminology#broker),一个或多个 [BookKeeper](/docs/zh-CN/reference-terminology#bookkeeper)服务器 也称为 [bookie](/docs/zh-CN/reference-terminology#bookie [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -45,23 +45,23 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Managing Clusters</h1></header><article><div><span><p>Pulsar clusters consist of one or more Pulsar <a href="/docs/zh-CN/reference-terminology#broker">brokers</a>, one or m [...]
-<p>Clusters can be managed via:</p>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Managing Clusters</h1></header><article><div><span><p>Pulsar集群的构成有,一个或多个pulsar<a href="/docs/zh-CN/reference-terminology#broker">broker</a>,一个或多个 <a href="/docs/zh-CN/refer [...]
+<p>集群可以通过如下几种方式管理:</p>
 <ul>
-<li>The <a href="/docs/zh-CN/pulsar-admin#clusters"><code>clusters</code></a> command of the <a href="/docs/zh-CN/pulsar-admin"><code>pulsar-admin</code></a> tool</li>
-<li>The <code>/admin/v2/clusters</code> endpoint of the admin <a href="https://pulsar.incubator.apache.org/en/admin-rest-api#/">REST</a>
+<li><a href="/docs/zh-CN/pulsar-admin"><code>pulsar-admin</code></a>工具的<a href="/docs/zh-CN/pulsar-admin#clusters"><code>clusters</code></a>命令</li>
+<li><code>/admin/v2/clusters</code> admin的endpoint <a href="https://pulsar.incubator.apache.org/en/admin-rest-api#/">REST</a>
  API</li>
-<li>The <code>clusters</code> method of the <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdmin">PulsarAdmin</a>
- object in the <a href="/docs/zh-CN/client-libraries-java">Java API</a></li>
+<li><a href="/docs/zh-CN/client-libraries-java">Java API</a>中<a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdmin">PulsarAdmin</a>
+ 对象的 <code>clusters</code>方法</li>
 </ul>
-<h2><a class="anchor" aria-hidden="true" id="clusters-resources"></a><a href="#clusters-resources" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
-<h3><a class="anchor" aria-hidden="true" id="provision"></a><a href="#provision" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<p>New clusters can be provisioned using the admin interface.</p>
+<h2><a class="anchor" aria-hidden="true" id="集群资源"></a><a href="#集群资源" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<h3><a class="anchor" aria-hidden="true" id="提供"></a><a href="#提供" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>新的集群可以通过admin接口提供。</p>
 <blockquote>
-<p>Please note that this operation requires superuser privileges.</p>
+<p>请注意这个操作需要超级用户权限</p>
 </blockquote>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>You can provision a new cluster using the <a href="/docs/zh-CN/pulsar-admin#clusters-create"><code>create</code></a> subcommand. Here's an example:</p>
+<p>你可以使用<a href="/docs/zh-CN/pulsar-admin#clusters-create"><code>create</code></a>子命令设置新的集群。下面是一个示例:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin clusters create cluster-1 \</span>
   --url http://my-cluster.org.com:8080 \
   --broker-url pulsar://my-cluster.org.com:6650
@@ -78,21 +78,21 @@
 );
 admin.clusters().createCluster(clusterName, clusterData);
 </code></pre>
-<h3><a class="anchor" aria-hidden="true" id="initialize-cluster-metadata"></a><a href="#initialize-cluster-metadata" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 1 [...]
-<p>When provision a new cluster, you need to initialize that cluster's <a href="/docs/zh-CN/concepts-architecture-overview#metadata-store">metadata</a>. When initializing cluster metadata, you need to specify all of the following:</p>
+<h3><a class="anchor" aria-hidden="true" id="初始化集群元数据"></a><a href="#初始化集群元数据" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
+<p>当准备新的集群,你需要初始化集群的<a href="/docs/zh-CN/concepts-architecture-overview#metadata-store">元数据</a> 当初始化集群元数据,你需要指定下面这些项:</p>
 <ul>
-<li>The name of the cluster</li>
-<li>The local ZooKeeper connection string for the cluster</li>
-<li>The global ZooKeeper connection string for the entire instance</li>
-<li>The web service URL for the cluster</li>
-<li>A broker service URL enabling interaction with the <a href="/docs/zh-CN/reference-terminology#broker">brokers</a> in the cluster</li>
+<li>集群的名称</li>
+<li>集群对本地zookeeper的连接串</li>
+<li>整个实例全局的ZooKeeper连接串</li>
+<li>集群的web服务URL</li>
+<li>Broker服务的URL,来开启和集群中<a href="/docs/zh-CN/reference-terminology#broker">broker</a>的交互</li>
 </ul>
-<p>You must initialize cluster metadata <em>before</em> starting up any <a href="/docs/zh-CN/admin-api-brokers">brokers</a> that will belong to the cluster.</p>
+<p>在你启动集群中任意一个<a href="/docs/zh-CN/admin-api-brokers">broker</a><em>前</em>,你必须要初始化集群元数据。</p>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="no-cluster-metadata-initialization-through-the-rest-api-or-the-java-admin-api"></a><a href="#no-cluster-metadata-initialization-through-the-rest-api-or-the-java-admin-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.2 [...]
-<p>Unlike most other admin functions in Pulsar, cluster metadata initialization cannot be performed via the admin REST API or the admin Java client, as metadata initialization involves communicating with ZooKeeper directly. Instead, you can use the <a href="/docs/zh-CN/reference-cli-tools#pulsar"><code>pulsar</code></a> CLI tool, in particular the <a href="/docs/zh-CN/reference-cli-tools#pulsar-initialize-cluster-metadata"><code>initialize-cluster-metadata</code></a> command.</p>
+<h4><a class="anchor" aria-hidden="true" id="通过rest-api或者java-admin-api-并不能集群原数据初始化"></a><a href="#通过rest-api或者java-admin-api-并不能集群原数据初始化" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1. [...]
+<p>和Pulsar其他的admin功能不一样,集群元数据初始化不能通过admin REST API执行。 但是你可以使用 <a href="/docs/zh-CN/reference-cli-tools#pulsar"><code>pulsar</code></a> CLI工具,执行指定的<a href="/docs/zh-CN/reference-cli-tools#pulsar-initialize-cluster-metadata"><code>initialize-cluster-metadata</code></a>命令</p>
 </blockquote>
-<p>Here's an example cluster metadata initialization command:</p>
+<p>下面是集群元数据初始化命令的例子:</p>
 <pre><code class="hljs css language-shell">bin/pulsar initialize-cluster-metadata \
   --cluster us-west \
   --zookeeper zk1.us-west.example.com:2181 \
@@ -102,7 +102,7 @@ admin.clusters().createCluster(clusterName, clusterData);
   --broker-service-url pulsar://pulsar.us-west.example.com:6650/ \
   --broker-service-url-tls pulsar+ssl://pulsar.us-west.example.com:6651/
 </code></pre>
-<p>You'll need to use <code>--*-tls</code> flags only if you're using <a href="/docs/zh-CN/security-tls-authentication">TLS authentication</a> in your instance.</p>
+<p>你需要仅使用<code>--*-tls</code>标记,如果你正在你的实例中使用 <a href="/docs/zh-CN/security-tls-authentication">TLS authentication</a>。</p>
 <h3><a class="anchor" aria-hidden="true" id="get-configuration"></a><a href="#get-configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
 <p>You can fetch the <a href="/docs/zh-CN/reference-configuration">configuration</a> for an existing cluster at any time.</p>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-1"></a><a href="#pulsar-admin-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
@@ -180,7 +180,7 @@ cluster-2
 <h4><a class="anchor" aria-hidden="true" id="java-5"></a><a href="#java-5" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.clusters().updatePeerClusterNames(clusterName, peerClusterList);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/admin-api-overview"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/admin-api-tenants"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#clusters-resources">Clusters resources</a><ul class="toc-headings"><li><a href="#provision">Provision</a [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/admin-api-overview"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/admin-api-tenants"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#集群资源">集群资源</a><ul class="toc-headings"><li><a href="#提供">提供</a></li><li><a href="#初始化集群元数据">初始化集群元数据</a> [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/concepts-architecture-overview.html b/content/docs/zh-CN/concepts-architecture-overview.html
index 208f583..202cb5d 100644
--- a/content/docs/zh-CN/concepts-architecture-overview.html
+++ b/content/docs/zh-CN/concepts-architecture-overview.html
@@ -67,7 +67,7 @@
 <blockquote>
 <p>For a guide to managing Pulsar brokers, see the <a href="/docs/zh-CN/admin-api-brokers">brokers</a> guide.</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="clusters"></a><a href="#clusters" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
+<h2><a class="anchor" aria-hidden="true" id="集群"></a><a href="#集群" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <p>A Pulsar instance consists of one or more Pulsar <em>clusters</em>. Clusters, in turn, consist of:</p>
 <ul>
 <li>One or more Pulsar <a href="#brokers">brokers</a></li>
@@ -154,7 +154,7 @@
 
 client = Client(<span class="hljs-string">'pulsar://pulsar-cluster.acme.com:6650'</span>)
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/concepts-messaging"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/concepts-clients"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#brokers">Brokers</a></li><li><a href="#clusters">Clusters</a></li><li><a href="#metadata-store">Metadata  [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/concepts-messaging"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/concepts-clients"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#brokers">Brokers</a></li><li><a href="#集群">集群</a></li><li><a href="#metadata-store">Metadata store</a></l [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/concepts-architecture-overview/index.html b/content/docs/zh-CN/concepts-architecture-overview/index.html
index 208f583..202cb5d 100644
--- a/content/docs/zh-CN/concepts-architecture-overview/index.html
+++ b/content/docs/zh-CN/concepts-architecture-overview/index.html
@@ -67,7 +67,7 @@
 <blockquote>
 <p>For a guide to managing Pulsar brokers, see the <a href="/docs/zh-CN/admin-api-brokers">brokers</a> guide.</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="clusters"></a><a href="#clusters" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
+<h2><a class="anchor" aria-hidden="true" id="集群"></a><a href="#集群" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <p>A Pulsar instance consists of one or more Pulsar <em>clusters</em>. Clusters, in turn, consist of:</p>
 <ul>
 <li>One or more Pulsar <a href="#brokers">brokers</a></li>
@@ -154,7 +154,7 @@
 
 client = Client(<span class="hljs-string">'pulsar://pulsar-cluster.acme.com:6650'</span>)
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/concepts-messaging"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/concepts-clients"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#brokers">Brokers</a></li><li><a href="#clusters">Clusters</a></li><li><a href="#metadata-store">Metadata  [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/concepts-messaging"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/concepts-clients"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#brokers">Brokers</a></li><li><a href="#集群">集群</a></li><li><a href="#metadata-store">Metadata store</a></l [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/concepts-authentication.html b/content/docs/zh-CN/concepts-authentication.html
index a1a6bdc..5c9b1c2 100644
--- a/content/docs/zh-CN/concepts-authentication.html
+++ b/content/docs/zh-CN/concepts-authentication.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Authentication and Authorization · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar supports a pluggable [authentication](/docs/zh-CN/security-overview) mechanism which can be configured at broker and it also supports authorization to identify client and its [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Authentication and Authorization · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar支持可插入的 [认证](/docs/zh-CN/security-overview)机制,它配置在broker上,并且支持授权,来识别客户端及它能够访问的topic和tenant"/><meta name="docsearch:version" content="2.2.0"/><meta name="docsearch:language" con [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Authentication and Authorization</h1></header><article><div><span><p>Pulsar supports a pluggable <a href="/docs/zh-CN/security-overview">authentication</a> mechanism which  [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Authentication and Authorization</h1></header><article><div><span><p>Pulsar支持可插入的 <a href="/docs/zh-CN/security-overview">认证</a>机制,它配置在broker上,并且支持授权,来识别客户端及它能够访问的topic和tenant</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/concepts-multi-tenancy"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/concepts-topic-compaction"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. All  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/zh-CN/concepts-authentication/index.html b/content/docs/zh-CN/concepts-authentication/index.html
index a1a6bdc..5c9b1c2 100644
--- a/content/docs/zh-CN/concepts-authentication/index.html
+++ b/content/docs/zh-CN/concepts-authentication/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Authentication and Authorization · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar supports a pluggable [authentication](/docs/zh-CN/security-overview) mechanism which can be configured at broker and it also supports authorization to identify client and its [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Authentication and Authorization · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar支持可插入的 [认证](/docs/zh-CN/security-overview)机制,它配置在broker上,并且支持授权,来识别客户端及它能够访问的topic和tenant"/><meta name="docsearch:version" content="2.2.0"/><meta name="docsearch:language" con [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Authentication and Authorization</h1></header><article><div><span><p>Pulsar supports a pluggable <a href="/docs/zh-CN/security-overview">authentication</a> mechanism which  [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Authentication and Authorization</h1></header><article><div><span><p>Pulsar支持可插入的 <a href="/docs/zh-CN/security-overview">认证</a>机制,它配置在broker上,并且支持授权,来识别客户端及它能够访问的topic和tenant</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/concepts-multi-tenancy"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/concepts-topic-compaction"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. All  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/zh-CN/concepts-overview.html b/content/docs/zh-CN/concepts-overview.html
index 490ae2d..63e4a70 100644
--- a/content/docs/zh-CN/concepts-overview.html
+++ b/content/docs/zh-CN/concepts-overview.html
@@ -65,7 +65,7 @@
 <li><a href="/docs/zh-CN/concepts-clients">Pulsar客户端</a></li>
 <li><a href="/docs/zh-CN/concepts-replication">基于地理位置的备份</a></li>
 <li><a href="/docs/zh-CN/concepts-multi-tenancy">多租户</a></li>
-<li><a href="/docs/zh-CN/concepts-authentication">Authentication and Authorization</a></li>
+<li><a href="/docs/zh-CN/concepts-authentication">认证和授权</a></li>
 <li><a href="/docs/zh-CN/concepts-topic-compaction">消息压缩</a></li>
 <li><a href="/docs/zh-CN/concepts-tiered-storage">Tiered Storage</a></li>
 <li><a href="/docs/zh-CN/concepts-schema-registry">Schema管理服务</a></li>
diff --git a/content/docs/zh-CN/concepts-overview/index.html b/content/docs/zh-CN/concepts-overview/index.html
index 490ae2d..63e4a70 100644
--- a/content/docs/zh-CN/concepts-overview/index.html
+++ b/content/docs/zh-CN/concepts-overview/index.html
@@ -65,7 +65,7 @@
 <li><a href="/docs/zh-CN/concepts-clients">Pulsar客户端</a></li>
 <li><a href="/docs/zh-CN/concepts-replication">基于地理位置的备份</a></li>
 <li><a href="/docs/zh-CN/concepts-multi-tenancy">多租户</a></li>
-<li><a href="/docs/zh-CN/concepts-authentication">Authentication and Authorization</a></li>
+<li><a href="/docs/zh-CN/concepts-authentication">认证和授权</a></li>
 <li><a href="/docs/zh-CN/concepts-topic-compaction">消息压缩</a></li>
 <li><a href="/docs/zh-CN/concepts-tiered-storage">Tiered Storage</a></li>
 <li><a href="/docs/zh-CN/concepts-schema-registry">Schema管理服务</a></li>
diff --git a/content/docs/zh-CN/concepts-tiered-storage.html b/content/docs/zh-CN/concepts-tiered-storage.html
index 14b91c7..f4d3747 100644
--- a/content/docs/zh-CN/concepts-tiered-storage.html
+++ b/content/docs/zh-CN/concepts-tiered-storage.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Tiered Storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar&#x27;s segment oriented architecture allows for topic backlogs to grow very large, effectively without limit. However, this can become expensive over time."/><meta name="docsearch:version" con [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Tiered Storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar面向segment的架构允许topic backlong增长的十分庞大,如果有没加以限制,随着时间的增加,代价将越来越高。"/><meta name="docsearch:version" content="2.2.0"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" conten [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -45,15 +45,15 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Tiered Storage</h1></header><article><div><span><p>Pulsar's segment oriented architecture allows for topic backlogs to grow very large, effectively without limit. However,  [...]
-<p>One way to alleviate this cost is to use Tiered Storage. With tiered storage, older messages in the backlog can be moved from bookkeeper to a cheaper storage mechanism, while still allowing clients to access the backlog as if nothing had changed.</p>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Tiered Storage</h1></header><article><div><span><p>Pulsar面向segment的架构允许topic backlong增长的十分庞大,如果有没加以限制,随着时间的增加,代价将越来越高。</p>
+<p>有一个减轻这个消耗的办法,那就是使用分层存储。 使用分层存储,backlog中旧的消息,将被从booKeeper转移到更低廉的存储机制中,当然还是允许客户端进入backlog,就像什么也没有发生一样。</p>
 <p><img src="/docs/assets/pulsar-tiered-storage.png" alt="Tiered Storage"></p>
 <blockquote>
-<p>Data written to bookkeeper is replicated to 3 physical machines by default. However, once a segment is sealed in bookkeeper is becomes immutable and can be copied to long term storage. Long term storage can achieve cost savings by using mechanisms such as <a href="https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction">Reed-Solomon error correction</a> to require fewer physical copies of data.</p>
+<p>写入bookKeeper的数据被默认复制到3台物理机。 但是,一旦segment在bookKeeper中被封闭,将会变成不可改变,并且可以被拷贝到长期存储中。 长期存储可以达到节省存储的目的,通过使用如 <a href="https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction">Reed-Solomon error correction</a> 的机制,以实现所需更少的数据物理备份。</p>
 </blockquote>
-<p>Pulsar currently supports S3 as a long term store. Offloading to S3 triggered via a Rest API or command line interface. The user passes in the amount of topic data they wish to retain on bookkeeper, and the broker will copy the backlog data to S3. The original data will then be deleted from bookkeeper after a configured delay (4 hours by default).</p>
+<p>Pulsar目前支持S3作为长期存储。 可以通过Rest API或者命令行接口,卸载数据到S3。 用户传入他们想要保留在bookKeeper的topic数据的数量,broker将会拷贝backlog到S3. 原始数据将在配置的延迟之后,从bookKeeper中删除(默认4小时)。</p>
 <blockquote>
-<p>For a guide for setting up tiered storage, see the <a href="/docs/zh-CN/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
+<p>搭建分层存储的指导,请参考 <a href="/docs/zh-CN/cookbooks-tiered-storage">Tiered storage cookbook</a>。</p>
 </blockquote>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/concepts-topic-compaction"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/concepts-schema-registry"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. Al [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/zh-CN/concepts-tiered-storage/index.html b/content/docs/zh-CN/concepts-tiered-storage/index.html
index 14b91c7..f4d3747 100644
--- a/content/docs/zh-CN/concepts-tiered-storage/index.html
+++ b/content/docs/zh-CN/concepts-tiered-storage/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Tiered Storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar&#x27;s segment oriented architecture allows for topic backlogs to grow very large, effectively without limit. However, this can become expensive over time."/><meta name="docsearch:version" con [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Tiered Storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar面向segment的架构允许topic backlong增长的十分庞大,如果有没加以限制,随着时间的增加,代价将越来越高。"/><meta name="docsearch:version" content="2.2.0"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" conten [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -45,15 +45,15 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Tiered Storage</h1></header><article><div><span><p>Pulsar's segment oriented architecture allows for topic backlogs to grow very large, effectively without limit. However,  [...]
-<p>One way to alleviate this cost is to use Tiered Storage. With tiered storage, older messages in the backlog can be moved from bookkeeper to a cheaper storage mechanism, while still allowing clients to access the backlog as if nothing had changed.</p>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Tiered Storage</h1></header><article><div><span><p>Pulsar面向segment的架构允许topic backlong增长的十分庞大,如果有没加以限制,随着时间的增加,代价将越来越高。</p>
+<p>有一个减轻这个消耗的办法,那就是使用分层存储。 使用分层存储,backlog中旧的消息,将被从booKeeper转移到更低廉的存储机制中,当然还是允许客户端进入backlog,就像什么也没有发生一样。</p>
 <p><img src="/docs/assets/pulsar-tiered-storage.png" alt="Tiered Storage"></p>
 <blockquote>
-<p>Data written to bookkeeper is replicated to 3 physical machines by default. However, once a segment is sealed in bookkeeper is becomes immutable and can be copied to long term storage. Long term storage can achieve cost savings by using mechanisms such as <a href="https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction">Reed-Solomon error correction</a> to require fewer physical copies of data.</p>
+<p>写入bookKeeper的数据被默认复制到3台物理机。 但是,一旦segment在bookKeeper中被封闭,将会变成不可改变,并且可以被拷贝到长期存储中。 长期存储可以达到节省存储的目的,通过使用如 <a href="https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction">Reed-Solomon error correction</a> 的机制,以实现所需更少的数据物理备份。</p>
 </blockquote>
-<p>Pulsar currently supports S3 as a long term store. Offloading to S3 triggered via a Rest API or command line interface. The user passes in the amount of topic data they wish to retain on bookkeeper, and the broker will copy the backlog data to S3. The original data will then be deleted from bookkeeper after a configured delay (4 hours by default).</p>
+<p>Pulsar目前支持S3作为长期存储。 可以通过Rest API或者命令行接口,卸载数据到S3。 用户传入他们想要保留在bookKeeper的topic数据的数量,broker将会拷贝backlog到S3. 原始数据将在配置的延迟之后,从bookKeeper中删除(默认4小时)。</p>
 <blockquote>
-<p>For a guide for setting up tiered storage, see the <a href="/docs/zh-CN/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
+<p>搭建分层存储的指导,请参考 <a href="/docs/zh-CN/cookbooks-tiered-storage">Tiered storage cookbook</a>。</p>
 </blockquote>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/concepts-topic-compaction"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/concepts-schema-registry"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foundation. Al [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/zh-CN/concepts-topic-compaction.html b/content/docs/zh-CN/concepts-topic-compaction.html
index fa30d69..71a08d8 100644
--- a/content/docs/zh-CN/concepts-topic-compaction.html
+++ b/content/docs/zh-CN/concepts-topic-compaction.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Topic Compaction · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar was built with highly scalable [persistent storage](/docs/zh-CN/concepts-architecture-overview#persistent-storage) of message data as a primary objective. Pulsar topics enable you to persist [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Topic Compaction · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar是带着消息数据高可扩展的[持久存储](/docs/zh-CN/concepts-architecture-overview#persistent-storage)为主要目标去构建的。 Pulsar的topic让你可以持久存储你所需要的这么多未被确认的消息,同时保留了消息的顺序。 默认的,Pulsar存储生产到主题上*所有*未被确认/未被处理的消息。 在很多Pulsar的使用案例中 [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -45,34 +45,34 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Topic Compaction</h1></header><article><div><span><p>Pulsar was built with highly scalable <a href="/docs/zh-CN/concepts-architecture-overview#persistent-storage">persisten [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Topic Compaction</h1></header><article><div><span><p>Pulsar是带着消息数据高可扩展的<a href="/docs/zh-CN/concepts-architecture-overview#persistent-storage">持久存储</a>为主要目标去构建的。 Pulsar的top [...]
 <blockquote>
-<p>For a more practical guide to topic compaction, see the <a href="/docs/zh-CN/cookbooks-compaction">Topic compaction cookbook</a>.</p>
+<p>更多topic压缩实践的指南,请参考 <a href="/docs/zh-CN/cookbooks-compaction">Topic compaction cookbook</a></p>
 </blockquote>
-<p>For some use cases consumers don't need a complete &quot;image&quot; of the topic log. They may only need a few values to construct a more &quot;shallow&quot; image of the log, perhaps even just the most recent value. For these kinds of use cases Pulsar offers <strong>topic compaction</strong>. When you run compaction on a topic, Pulsar goes through a topic's backlog and removes messages that are <em>obscured</em> by later messages, i.e. it goes through the topic on a per-key basis an [...]
-<p>Pulsar's topic compaction feature:</p>
+<p>某些情况下,consumer并不需要完整的topic日志。 他们可能只需要几个值来构造一个更 &quot;浅&quot; 的日志图像, 也许仅仅只是最近的值。 对于这种应用场景,Pulsar提供了 <strong>topic压缩</strong>. 当你在topic上执行压缩,Pulsar会遍历topic的backlog然后把遥远<em>模糊</em>已经有了更新的消息移除。例如,它遍历一个以key为基础的topic,只留下关联到key上最新的消息。</p>
+<p>Pulsar的topic压缩特性:</p>
 <ul>
-<li>Allows for faster &quot;rewind&quot; through topic logs</li>
-<li>Applies only to <a href="/docs/zh-CN/concepts-architecture-overview#persistent-storage">persistent topics</a></li>
-<li>Triggered automatically when the backlog reaches a certain size or can be triggered manually via the command line. See the <a href="/docs/zh-CN/cookbooks-compaction">Topic compaction cookbook</a></li>
-<li>Is conceptually and operationally distinct from <a href="/docs/zh-CN/concepts-messaging#message-retention-and-expiry">retention and expiry</a>. Topic compaction <em>does</em>, however, respect retention. If retention has removed a message from the message backlog of a topic, the message will also not be readable from the compacted topic ledger.</li>
+<li>允许通过主题日志更快地 &quot;后退&quot;</li>
+<li>仅适用于 <a href="/docs/zh-CN/concepts-architecture-overview#persistent-storage">持久性topic</a></li>
+<li>当backlog达到一定大小时,可以被自动出发,或者通过命令行手动出发。请参见<a href="/docs/zh-CN/cookbooks-compaction">Topic compaction cookbook</a></li>
+<li>在概念上和操作上与<a href="/docs/zh-CN/concepts-messaging#message-retention-and-expiry"> retention和expiry </a>是不同的。 但是,在topic压缩中,还是<em>会</em>尊重retention。 如果retention已经从topic的backlog中移除了消息,那么此条消息在压缩的topic账簿上也是无法被读取的。</li>
 </ul>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="topic-compaction-example-the-stock-ticker"></a><a href="#topic-compaction-example-the-stock-ticker" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1  [...]
-<p>An example use case for a compacted Pulsar topic would be a stock ticker topic. On a stock ticker topic, each message bears a timestamped dollar value for stocks for purchase (with the message key holding the stock symbol, e.g. <code>AAPL</code> or <code>GOOG</code>). With a stock ticker you may care only about the most recent value(s) of the stock and have no interest in historical data (i.e. you don't need to construct a complete image of the topic's sequence of messages per key). C [...]
+<h4><a class="anchor" aria-hidden="true" id="topic压缩示例-股票报价机"></a><a href="#topic压缩示例-股票报价机" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
+<p>Pulsar topic压缩的一个使用例子,可以看一下股票报价机topic。 在股票报价机topic中,每条消息都有带有时间戳的股票买入价格(包含代表股票符号的消息key,例如<code>AAPL</code>或者<code>GOOG</code>)。 可能你感兴趣的只是股票报价机中最新的股票价格,而对历史数据并不感兴趣(即你不需要构建topic每个key下消息序列的完整图像)。 压缩在这种场景下非常的方便,因为它使得用户不需回退到模糊的消息上。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="how-topic-compaction-works"></a><a href="#how-topic-compaction-works" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H [...]
-<p>When topic compaction is triggered <a href="/docs/zh-CN/cookbooks-compaction">via the CLI</a>, Pulsar will iterate over the entire topic from beginning to end. For each key that it encounters the compaction routine will keep a record of the latest occurrence of that key.</p>
-<p>After that, the broker will create a new <a href="/docs/zh-CN/concepts-architecture-overview#ledgers">BookKeeper ledger</a> and make a second iteration through each message on the topic. For each message, if the key matches the latest occurrence of that key, then the key's data payload, message ID, and metadata will be written to the newly created ledger. If the key doesn't match the latest then the message will be skipped and left alone. If any given message has an empty payload, it  [...]
-<p>After the initial compaction operation, the Pulsar <a href="/docs/zh-CN/reference-terminology#broker">broker</a> that owns the topic is notified whenever any future changes are made to the compaction horizon and compacted backlog. When such changes occur:</p>
+<h2><a class="anchor" aria-hidden="true" id="topic压缩的工作原理"></a><a href="#topic压缩的工作原理" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
+<p>当<a href="/docs/zh-CN/cookbooks-compaction">通过命令行</a>触发topic压缩,Pulsar将会从头到尾迭代整个topic。 对于它碰到的每个key,压缩程序将会只保留这个key最近的事件。</p>
+<p>之后,broker将会创建一个新的<a href="/docs/zh-CN/concepts-architecture-overview#ledgers">BookKeeper ledger</a> 然后开始对topic的每条消息进行第二次迭代。 对于每条消息,如果key匹配到它的最新事件,key的数据内容,消息ID,元数据将会被写入最新创建的ledger。 如果key并没有匹配到最新的消息,消息将被跳过。 如果给定的消息,负载是空的,它将被跳过并且视为删除(类似key-value数据库中的 <a href="https://en.wikipedia.org/wiki/Tombstone_(data_store)">tombstones</a>概念); 在本topic第二次迭代结束时,新创建的BookKeeper ledger将被关闭,并将两个内容写入元数据 :BookKeeper ledger的ID及最新被压缩的消息的ID(这被称为topic的<strong>压缩层位</strong>)。 写入元数据后,压缩就完成了。</p>
+<p>初始化压缩操作完成后,将来任何对压缩层位及压缩backlog的修改,都会通知给拥有该topic的Pulsar <a href="/docs/zh-CN/reference-terminology#broker">broker</a>。 当下列更改发生时:</p>
 <ul>
-<li>Clients (consumers and readers) that have read compacted enabled will attempt to read messages from a topic and either:
+<li>启用读取压缩功能的客户端(consumer和reader),将会尝试从topic中读取消息,或者:
 <ul>
-<li>Read from the topic like normal (if the message ID is greater than or equal to the compaction horizon) or</li>
-<li>Read beginning at the compaction horizon (if the message ID is lower than the compaction horizon)</li>
+<li>像从正常的主题那样读取(如果消息的ID大于等于压缩层位),或</li>
+<li>从压缩层位的开始读取(如果消息ID小于压缩层位)</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/concepts-authentication"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/concepts-tiered-storage"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#how-topic-compaction-works">How topic compaction works</a></li></ul></nav></div><footer class [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/concepts-authentication"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/concepts-tiered-storage"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#topic压缩的工作原理">Topic压缩的工作原理</a></li></ul></nav></div><footer class="nav-footer" id="footer"><s [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/concepts-topic-compaction/index.html b/content/docs/zh-CN/concepts-topic-compaction/index.html
index fa30d69..71a08d8 100644
--- a/content/docs/zh-CN/concepts-topic-compaction/index.html
+++ b/content/docs/zh-CN/concepts-topic-compaction/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Topic Compaction · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar was built with highly scalable [persistent storage](/docs/zh-CN/concepts-architecture-overview#persistent-storage) of message data as a primary objective. Pulsar topics enable you to persist [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Topic Compaction · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar是带着消息数据高可扩展的[持久存储](/docs/zh-CN/concepts-architecture-overview#persistent-storage)为主要目标去构建的。 Pulsar的topic让你可以持久存储你所需要的这么多未被确认的消息,同时保留了消息的顺序。 默认的,Pulsar存储生产到主题上*所有*未被确认/未被处理的消息。 在很多Pulsar的使用案例中 [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -45,34 +45,34 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Topic Compaction</h1></header><article><div><span><p>Pulsar was built with highly scalable <a href="/docs/zh-CN/concepts-architecture-overview#persistent-storage">persisten [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Topic Compaction</h1></header><article><div><span><p>Pulsar是带着消息数据高可扩展的<a href="/docs/zh-CN/concepts-architecture-overview#persistent-storage">持久存储</a>为主要目标去构建的。 Pulsar的top [...]
 <blockquote>
-<p>For a more practical guide to topic compaction, see the <a href="/docs/zh-CN/cookbooks-compaction">Topic compaction cookbook</a>.</p>
+<p>更多topic压缩实践的指南,请参考 <a href="/docs/zh-CN/cookbooks-compaction">Topic compaction cookbook</a></p>
 </blockquote>
-<p>For some use cases consumers don't need a complete &quot;image&quot; of the topic log. They may only need a few values to construct a more &quot;shallow&quot; image of the log, perhaps even just the most recent value. For these kinds of use cases Pulsar offers <strong>topic compaction</strong>. When you run compaction on a topic, Pulsar goes through a topic's backlog and removes messages that are <em>obscured</em> by later messages, i.e. it goes through the topic on a per-key basis an [...]
-<p>Pulsar's topic compaction feature:</p>
+<p>某些情况下,consumer并不需要完整的topic日志。 他们可能只需要几个值来构造一个更 &quot;浅&quot; 的日志图像, 也许仅仅只是最近的值。 对于这种应用场景,Pulsar提供了 <strong>topic压缩</strong>. 当你在topic上执行压缩,Pulsar会遍历topic的backlog然后把遥远<em>模糊</em>已经有了更新的消息移除。例如,它遍历一个以key为基础的topic,只留下关联到key上最新的消息。</p>
+<p>Pulsar的topic压缩特性:</p>
 <ul>
-<li>Allows for faster &quot;rewind&quot; through topic logs</li>
-<li>Applies only to <a href="/docs/zh-CN/concepts-architecture-overview#persistent-storage">persistent topics</a></li>
-<li>Triggered automatically when the backlog reaches a certain size or can be triggered manually via the command line. See the <a href="/docs/zh-CN/cookbooks-compaction">Topic compaction cookbook</a></li>
-<li>Is conceptually and operationally distinct from <a href="/docs/zh-CN/concepts-messaging#message-retention-and-expiry">retention and expiry</a>. Topic compaction <em>does</em>, however, respect retention. If retention has removed a message from the message backlog of a topic, the message will also not be readable from the compacted topic ledger.</li>
+<li>允许通过主题日志更快地 &quot;后退&quot;</li>
+<li>仅适用于 <a href="/docs/zh-CN/concepts-architecture-overview#persistent-storage">持久性topic</a></li>
+<li>当backlog达到一定大小时,可以被自动出发,或者通过命令行手动出发。请参见<a href="/docs/zh-CN/cookbooks-compaction">Topic compaction cookbook</a></li>
+<li>在概念上和操作上与<a href="/docs/zh-CN/concepts-messaging#message-retention-and-expiry"> retention和expiry </a>是不同的。 但是,在topic压缩中,还是<em>会</em>尊重retention。 如果retention已经从topic的backlog中移除了消息,那么此条消息在压缩的topic账簿上也是无法被读取的。</li>
 </ul>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="topic-compaction-example-the-stock-ticker"></a><a href="#topic-compaction-example-the-stock-ticker" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1  [...]
-<p>An example use case for a compacted Pulsar topic would be a stock ticker topic. On a stock ticker topic, each message bears a timestamped dollar value for stocks for purchase (with the message key holding the stock symbol, e.g. <code>AAPL</code> or <code>GOOG</code>). With a stock ticker you may care only about the most recent value(s) of the stock and have no interest in historical data (i.e. you don't need to construct a complete image of the topic's sequence of messages per key). C [...]
+<h4><a class="anchor" aria-hidden="true" id="topic压缩示例-股票报价机"></a><a href="#topic压缩示例-股票报价机" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
+<p>Pulsar topic压缩的一个使用例子,可以看一下股票报价机topic。 在股票报价机topic中,每条消息都有带有时间戳的股票买入价格(包含代表股票符号的消息key,例如<code>AAPL</code>或者<code>GOOG</code>)。 可能你感兴趣的只是股票报价机中最新的股票价格,而对历史数据并不感兴趣(即你不需要构建topic每个key下消息序列的完整图像)。 压缩在这种场景下非常的方便,因为它使得用户不需回退到模糊的消息上。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="how-topic-compaction-works"></a><a href="#how-topic-compaction-works" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H [...]
-<p>When topic compaction is triggered <a href="/docs/zh-CN/cookbooks-compaction">via the CLI</a>, Pulsar will iterate over the entire topic from beginning to end. For each key that it encounters the compaction routine will keep a record of the latest occurrence of that key.</p>
-<p>After that, the broker will create a new <a href="/docs/zh-CN/concepts-architecture-overview#ledgers">BookKeeper ledger</a> and make a second iteration through each message on the topic. For each message, if the key matches the latest occurrence of that key, then the key's data payload, message ID, and metadata will be written to the newly created ledger. If the key doesn't match the latest then the message will be skipped and left alone. If any given message has an empty payload, it  [...]
-<p>After the initial compaction operation, the Pulsar <a href="/docs/zh-CN/reference-terminology#broker">broker</a> that owns the topic is notified whenever any future changes are made to the compaction horizon and compacted backlog. When such changes occur:</p>
+<h2><a class="anchor" aria-hidden="true" id="topic压缩的工作原理"></a><a href="#topic压缩的工作原理" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
+<p>当<a href="/docs/zh-CN/cookbooks-compaction">通过命令行</a>触发topic压缩,Pulsar将会从头到尾迭代整个topic。 对于它碰到的每个key,压缩程序将会只保留这个key最近的事件。</p>
+<p>之后,broker将会创建一个新的<a href="/docs/zh-CN/concepts-architecture-overview#ledgers">BookKeeper ledger</a> 然后开始对topic的每条消息进行第二次迭代。 对于每条消息,如果key匹配到它的最新事件,key的数据内容,消息ID,元数据将会被写入最新创建的ledger。 如果key并没有匹配到最新的消息,消息将被跳过。 如果给定的消息,负载是空的,它将被跳过并且视为删除(类似key-value数据库中的 <a href="https://en.wikipedia.org/wiki/Tombstone_(data_store)">tombstones</a>概念); 在本topic第二次迭代结束时,新创建的BookKeeper ledger将被关闭,并将两个内容写入元数据 :BookKeeper ledger的ID及最新被压缩的消息的ID(这被称为topic的<strong>压缩层位</strong>)。 写入元数据后,压缩就完成了。</p>
+<p>初始化压缩操作完成后,将来任何对压缩层位及压缩backlog的修改,都会通知给拥有该topic的Pulsar <a href="/docs/zh-CN/reference-terminology#broker">broker</a>。 当下列更改发生时:</p>
 <ul>
-<li>Clients (consumers and readers) that have read compacted enabled will attempt to read messages from a topic and either:
+<li>启用读取压缩功能的客户端(consumer和reader),将会尝试从topic中读取消息,或者:
 <ul>
-<li>Read from the topic like normal (if the message ID is greater than or equal to the compaction horizon) or</li>
-<li>Read beginning at the compaction horizon (if the message ID is lower than the compaction horizon)</li>
+<li>像从正常的主题那样读取(如果消息的ID大于等于压缩层位),或</li>
+<li>从压缩层位的开始读取(如果消息ID小于压缩层位)</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/concepts-authentication"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/concepts-tiered-storage"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#how-topic-compaction-works">How topic compaction works</a></li></ul></nav></div><footer class [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/concepts-authentication"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/concepts-tiered-storage"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#topic压缩的工作原理">Topic压缩的工作原理</a></li></ul></nav></div><footer class="nav-footer" id="footer"><s [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/deploy-bare-metal-multi-cluster.html b/content/docs/zh-CN/deploy-bare-metal-multi-cluster.html
index 274af63..aad1723 100644
--- a/content/docs/zh-CN/deploy-bare-metal-multi-cluster.html
+++ b/content/docs/zh-CN/deploy-bare-metal-multi-cluster.html
@@ -194,11 +194,11 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.2.0
 </code></pre>
 <p>As you can see from the example above, the following needs to be specified:</p>
 <ul>
-<li>The name of the cluster</li>
-<li>The local ZooKeeper connection string for the cluster</li>
+<li>集群的名称</li>
+<li>集群对本地zookeeper的连接串</li>
 <li>The configuration store connection string for the entire instance</li>
-<li>The web service URL for the cluster</li>
-<li>A broker service URL enabling interaction with the <a href="/docs/zh-CN/reference-terminology#broker">brokers</a> in the cluster</li>
+<li>集群的web服务URL</li>
+<li>Broker服务的URL,来开启和集群中<a href="/docs/zh-CN/reference-terminology#broker">broker</a>的交互</li>
 </ul>
 <p>If you're using <a href="/docs/zh-CN/security-tls-transport">TLS</a>, you'll also need to specify a TLS web service URL for the cluster as well as a TLS broker service URL for the brokers in the cluster.</p>
 <p>Make sure to run <code>initialize-cluster-metadata</code> for each cluster in your instance.</p>
diff --git a/content/docs/zh-CN/deploy-bare-metal-multi-cluster/index.html b/content/docs/zh-CN/deploy-bare-metal-multi-cluster/index.html
index 274af63..aad1723 100644
--- a/content/docs/zh-CN/deploy-bare-metal-multi-cluster/index.html
+++ b/content/docs/zh-CN/deploy-bare-metal-multi-cluster/index.html
@@ -194,11 +194,11 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.2.0
 </code></pre>
 <p>As you can see from the example above, the following needs to be specified:</p>
 <ul>
-<li>The name of the cluster</li>
-<li>The local ZooKeeper connection string for the cluster</li>
+<li>集群的名称</li>
+<li>集群对本地zookeeper的连接串</li>
 <li>The configuration store connection string for the entire instance</li>
-<li>The web service URL for the cluster</li>
-<li>A broker service URL enabling interaction with the <a href="/docs/zh-CN/reference-terminology#broker">brokers</a> in the cluster</li>
+<li>集群的web服务URL</li>
+<li>Broker服务的URL,来开启和集群中<a href="/docs/zh-CN/reference-terminology#broker">broker</a>的交互</li>
 </ul>
 <p>If you're using <a href="/docs/zh-CN/security-tls-transport">TLS</a>, you'll also need to specify a TLS web service URL for the cluster as well as a TLS broker service URL for the brokers in the cluster.</p>
 <p>Make sure to run <code>initialize-cluster-metadata</code> for each cluster in your instance.</p>
diff --git a/content/docs/zh-CN/deploy-kubernetes.html b/content/docs/zh-CN/deploy-kubernetes.html
index a7edcee..d40e675 100644
--- a/content/docs/zh-CN/deploy-kubernetes.html
+++ b/content/docs/zh-CN/deploy-kubernetes.html
@@ -170,7 +170,7 @@ zk-1      1/1       Running            0          17m
 zk-2      0/1       Running            6          15m
 </code></pre>
 <p>This step may take several minutes, as Kubernetes needs to download the Docker image on the VMs.</p>
-<h3><a class="anchor" aria-hidden="true" id="initialize-cluster-metadata"></a><a href="#initialize-cluster-metadata" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 1 [...]
+<h3><a class="anchor" aria-hidden="true" id="初始化集群元数据"></a><a href="#初始化集群元数据" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
 <p>Once ZooKeeper is running, you need to <a href="#cluster-metadata-initialization">initialize the metadata</a> for the Pulsar cluster in ZooKeeper. This includes system metadata for <a href="/docs/zh-CN/reference-terminology#bookkeeper">BookKeeper</a> and Pulsar more broadly. There is a Kubernetes <a href="https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/">job</a> in the <code>cluster-metadata.yaml</code> file that you only need to run once:</p>
 <pre><code class="hljs css language-bash">$ kubectl apply -f cluster-metadata.yaml
 </code></pre>
@@ -300,7 +300,7 @@ helm install --values pulsar/values-mini.yaml ./pulsar</p></li>
 <li>Web service url: <code>http://$(minikube ip):30001/</code></li>
 <li>Pulsar service url: <code>pulsar://$(minikube ip):30002/</code></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/deploy-aws"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/deploy-bare-metal"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#setup">Setup</a></li><li><a href="#pulsar-on-google-kubernetes-engine">Pulsar on Google Kubernetes Engine</a><ul [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/deploy-aws"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/deploy-bare-metal"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#setup">Setup</a></li><li><a href="#pulsar-on-google-kubernetes-engine">Pulsar on Google Kubernetes Engine</a><ul [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/deploy-kubernetes/index.html b/content/docs/zh-CN/deploy-kubernetes/index.html
index a7edcee..d40e675 100644
--- a/content/docs/zh-CN/deploy-kubernetes/index.html
+++ b/content/docs/zh-CN/deploy-kubernetes/index.html
@@ -170,7 +170,7 @@ zk-1      1/1       Running            0          17m
 zk-2      0/1       Running            6          15m
 </code></pre>
 <p>This step may take several minutes, as Kubernetes needs to download the Docker image on the VMs.</p>
-<h3><a class="anchor" aria-hidden="true" id="initialize-cluster-metadata"></a><a href="#initialize-cluster-metadata" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 1 [...]
+<h3><a class="anchor" aria-hidden="true" id="初始化集群元数据"></a><a href="#初始化集群元数据" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
 <p>Once ZooKeeper is running, you need to <a href="#cluster-metadata-initialization">initialize the metadata</a> for the Pulsar cluster in ZooKeeper. This includes system metadata for <a href="/docs/zh-CN/reference-terminology#bookkeeper">BookKeeper</a> and Pulsar more broadly. There is a Kubernetes <a href="https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/">job</a> in the <code>cluster-metadata.yaml</code> file that you only need to run once:</p>
 <pre><code class="hljs css language-bash">$ kubectl apply -f cluster-metadata.yaml
 </code></pre>
@@ -300,7 +300,7 @@ helm install --values pulsar/values-mini.yaml ./pulsar</p></li>
 <li>Web service url: <code>http://$(minikube ip):30001/</code></li>
 <li>Pulsar service url: <code>pulsar://$(minikube ip):30002/</code></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/deploy-aws"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/deploy-bare-metal"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#setup">Setup</a></li><li><a href="#pulsar-on-google-kubernetes-engine">Pulsar on Google Kubernetes Engine</a><ul [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/deploy-aws"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/deploy-bare-metal"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#setup">Setup</a></li><li><a href="#pulsar-on-google-kubernetes-engine">Pulsar on Google Kubernetes Engine</a><ul [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/next/admin-api-clusters.html b/content/docs/zh-CN/next/admin-api-clusters.html
index d3ea965..d1b8dc4 100644
--- a/content/docs/zh-CN/next/admin-api-clusters.html
+++ b/content/docs/zh-CN/next/admin-api-clusters.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Clusters · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar clusters consist of one or more Pulsar [brokers](/docs/zh-CN/next/reference-terminology#broker), one or more [BookKeeper](/docs/zh-CN/next/reference-terminology#bookkeeper) servers (aka [bo [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Clusters · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar集群的构成有,一个或多个pulsar[broker](/docs/zh-CN/next/reference-terminology#broker),一个或多个 [BookKeeper](/docs/zh-CN/next/reference-terminology#bookkeeper)服务器 也称为 [bookie](/docs/zh-CN/next/reference-ter [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -45,23 +45,23 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Managing Clusters</h1></header><article><div><span><p>Pulsar clusters consist of one or more Pulsar <a href="/docs/zh-CN/next/reference-terminology#broker">brokers</a>, one [...]
-<p>Clusters can be managed via:</p>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Managing Clusters</h1></header><article><div><span><p>Pulsar集群的构成有,一个或多个pulsar<a href="/docs/zh-CN/next/reference-terminology#broker">broker</a>,一个或多个 <a href="/docs/zh-CN/ [...]
+<p>集群可以通过如下几种方式管理:</p>
 <ul>
-<li>The <a href="/docs/zh-CN/next/pulsar-admin#clusters"><code>clusters</code></a> command of the <a href="/docs/zh-CN/next/pulsar-admin"><code>pulsar-admin</code></a> tool</li>
-<li>The <code>/admin/v2/clusters</code> endpoint of the admin <a href="https://pulsar.incubator.apache.org/en/admin-rest-api#/">REST</a>
+<li><a href="/docs/zh-CN/next/pulsar-admin"><code>pulsar-admin</code></a>工具的<a href="/docs/zh-CN/next/pulsar-admin#clusters"><code>clusters</code></a>命令</li>
+<li><code>/admin/v2/clusters</code> admin的endpoint <a href="https://pulsar.incubator.apache.org/en/admin-rest-api#/">REST</a>
  API</li>
-<li>The <code>clusters</code> method of the <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdmin">PulsarAdmin</a>
- object in the <a href="/docs/zh-CN/next/client-libraries-java">Java API</a></li>
+<li><a href="/docs/zh-CN/next/client-libraries-java">Java API</a>中<a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdmin">PulsarAdmin</a>
+ 对象的 <code>clusters</code>方法</li>
 </ul>
-<h2><a class="anchor" aria-hidden="true" id="clusters-resources"></a><a href="#clusters-resources" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
-<h3><a class="anchor" aria-hidden="true" id="provision"></a><a href="#provision" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<p>New clusters can be provisioned using the admin interface.</p>
+<h2><a class="anchor" aria-hidden="true" id="集群资源"></a><a href="#集群资源" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<h3><a class="anchor" aria-hidden="true" id="提供"></a><a href="#提供" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>新的集群可以通过admin接口提供。</p>
 <blockquote>
-<p>Please note that this operation requires superuser privileges.</p>
+<p>请注意这个操作需要超级用户权限</p>
 </blockquote>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>You can provision a new cluster using the <a href="/docs/zh-CN/next/pulsar-admin#clusters-create"><code>create</code></a> subcommand. Here's an example:</p>
+<p>你可以使用<a href="/docs/zh-CN/next/pulsar-admin#clusters-create"><code>create</code></a>子命令设置新的集群。下面是一个示例:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin clusters create cluster-1 \</span>
   --url http://my-cluster.org.com:8080 \
   --broker-url pulsar://my-cluster.org.com:6650
@@ -78,21 +78,21 @@
 );
 admin.clusters().createCluster(clusterName, clusterData);
 </code></pre>
-<h3><a class="anchor" aria-hidden="true" id="initialize-cluster-metadata"></a><a href="#initialize-cluster-metadata" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 1 [...]
-<p>When provision a new cluster, you need to initialize that cluster's <a href="/docs/zh-CN/next/concepts-architecture-overview#metadata-store">metadata</a>. When initializing cluster metadata, you need to specify all of the following:</p>
+<h3><a class="anchor" aria-hidden="true" id="初始化集群元数据"></a><a href="#初始化集群元数据" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
+<p>当准备新的集群,你需要初始化集群的<a href="/docs/zh-CN/next/concepts-architecture-overview#metadata-store">元数据</a> 当初始化集群元数据,你需要指定下面这些项:</p>
 <ul>
-<li>The name of the cluster</li>
-<li>The local ZooKeeper connection string for the cluster</li>
-<li>The global ZooKeeper connection string for the entire instance</li>
-<li>The web service URL for the cluster</li>
-<li>A broker service URL enabling interaction with the <a href="/docs/zh-CN/next/reference-terminology#broker">brokers</a> in the cluster</li>
+<li>集群的名称</li>
+<li>集群对本地zookeeper的连接串</li>
+<li>整个实例全局的ZooKeeper连接串</li>
+<li>集群的web服务URL</li>
+<li>Broker服务的URL,来开启和集群中<a href="/docs/zh-CN/next/reference-terminology#broker">broker</a>的交互</li>
 </ul>
-<p>You must initialize cluster metadata <em>before</em> starting up any <a href="/docs/zh-CN/next/admin-api-brokers">brokers</a> that will belong to the cluster.</p>
+<p>在你启动集群中任意一个<a href="/docs/zh-CN/next/admin-api-brokers">broker</a><em>前</em>,你必须要初始化集群元数据。</p>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="no-cluster-metadata-initialization-through-the-rest-api-or-the-java-admin-api"></a><a href="#no-cluster-metadata-initialization-through-the-rest-api-or-the-java-admin-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.2 [...]
-<p>Unlike most other admin functions in Pulsar, cluster metadata initialization cannot be performed via the admin REST API or the admin Java client, as metadata initialization involves communicating with ZooKeeper directly. Instead, you can use the <a href="/docs/zh-CN/next/reference-cli-tools#pulsar"><code>pulsar</code></a> CLI tool, in particular the <a href="/docs/zh-CN/next/reference-cli-tools#pulsar-initialize-cluster-metadata"><code>initialize-cluster-metadata</code></a> command.</p>
+<h4><a class="anchor" aria-hidden="true" id="通过rest-api或者java-admin-api-并不能集群原数据初始化"></a><a href="#通过rest-api或者java-admin-api-并不能集群原数据初始化" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1. [...]
+<p>和Pulsar其他的admin功能不一样,集群元数据初始化不能通过admin REST API执行。 但是你可以使用 <a href="/docs/zh-CN/next/reference-cli-tools#pulsar"><code>pulsar</code></a> CLI工具,执行指定的<a href="/docs/zh-CN/next/reference-cli-tools#pulsar-initialize-cluster-metadata"><code>initialize-cluster-metadata</code></a>命令</p>
 </blockquote>
-<p>Here's an example cluster metadata initialization command:</p>
+<p>下面是集群元数据初始化命令的例子:</p>
 <pre><code class="hljs css language-shell">bin/pulsar initialize-cluster-metadata \
   --cluster us-west \
   --zookeeper zk1.us-west.example.com:2181 \
@@ -102,7 +102,7 @@ admin.clusters().createCluster(clusterName, clusterData);
   --broker-service-url pulsar://pulsar.us-west.example.com:6650/ \
   --broker-service-url-tls pulsar+ssl://pulsar.us-west.example.com:6651/
 </code></pre>
-<p>You'll need to use <code>--*-tls</code> flags only if you're using <a href="/docs/zh-CN/next/security-tls-authentication">TLS authentication</a> in your instance.</p>
+<p>你需要仅使用<code>--*-tls</code>标记,如果你正在你的实例中使用 <a href="/docs/zh-CN/next/security-tls-authentication">TLS authentication</a>。</p>
 <h3><a class="anchor" aria-hidden="true" id="get-configuration"></a><a href="#get-configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
 <p>You can fetch the <a href="/docs/zh-CN/next/reference-configuration">configuration</a> for an existing cluster at any time.</p>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-1"></a><a href="#pulsar-admin-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
@@ -180,7 +180,7 @@ cluster-2
 <h4><a class="anchor" aria-hidden="true" id="java-5"></a><a href="#java-5" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.clusters().updatePeerClusterNames(clusterName, peerClusterList);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/admin-api-overview"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/next/admin-api-tenants"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#clusters-resources">Clusters resources</a><ul class="toc-headings"><li><a href="#provision">Pr [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/admin-api-overview"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/next/admin-api-tenants"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#集群资源">集群资源</a><ul class="toc-headings"><li><a href="#提供">提供</a></li><li><a href="#初始化集群元数据">初始 [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/next/admin-api-clusters/index.html b/content/docs/zh-CN/next/admin-api-clusters/index.html
index d3ea965..d1b8dc4 100644
--- a/content/docs/zh-CN/next/admin-api-clusters/index.html
+++ b/content/docs/zh-CN/next/admin-api-clusters/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Clusters · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar clusters consist of one or more Pulsar [brokers](/docs/zh-CN/next/reference-terminology#broker), one or more [BookKeeper](/docs/zh-CN/next/reference-terminology#bookkeeper) servers (aka [bo [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Clusters · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar集群的构成有,一个或多个pulsar[broker](/docs/zh-CN/next/reference-terminology#broker),一个或多个 [BookKeeper](/docs/zh-CN/next/reference-terminology#bookkeeper)服务器 也称为 [bookie](/docs/zh-CN/next/reference-ter [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -45,23 +45,23 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Managing Clusters</h1></header><article><div><span><p>Pulsar clusters consist of one or more Pulsar <a href="/docs/zh-CN/next/reference-terminology#broker">brokers</a>, one [...]
-<p>Clusters can be managed via:</p>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Managing Clusters</h1></header><article><div><span><p>Pulsar集群的构成有,一个或多个pulsar<a href="/docs/zh-CN/next/reference-terminology#broker">broker</a>,一个或多个 <a href="/docs/zh-CN/ [...]
+<p>集群可以通过如下几种方式管理:</p>
 <ul>
-<li>The <a href="/docs/zh-CN/next/pulsar-admin#clusters"><code>clusters</code></a> command of the <a href="/docs/zh-CN/next/pulsar-admin"><code>pulsar-admin</code></a> tool</li>
-<li>The <code>/admin/v2/clusters</code> endpoint of the admin <a href="https://pulsar.incubator.apache.org/en/admin-rest-api#/">REST</a>
+<li><a href="/docs/zh-CN/next/pulsar-admin"><code>pulsar-admin</code></a>工具的<a href="/docs/zh-CN/next/pulsar-admin#clusters"><code>clusters</code></a>命令</li>
+<li><code>/admin/v2/clusters</code> admin的endpoint <a href="https://pulsar.incubator.apache.org/en/admin-rest-api#/">REST</a>
  API</li>
-<li>The <code>clusters</code> method of the <a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdmin">PulsarAdmin</a>
- object in the <a href="/docs/zh-CN/next/client-libraries-java">Java API</a></li>
+<li><a href="/docs/zh-CN/next/client-libraries-java">Java API</a>中<a href="https://pulsar.incubator.apache.org/api/admin/org/apache/pulsar/client/admin/PulsarAdmin">PulsarAdmin</a>
+ 对象的 <code>clusters</code>方法</li>
 </ul>
-<h2><a class="anchor" aria-hidden="true" id="clusters-resources"></a><a href="#clusters-resources" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
-<h3><a class="anchor" aria-hidden="true" id="provision"></a><a href="#provision" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.6 [...]
-<p>New clusters can be provisioned using the admin interface.</p>
+<h2><a class="anchor" aria-hidden="true" id="集群资源"></a><a href="#集群资源" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
+<h3><a class="anchor" aria-hidden="true" id="提供"></a><a href="#提供" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>新的集群可以通过admin接口提供。</p>
 <blockquote>
-<p>Please note that this operation requires superuser privileges.</p>
+<p>请注意这个操作需要超级用户权限</p>
 </blockquote>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>You can provision a new cluster using the <a href="/docs/zh-CN/next/pulsar-admin#clusters-create"><code>create</code></a> subcommand. Here's an example:</p>
+<p>你可以使用<a href="/docs/zh-CN/next/pulsar-admin#clusters-create"><code>create</code></a>子命令设置新的集群。下面是一个示例:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin clusters create cluster-1 \</span>
   --url http://my-cluster.org.com:8080 \
   --broker-url pulsar://my-cluster.org.com:6650
@@ -78,21 +78,21 @@
 );
 admin.clusters().createCluster(clusterName, clusterData);
 </code></pre>
-<h3><a class="anchor" aria-hidden="true" id="initialize-cluster-metadata"></a><a href="#initialize-cluster-metadata" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 1 [...]
-<p>When provision a new cluster, you need to initialize that cluster's <a href="/docs/zh-CN/next/concepts-architecture-overview#metadata-store">metadata</a>. When initializing cluster metadata, you need to specify all of the following:</p>
+<h3><a class="anchor" aria-hidden="true" id="初始化集群元数据"></a><a href="#初始化集群元数据" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
+<p>当准备新的集群,你需要初始化集群的<a href="/docs/zh-CN/next/concepts-architecture-overview#metadata-store">元数据</a> 当初始化集群元数据,你需要指定下面这些项:</p>
 <ul>
-<li>The name of the cluster</li>
-<li>The local ZooKeeper connection string for the cluster</li>
-<li>The global ZooKeeper connection string for the entire instance</li>
-<li>The web service URL for the cluster</li>
-<li>A broker service URL enabling interaction with the <a href="/docs/zh-CN/next/reference-terminology#broker">brokers</a> in the cluster</li>
+<li>集群的名称</li>
+<li>集群对本地zookeeper的连接串</li>
+<li>整个实例全局的ZooKeeper连接串</li>
+<li>集群的web服务URL</li>
+<li>Broker服务的URL,来开启和集群中<a href="/docs/zh-CN/next/reference-terminology#broker">broker</a>的交互</li>
 </ul>
-<p>You must initialize cluster metadata <em>before</em> starting up any <a href="/docs/zh-CN/next/admin-api-brokers">brokers</a> that will belong to the cluster.</p>
+<p>在你启动集群中任意一个<a href="/docs/zh-CN/next/admin-api-brokers">broker</a><em>前</em>,你必须要初始化集群元数据。</p>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="no-cluster-metadata-initialization-through-the-rest-api-or-the-java-admin-api"></a><a href="#no-cluster-metadata-initialization-through-the-rest-api-or-the-java-admin-api" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.2 [...]
-<p>Unlike most other admin functions in Pulsar, cluster metadata initialization cannot be performed via the admin REST API or the admin Java client, as metadata initialization involves communicating with ZooKeeper directly. Instead, you can use the <a href="/docs/zh-CN/next/reference-cli-tools#pulsar"><code>pulsar</code></a> CLI tool, in particular the <a href="/docs/zh-CN/next/reference-cli-tools#pulsar-initialize-cluster-metadata"><code>initialize-cluster-metadata</code></a> command.</p>
+<h4><a class="anchor" aria-hidden="true" id="通过rest-api或者java-admin-api-并不能集群原数据初始化"></a><a href="#通过rest-api或者java-admin-api-并不能集群原数据初始化" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1. [...]
+<p>和Pulsar其他的admin功能不一样,集群元数据初始化不能通过admin REST API执行。 但是你可以使用 <a href="/docs/zh-CN/next/reference-cli-tools#pulsar"><code>pulsar</code></a> CLI工具,执行指定的<a href="/docs/zh-CN/next/reference-cli-tools#pulsar-initialize-cluster-metadata"><code>initialize-cluster-metadata</code></a>命令</p>
 </blockquote>
-<p>Here's an example cluster metadata initialization command:</p>
+<p>下面是集群元数据初始化命令的例子:</p>
 <pre><code class="hljs css language-shell">bin/pulsar initialize-cluster-metadata \
   --cluster us-west \
   --zookeeper zk1.us-west.example.com:2181 \
@@ -102,7 +102,7 @@ admin.clusters().createCluster(clusterName, clusterData);
   --broker-service-url pulsar://pulsar.us-west.example.com:6650/ \
   --broker-service-url-tls pulsar+ssl://pulsar.us-west.example.com:6651/
 </code></pre>
-<p>You'll need to use <code>--*-tls</code> flags only if you're using <a href="/docs/zh-CN/next/security-tls-authentication">TLS authentication</a> in your instance.</p>
+<p>你需要仅使用<code>--*-tls</code>标记,如果你正在你的实例中使用 <a href="/docs/zh-CN/next/security-tls-authentication">TLS authentication</a>。</p>
 <h3><a class="anchor" aria-hidden="true" id="get-configuration"></a><a href="#get-configuration" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
 <p>You can fetch the <a href="/docs/zh-CN/next/reference-configuration">configuration</a> for an existing cluster at any time.</p>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-1"></a><a href="#pulsar-admin-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
@@ -180,7 +180,7 @@ cluster-2
 <h4><a class="anchor" aria-hidden="true" id="java-5"></a><a href="#java-5" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.clusters().updatePeerClusterNames(clusterName, peerClusterList);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/admin-api-overview"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/next/admin-api-tenants"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#clusters-resources">Clusters resources</a><ul class="toc-headings"><li><a href="#provision">Pr [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/admin-api-overview"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/next/admin-api-tenants"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#集群资源">集群资源</a><ul class="toc-headings"><li><a href="#提供">提供</a></li><li><a href="#初始化集群元数据">初始 [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/next/concepts-architecture-overview.html b/content/docs/zh-CN/next/concepts-architecture-overview.html
index cc93699..cc7708d 100644
--- a/content/docs/zh-CN/next/concepts-architecture-overview.html
+++ b/content/docs/zh-CN/next/concepts-architecture-overview.html
@@ -67,7 +67,7 @@
 <blockquote>
 <p>For a guide to managing Pulsar brokers, see the <a href="/docs/zh-CN/next/admin-api-brokers">brokers</a> guide.</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="clusters"></a><a href="#clusters" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
+<h2><a class="anchor" aria-hidden="true" id="集群"></a><a href="#集群" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <p>A Pulsar instance consists of one or more Pulsar <em>clusters</em>. Clusters, in turn, consist of:</p>
 <ul>
 <li>One or more Pulsar <a href="#brokers">brokers</a></li>
@@ -154,7 +154,7 @@
 
 client = Client(<span class="hljs-string">'pulsar://pulsar-cluster.acme.com:6650'</span>)
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/concepts-messaging"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/next/concepts-clients"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#brokers">Brokers</a></li><li><a href="#clusters">Clusters</a></li><li><a href="#metadata-store" [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/concepts-messaging"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/next/concepts-clients"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#brokers">Brokers</a></li><li><a href="#集群">集群</a></li><li><a href="#metadata-store">Metadata st [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/next/concepts-architecture-overview/index.html b/content/docs/zh-CN/next/concepts-architecture-overview/index.html
index cc93699..cc7708d 100644
--- a/content/docs/zh-CN/next/concepts-architecture-overview/index.html
+++ b/content/docs/zh-CN/next/concepts-architecture-overview/index.html
@@ -67,7 +67,7 @@
 <blockquote>
 <p>For a guide to managing Pulsar brokers, see the <a href="/docs/zh-CN/next/admin-api-brokers">brokers</a> guide.</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="clusters"></a><a href="#clusters" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
+<h2><a class="anchor" aria-hidden="true" id="集群"></a><a href="#集群" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <p>A Pulsar instance consists of one or more Pulsar <em>clusters</em>. Clusters, in turn, consist of:</p>
 <ul>
 <li>One or more Pulsar <a href="#brokers">brokers</a></li>
@@ -154,7 +154,7 @@
 
 client = Client(<span class="hljs-string">'pulsar://pulsar-cluster.acme.com:6650'</span>)
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/concepts-messaging"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/next/concepts-clients"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#brokers">Brokers</a></li><li><a href="#clusters">Clusters</a></li><li><a href="#metadata-store" [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/concepts-messaging"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/next/concepts-clients"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#brokers">Brokers</a></li><li><a href="#集群">集群</a></li><li><a href="#metadata-store">Metadata st [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/next/concepts-authentication.html b/content/docs/zh-CN/next/concepts-authentication.html
index 329f041..3d0b936 100644
--- a/content/docs/zh-CN/next/concepts-authentication.html
+++ b/content/docs/zh-CN/next/concepts-authentication.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Authentication and Authorization · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar supports a pluggable [authentication](/docs/zh-CN/next/security-overview) mechanism which can be configured at broker and it also supports authorization to identify client an [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>认证和授权 · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar支持可插入的 [认证](/docs/zh-CN/next/security-overview)机制,它配置在broker上,并且支持授权,来识别客户端及它能够访问的topic和tenant"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="zh-CN"/><meta pro [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Authentication and Authorization</h1></header><article><div><span><p>Pulsar supports a pluggable <a href="/docs/zh-CN/next/security-overview">authentication</a> mechanism w [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">认证和授权</h1></header><article><div><span><p>Pulsar支持可插入的 <a href="/docs/zh-CN/next/security-overview">认证</a>机制,它配置在broker上,并且支持授权,来识别客户端及它能够访问的topic和tenant</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/concepts-multi-tenancy"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/next/concepts-topic-compaction"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Founda [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/zh-CN/next/concepts-authentication/index.html b/content/docs/zh-CN/next/concepts-authentication/index.html
index 329f041..3d0b936 100644
--- a/content/docs/zh-CN/next/concepts-authentication/index.html
+++ b/content/docs/zh-CN/next/concepts-authentication/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Authentication and Authorization · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar supports a pluggable [authentication](/docs/zh-CN/next/security-overview) mechanism which can be configured at broker and it also supports authorization to identify client an [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>认证和授权 · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar支持可插入的 [认证](/docs/zh-CN/next/security-overview)机制,它配置在broker上,并且支持授权,来识别客户端及它能够访问的topic和tenant"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="zh-CN"/><meta pro [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -45,7 +45,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Authentication and Authorization</h1></header><article><div><span><p>Pulsar supports a pluggable <a href="/docs/zh-CN/next/security-overview">authentication</a> mechanism w [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">认证和授权</h1></header><article><div><span><p>Pulsar支持可插入的 <a href="/docs/zh-CN/next/security-overview">认证</a>机制,它配置在broker上,并且支持授权,来识别客户端及它能够访问的topic和tenant</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/concepts-multi-tenancy"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/next/concepts-topic-compaction"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Founda [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/zh-CN/next/concepts-tiered-storage.html b/content/docs/zh-CN/next/concepts-tiered-storage.html
index afc9ae0..85945a5 100644
--- a/content/docs/zh-CN/next/concepts-tiered-storage.html
+++ b/content/docs/zh-CN/next/concepts-tiered-storage.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Tiered Storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar&#x27;s segment oriented architecture allows for topic backlogs to grow very large, effectively without limit. However, this can become expensive over time."/><meta name="docsearch:version" con [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Tiered Storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar面向segment的架构允许topic backlong增长的十分庞大,如果有没加以限制,随着时间的增加,代价将越来越高。"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -45,15 +45,15 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Tiered Storage</h1></header><article><div><span><p>Pulsar's segment oriented architecture allows for topic backlogs to grow very large, effectively without limit. However,  [...]
-<p>One way to alleviate this cost is to use Tiered Storage. With tiered storage, older messages in the backlog can be moved from bookkeeper to a cheaper storage mechanism, while still allowing clients to access the backlog as if nothing had changed.</p>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Tiered Storage</h1></header><article><div><span><p>Pulsar面向segment的架构允许topic backlong增长的十分庞大,如果有没加以限制,随着时间的增加,代价将越来越高。</p>
+<p>有一个减轻这个消耗的办法,那就是使用分层存储。 使用分层存储,backlog中旧的消息,将被从booKeeper转移到更低廉的存储机制中,当然还是允许客户端进入backlog,就像什么也没有发生一样。</p>
 <p><img src="/docs/assets/pulsar-tiered-storage.png" alt="Tiered Storage"></p>
 <blockquote>
-<p>Data written to bookkeeper is replicated to 3 physical machines by default. However, once a segment is sealed in bookkeeper is becomes immutable and can be copied to long term storage. Long term storage can achieve cost savings by using mechanisms such as <a href="https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction">Reed-Solomon error correction</a> to require fewer physical copies of data.</p>
+<p>写入bookKeeper的数据被默认复制到3台物理机。 但是,一旦segment在bookKeeper中被封闭,将会变成不可改变,并且可以被拷贝到长期存储中。 长期存储可以达到节省存储的目的,通过使用如 <a href="https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction">Reed-Solomon error correction</a> 的机制,以实现所需更少的数据物理备份。</p>
 </blockquote>
-<p>Pulsar currently supports S3 as a long term store. Offloading to S3 triggered via a Rest API or command line interface. The user passes in the amount of topic data they wish to retain on bookkeeper, and the broker will copy the backlog data to S3. The original data will then be deleted from bookkeeper after a configured delay (4 hours by default).</p>
+<p>Pulsar目前支持S3作为长期存储。 可以通过Rest API或者命令行接口,卸载数据到S3。 用户传入他们想要保留在bookKeeper的topic数据的数量,broker将会拷贝backlog到S3. 原始数据将在配置的延迟之后,从bookKeeper中删除(默认4小时)。</p>
 <blockquote>
-<p>For a guide for setting up tiered storage, see the <a href="/docs/zh-CN/next/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
+<p>搭建分层存储的指导,请参考 <a href="/docs/zh-CN/next/cookbooks-tiered-storage">Tiered storage cookbook</a>。</p>
 </blockquote>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/concepts-topic-compaction"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/next/concepts-schema-registry"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foun [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/zh-CN/next/concepts-tiered-storage/index.html b/content/docs/zh-CN/next/concepts-tiered-storage/index.html
index afc9ae0..85945a5 100644
--- a/content/docs/zh-CN/next/concepts-tiered-storage/index.html
+++ b/content/docs/zh-CN/next/concepts-tiered-storage/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Tiered Storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar&#x27;s segment oriented architecture allows for topic backlogs to grow very large, effectively without limit. However, this can become expensive over time."/><meta name="docsearch:version" con [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Tiered Storage · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar面向segment的架构允许topic backlong增长的十分庞大,如果有没加以限制,随着时间的增加,代价将越来越高。"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -45,15 +45,15 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Tiered Storage</h1></header><article><div><span><p>Pulsar's segment oriented architecture allows for topic backlogs to grow very large, effectively without limit. However,  [...]
-<p>One way to alleviate this cost is to use Tiered Storage. With tiered storage, older messages in the backlog can be moved from bookkeeper to a cheaper storage mechanism, while still allowing clients to access the backlog as if nothing had changed.</p>
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Tiered Storage</h1></header><article><div><span><p>Pulsar面向segment的架构允许topic backlong增长的十分庞大,如果有没加以限制,随着时间的增加,代价将越来越高。</p>
+<p>有一个减轻这个消耗的办法,那就是使用分层存储。 使用分层存储,backlog中旧的消息,将被从booKeeper转移到更低廉的存储机制中,当然还是允许客户端进入backlog,就像什么也没有发生一样。</p>
 <p><img src="/docs/assets/pulsar-tiered-storage.png" alt="Tiered Storage"></p>
 <blockquote>
-<p>Data written to bookkeeper is replicated to 3 physical machines by default. However, once a segment is sealed in bookkeeper is becomes immutable and can be copied to long term storage. Long term storage can achieve cost savings by using mechanisms such as <a href="https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction">Reed-Solomon error correction</a> to require fewer physical copies of data.</p>
+<p>写入bookKeeper的数据被默认复制到3台物理机。 但是,一旦segment在bookKeeper中被封闭,将会变成不可改变,并且可以被拷贝到长期存储中。 长期存储可以达到节省存储的目的,通过使用如 <a href="https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction">Reed-Solomon error correction</a> 的机制,以实现所需更少的数据物理备份。</p>
 </blockquote>
-<p>Pulsar currently supports S3 as a long term store. Offloading to S3 triggered via a Rest API or command line interface. The user passes in the amount of topic data they wish to retain on bookkeeper, and the broker will copy the backlog data to S3. The original data will then be deleted from bookkeeper after a configured delay (4 hours by default).</p>
+<p>Pulsar目前支持S3作为长期存储。 可以通过Rest API或者命令行接口,卸载数据到S3。 用户传入他们想要保留在bookKeeper的topic数据的数量,broker将会拷贝backlog到S3. 原始数据将在配置的延迟之后,从bookKeeper中删除(默认4小时)。</p>
 <blockquote>
-<p>For a guide for setting up tiered storage, see the <a href="/docs/zh-CN/next/cookbooks-tiered-storage">Tiered storage cookbook</a>.</p>
+<p>搭建分层存储的指导,请参考 <a href="/docs/zh-CN/next/cookbooks-tiered-storage">Tiered storage cookbook</a>。</p>
 </blockquote>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/concepts-topic-compaction"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/next/concepts-schema-registry"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"></nav></div><footer class="nav-footer" id="footer"><section class="copyright">Copyright © 2018 The Apache Software Foun [...]
       const community = document.querySelector("a[href='#community']").parentNode;
diff --git a/content/docs/zh-CN/next/concepts-topic-compaction.html b/content/docs/zh-CN/next/concepts-topic-compaction.html
index ed68494..5840438 100644
--- a/content/docs/zh-CN/next/concepts-topic-compaction.html
+++ b/content/docs/zh-CN/next/concepts-topic-compaction.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>消息压缩 · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar was built with highly scalable [persistent storage](/docs/zh-CN/next/concepts-architecture-overview#persistent-storage) of message data as a primary objective. Pulsar topics enable you to persistently s [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>消息压缩 · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar是带着消息数据高可扩展的[持久存储](/docs/zh-CN/next/concepts-architecture-overview#persistent-storage)为主要目标去构建的。 Pulsar的topic让你可以持久存储你所需要的这么多未被确认的消息,同时保留了消息的顺序。 默认的,Pulsar存储生产到主题上*所有*未被确认/未被处理的消息。 在很多Pulsar的使用案例中,在topic [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -45,34 +45,34 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">消息压缩</h1></header><article><div><span><p>Pulsar was built with highly scalable <a href="/docs/zh-CN/next/concepts-architecture-overview#persistent-storage">persistent stora [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">消息压缩</h1></header><article><div><span><p>Pulsar是带着消息数据高可扩展的<a href="/docs/zh-CN/next/concepts-architecture-overview#persistent-storage">持久存储</a>为主要目标去构建的。 Pulsar的topic让你可以持 [...]
 <blockquote>
-<p>For a more practical guide to topic compaction, see the <a href="/docs/zh-CN/next/cookbooks-compaction">Topic compaction cookbook</a>.</p>
+<p>更多topic压缩实践的指南,请参考 <a href="/docs/zh-CN/next/cookbooks-compaction">Topic compaction cookbook</a></p>
 </blockquote>
-<p>For some use cases consumers don't need a complete &quot;image&quot; of the topic log. They may only need a few values to construct a more &quot;shallow&quot; image of the log, perhaps even just the most recent value. For these kinds of use cases Pulsar offers <strong>topic compaction</strong>. When you run compaction on a topic, Pulsar goes through a topic's backlog and removes messages that are <em>obscured</em> by later messages, i.e. it goes through the topic on a per-key basis an [...]
-<p>Pulsar's topic compaction feature:</p>
+<p>某些情况下,consumer并不需要完整的topic日志。 他们可能只需要几个值来构造一个更 &quot;浅&quot; 的日志图像, 也许仅仅只是最近的值。 对于这种应用场景,Pulsar提供了 <strong>topic压缩</strong>. 当你在topic上执行压缩,Pulsar会遍历topic的backlog然后把遥远<em>模糊</em>已经有了更新的消息移除。例如,它遍历一个以key为基础的topic,只留下关联到key上最新的消息。</p>
+<p>Pulsar的topic压缩特性:</p>
 <ul>
-<li>Allows for faster &quot;rewind&quot; through topic logs</li>
-<li>Applies only to <a href="/docs/zh-CN/next/concepts-architecture-overview#persistent-storage">persistent topics</a></li>
-<li>Triggered automatically when the backlog reaches a certain size or can be triggered manually via the command line. See the <a href="/docs/zh-CN/next/cookbooks-compaction">Topic compaction cookbook</a></li>
-<li>Is conceptually and operationally distinct from <a href="/docs/zh-CN/next/concepts-messaging#message-retention-and-expiry">retention and expiry</a>. Topic compaction <em>does</em>, however, respect retention. If retention has removed a message from the message backlog of a topic, the message will also not be readable from the compacted topic ledger.</li>
+<li>允许通过主题日志更快地 &quot;后退&quot;</li>
+<li>仅适用于 <a href="/docs/zh-CN/next/concepts-architecture-overview#persistent-storage">持久性topic</a></li>
+<li>当backlog达到一定大小时,可以被自动出发,或者通过命令行手动出发。请参见<a href="/docs/zh-CN/next/cookbooks-compaction">Topic compaction cookbook</a></li>
+<li>在概念上和操作上与<a href="/docs/zh-CN/next/concepts-messaging#message-retention-and-expiry"> retention和expiry </a>是不同的。 但是,在topic压缩中,还是<em>会</em>尊重retention。 如果retention已经从topic的backlog中移除了消息,那么此条消息在压缩的topic账簿上也是无法被读取的。</li>
 </ul>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="topic-compaction-example-the-stock-ticker"></a><a href="#topic-compaction-example-the-stock-ticker" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1  [...]
-<p>An example use case for a compacted Pulsar topic would be a stock ticker topic. On a stock ticker topic, each message bears a timestamped dollar value for stocks for purchase (with the message key holding the stock symbol, e.g. <code>AAPL</code> or <code>GOOG</code>). With a stock ticker you may care only about the most recent value(s) of the stock and have no interest in historical data (i.e. you don't need to construct a complete image of the topic's sequence of messages per key). C [...]
+<h4><a class="anchor" aria-hidden="true" id="topic压缩示例-股票报价机"></a><a href="#topic压缩示例-股票报价机" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
+<p>Pulsar topic压缩的一个使用例子,可以看一下股票报价机topic。 在股票报价机topic中,每条消息都有带有时间戳的股票买入价格(包含代表股票符号的消息key,例如<code>AAPL</code>或者<code>GOOG</code>)。 可能你感兴趣的只是股票报价机中最新的股票价格,而对历史数据并不感兴趣(即你不需要构建topic每个key下消息序列的完整图像)。 压缩在这种场景下非常的方便,因为它使得用户不需回退到模糊的消息上。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="how-topic-compaction-works"></a><a href="#how-topic-compaction-works" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H [...]
-<p>When topic compaction is triggered <a href="/docs/zh-CN/next/cookbooks-compaction">via the CLI</a>, Pulsar will iterate over the entire topic from beginning to end. For each key that it encounters the compaction routine will keep a record of the latest occurrence of that key.</p>
-<p>After that, the broker will create a new <a href="/docs/zh-CN/next/concepts-architecture-overview#ledgers">BookKeeper ledger</a> and make a second iteration through each message on the topic. For each message, if the key matches the latest occurrence of that key, then the key's data payload, message ID, and metadata will be written to the newly created ledger. If the key doesn't match the latest then the message will be skipped and left alone. If any given message has an empty payload [...]
-<p>After the initial compaction operation, the Pulsar <a href="/docs/zh-CN/next/reference-terminology#broker">broker</a> that owns the topic is notified whenever any future changes are made to the compaction horizon and compacted backlog. When such changes occur:</p>
+<h2><a class="anchor" aria-hidden="true" id="topic压缩的工作原理"></a><a href="#topic压缩的工作原理" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
+<p>当<a href="/docs/zh-CN/next/cookbooks-compaction">通过命令行</a>触发topic压缩,Pulsar将会从头到尾迭代整个topic。 对于它碰到的每个key,压缩程序将会只保留这个key最近的事件。</p>
+<p>之后,broker将会创建一个新的<a href="/docs/zh-CN/next/concepts-architecture-overview#ledgers">BookKeeper ledger</a> 然后开始对topic的每条消息进行第二次迭代。 对于每条消息,如果key匹配到它的最新事件,key的数据内容,消息ID,元数据将会被写入最新创建的ledger。 如果key并没有匹配到最新的消息,消息将被跳过。 如果给定的消息,负载是空的,它将被跳过并且视为删除(类似key-value数据库中的 <a href="https://en.wikipedia.org/wiki/Tombstone_(data_store)">tombstones</a>概念); 在本topic第二次迭代结束时,新创建的BookKeeper ledger将被关闭,并将两个内容写入元数据 :BookKeeper ledger的ID及最新被压缩的消息的ID(这被称为topic的<strong>压缩层位</strong>)。 写入元数据后,压缩就完成了。</p>
+<p>初始化压缩操作完成后,将来任何对压缩层位及压缩backlog的修改,都会通知给拥有该topic的Pulsar <a href="/docs/zh-CN/next/reference-terminology#broker">broker</a>。 当下列更改发生时:</p>
 <ul>
-<li>Clients (consumers and readers) that have read compacted enabled will attempt to read messages from a topic and either:
+<li>启用读取压缩功能的客户端(consumer和reader),将会尝试从topic中读取消息,或者:
 <ul>
-<li>Read from the topic like normal (if the message ID is greater than or equal to the compaction horizon) or</li>
-<li>Read beginning at the compaction horizon (if the message ID is lower than the compaction horizon)</li>
+<li>像从正常的主题那样读取(如果消息的ID大于等于压缩层位),或</li>
+<li>从压缩层位的开始读取(如果消息ID小于压缩层位)</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/concepts-authentication"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/next/concepts-tiered-storage"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#how-topic-compaction-works">How topic compaction works</a></li></ul></nav></div><fo [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/concepts-authentication"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/next/concepts-tiered-storage"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#topic压缩的工作原理">Topic压缩的工作原理</a></li></ul></nav></div><footer class="nav-footer" id=" [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/next/concepts-topic-compaction/index.html b/content/docs/zh-CN/next/concepts-topic-compaction/index.html
index ed68494..5840438 100644
--- a/content/docs/zh-CN/next/concepts-topic-compaction/index.html
+++ b/content/docs/zh-CN/next/concepts-topic-compaction/index.html
@@ -1,4 +1,4 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>消息压缩 · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar was built with highly scalable [persistent storage](/docs/zh-CN/next/concepts-architecture-overview#persistent-storage) of message data as a primary objective. Pulsar topics enable you to persistently s [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>消息压缩 · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="Pulsar是带着消息数据高可扩展的[持久存储](/docs/zh-CN/next/concepts-architecture-overview#persistent-storage)为主要目标去构建的。 Pulsar的topic让你可以持久存储你所需要的这么多未被确认的消息,同时保留了消息的顺序。 默认的,Pulsar存储生产到主题上*所有*未被确认/未被处理的消息。 在很多Pulsar的使用案例中,在topic [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
               m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
@@ -45,34 +45,34 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">消息压缩</h1></header><article><div><span><p>Pulsar was built with highly scalable <a href="/docs/zh-CN/next/concepts-architecture-overview#persistent-storage">persistent stora [...]
+        </script></nav></div><div class="container mainContainer docMainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">消息压缩</h1></header><article><div><span><p>Pulsar是带着消息数据高可扩展的<a href="/docs/zh-CN/next/concepts-architecture-overview#persistent-storage">持久存储</a>为主要目标去构建的。 Pulsar的topic让你可以持 [...]
 <blockquote>
-<p>For a more practical guide to topic compaction, see the <a href="/docs/zh-CN/next/cookbooks-compaction">Topic compaction cookbook</a>.</p>
+<p>更多topic压缩实践的指南,请参考 <a href="/docs/zh-CN/next/cookbooks-compaction">Topic compaction cookbook</a></p>
 </blockquote>
-<p>For some use cases consumers don't need a complete &quot;image&quot; of the topic log. They may only need a few values to construct a more &quot;shallow&quot; image of the log, perhaps even just the most recent value. For these kinds of use cases Pulsar offers <strong>topic compaction</strong>. When you run compaction on a topic, Pulsar goes through a topic's backlog and removes messages that are <em>obscured</em> by later messages, i.e. it goes through the topic on a per-key basis an [...]
-<p>Pulsar's topic compaction feature:</p>
+<p>某些情况下,consumer并不需要完整的topic日志。 他们可能只需要几个值来构造一个更 &quot;浅&quot; 的日志图像, 也许仅仅只是最近的值。 对于这种应用场景,Pulsar提供了 <strong>topic压缩</strong>. 当你在topic上执行压缩,Pulsar会遍历topic的backlog然后把遥远<em>模糊</em>已经有了更新的消息移除。例如,它遍历一个以key为基础的topic,只留下关联到key上最新的消息。</p>
+<p>Pulsar的topic压缩特性:</p>
 <ul>
-<li>Allows for faster &quot;rewind&quot; through topic logs</li>
-<li>Applies only to <a href="/docs/zh-CN/next/concepts-architecture-overview#persistent-storage">persistent topics</a></li>
-<li>Triggered automatically when the backlog reaches a certain size or can be triggered manually via the command line. See the <a href="/docs/zh-CN/next/cookbooks-compaction">Topic compaction cookbook</a></li>
-<li>Is conceptually and operationally distinct from <a href="/docs/zh-CN/next/concepts-messaging#message-retention-and-expiry">retention and expiry</a>. Topic compaction <em>does</em>, however, respect retention. If retention has removed a message from the message backlog of a topic, the message will also not be readable from the compacted topic ledger.</li>
+<li>允许通过主题日志更快地 &quot;后退&quot;</li>
+<li>仅适用于 <a href="/docs/zh-CN/next/concepts-architecture-overview#persistent-storage">持久性topic</a></li>
+<li>当backlog达到一定大小时,可以被自动出发,或者通过命令行手动出发。请参见<a href="/docs/zh-CN/next/cookbooks-compaction">Topic compaction cookbook</a></li>
+<li>在概念上和操作上与<a href="/docs/zh-CN/next/concepts-messaging#message-retention-and-expiry"> retention和expiry </a>是不同的。 但是,在topic压缩中,还是<em>会</em>尊重retention。 如果retention已经从topic的backlog中移除了消息,那么此条消息在压缩的topic账簿上也是无法被读取的。</li>
 </ul>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="topic-compaction-example-the-stock-ticker"></a><a href="#topic-compaction-example-the-stock-ticker" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1  [...]
-<p>An example use case for a compacted Pulsar topic would be a stock ticker topic. On a stock ticker topic, each message bears a timestamped dollar value for stocks for purchase (with the message key holding the stock symbol, e.g. <code>AAPL</code> or <code>GOOG</code>). With a stock ticker you may care only about the most recent value(s) of the stock and have no interest in historical data (i.e. you don't need to construct a complete image of the topic's sequence of messages per key). C [...]
+<h4><a class="anchor" aria-hidden="true" id="topic压缩示例-股票报价机"></a><a href="#topic压缩示例-股票报价机" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5  [...]
+<p>Pulsar topic压缩的一个使用例子,可以看一下股票报价机topic。 在股票报价机topic中,每条消息都有带有时间戳的股票买入价格(包含代表股票符号的消息key,例如<code>AAPL</code>或者<code>GOOG</code>)。 可能你感兴趣的只是股票报价机中最新的股票价格,而对历史数据并不感兴趣(即你不需要构建topic每个key下消息序列的完整图像)。 压缩在这种场景下非常的方便,因为它使得用户不需回退到模糊的消息上。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="how-topic-compaction-works"></a><a href="#how-topic-compaction-works" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H [...]
-<p>When topic compaction is triggered <a href="/docs/zh-CN/next/cookbooks-compaction">via the CLI</a>, Pulsar will iterate over the entire topic from beginning to end. For each key that it encounters the compaction routine will keep a record of the latest occurrence of that key.</p>
-<p>After that, the broker will create a new <a href="/docs/zh-CN/next/concepts-architecture-overview#ledgers">BookKeeper ledger</a> and make a second iteration through each message on the topic. For each message, if the key matches the latest occurrence of that key, then the key's data payload, message ID, and metadata will be written to the newly created ledger. If the key doesn't match the latest then the message will be skipped and left alone. If any given message has an empty payload [...]
-<p>After the initial compaction operation, the Pulsar <a href="/docs/zh-CN/next/reference-terminology#broker">broker</a> that owns the topic is notified whenever any future changes are made to the compaction horizon and compacted backlog. When such changes occur:</p>
+<h2><a class="anchor" aria-hidden="true" id="topic压缩的工作原理"></a><a href="#topic压缩的工作原理" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
+<p>当<a href="/docs/zh-CN/next/cookbooks-compaction">通过命令行</a>触发topic压缩,Pulsar将会从头到尾迭代整个topic。 对于它碰到的每个key,压缩程序将会只保留这个key最近的事件。</p>
+<p>之后,broker将会创建一个新的<a href="/docs/zh-CN/next/concepts-architecture-overview#ledgers">BookKeeper ledger</a> 然后开始对topic的每条消息进行第二次迭代。 对于每条消息,如果key匹配到它的最新事件,key的数据内容,消息ID,元数据将会被写入最新创建的ledger。 如果key并没有匹配到最新的消息,消息将被跳过。 如果给定的消息,负载是空的,它将被跳过并且视为删除(类似key-value数据库中的 <a href="https://en.wikipedia.org/wiki/Tombstone_(data_store)">tombstones</a>概念); 在本topic第二次迭代结束时,新创建的BookKeeper ledger将被关闭,并将两个内容写入元数据 :BookKeeper ledger的ID及最新被压缩的消息的ID(这被称为topic的<strong>压缩层位</strong>)。 写入元数据后,压缩就完成了。</p>
+<p>初始化压缩操作完成后,将来任何对压缩层位及压缩backlog的修改,都会通知给拥有该topic的Pulsar <a href="/docs/zh-CN/next/reference-terminology#broker">broker</a>。 当下列更改发生时:</p>
 <ul>
-<li>Clients (consumers and readers) that have read compacted enabled will attempt to read messages from a topic and either:
+<li>启用读取压缩功能的客户端(consumer和reader),将会尝试从topic中读取消息,或者:
 <ul>
-<li>Read from the topic like normal (if the message ID is greater than or equal to the compaction horizon) or</li>
-<li>Read beginning at the compaction horizon (if the message ID is lower than the compaction horizon)</li>
+<li>像从正常的主题那样读取(如果消息的ID大于等于压缩层位),或</li>
+<li>从压缩层位的开始读取(如果消息ID小于压缩层位)</li>
 </ul></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/concepts-authentication"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/next/concepts-tiered-storage"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#how-topic-compaction-works">How topic compaction works</a></li></ul></nav></div><fo [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/concepts-authentication"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/next/concepts-tiered-storage"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#topic压缩的工作原理">Topic压缩的工作原理</a></li></ul></nav></div><footer class="nav-footer" id=" [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/next/deploy-bare-metal-multi-cluster.html b/content/docs/zh-CN/next/deploy-bare-metal-multi-cluster.html
index 101e019..45e6db4 100644
--- a/content/docs/zh-CN/next/deploy-bare-metal-multi-cluster.html
+++ b/content/docs/zh-CN/next/deploy-bare-metal-multi-cluster.html
@@ -194,11 +194,11 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.2.0
 </code></pre>
 <p>As you can see from the example above, the following needs to be specified:</p>
 <ul>
-<li>The name of the cluster</li>
-<li>The local ZooKeeper connection string for the cluster</li>
+<li>集群的名称</li>
+<li>集群对本地zookeeper的连接串</li>
 <li>The configuration store connection string for the entire instance</li>
-<li>The web service URL for the cluster</li>
-<li>A broker service URL enabling interaction with the <a href="/docs/zh-CN/next/reference-terminology#broker">brokers</a> in the cluster</li>
+<li>集群的web服务URL</li>
+<li>Broker服务的URL,来开启和集群中<a href="/docs/zh-CN/next/reference-terminology#broker">broker</a>的交互</li>
 </ul>
 <p>If you're using <a href="/docs/zh-CN/next/security-tls-transport">TLS</a>, you'll also need to specify a TLS web service URL for the cluster as well as a TLS broker service URL for the brokers in the cluster.</p>
 <p>Make sure to run <code>initialize-cluster-metadata</code> for each cluster in your instance.</p>
diff --git a/content/docs/zh-CN/next/deploy-bare-metal-multi-cluster/index.html b/content/docs/zh-CN/next/deploy-bare-metal-multi-cluster/index.html
index 101e019..45e6db4 100644
--- a/content/docs/zh-CN/next/deploy-bare-metal-multi-cluster/index.html
+++ b/content/docs/zh-CN/next/deploy-bare-metal-multi-cluster/index.html
@@ -194,11 +194,11 @@ $ <span class="hljs-built_in">cd</span> apache-pulsar-2.2.0
 </code></pre>
 <p>As you can see from the example above, the following needs to be specified:</p>
 <ul>
-<li>The name of the cluster</li>
-<li>The local ZooKeeper connection string for the cluster</li>
+<li>集群的名称</li>
+<li>集群对本地zookeeper的连接串</li>
 <li>The configuration store connection string for the entire instance</li>
-<li>The web service URL for the cluster</li>
-<li>A broker service URL enabling interaction with the <a href="/docs/zh-CN/next/reference-terminology#broker">brokers</a> in the cluster</li>
+<li>集群的web服务URL</li>
+<li>Broker服务的URL,来开启和集群中<a href="/docs/zh-CN/next/reference-terminology#broker">broker</a>的交互</li>
 </ul>
 <p>If you're using <a href="/docs/zh-CN/next/security-tls-transport">TLS</a>, you'll also need to specify a TLS web service URL for the cluster as well as a TLS broker service URL for the brokers in the cluster.</p>
 <p>Make sure to run <code>initialize-cluster-metadata</code> for each cluster in your instance.</p>
diff --git a/content/docs/zh-CN/next/deploy-kubernetes.html b/content/docs/zh-CN/next/deploy-kubernetes.html
index 8120ccc..5a90943 100644
--- a/content/docs/zh-CN/next/deploy-kubernetes.html
+++ b/content/docs/zh-CN/next/deploy-kubernetes.html
@@ -170,7 +170,7 @@ zk-1      1/1       Running            0          17m
 zk-2      0/1       Running            6          15m
 </code></pre>
 <p>This step may take several minutes, as Kubernetes needs to download the Docker image on the VMs.</p>
-<h3><a class="anchor" aria-hidden="true" id="initialize-cluster-metadata"></a><a href="#initialize-cluster-metadata" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 1 [...]
+<h3><a class="anchor" aria-hidden="true" id="初始化集群元数据"></a><a href="#初始化集群元数据" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
 <p>Once ZooKeeper is running, you need to <a href="#cluster-metadata-initialization">initialize the metadata</a> for the Pulsar cluster in ZooKeeper. This includes system metadata for <a href="/docs/zh-CN/next/reference-terminology#bookkeeper">BookKeeper</a> and Pulsar more broadly. There is a Kubernetes <a href="https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/">job</a> in the <code>cluster-metadata.yaml</code> file that you only need to run once:</p>
 <pre><code class="hljs css language-bash">$ kubectl apply -f cluster-metadata.yaml
 </code></pre>
@@ -300,7 +300,7 @@ helm install --values pulsar/values-mini.yaml ./pulsar</p></li>
 <li>Web service url: <code>http://$(minikube ip):30001/</code></li>
 <li>Pulsar service url: <code>pulsar://$(minikube ip):30002/</code></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/deploy-aws"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/next/deploy-bare-metal"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#setup">Setup</a></li><li><a href="#pulsar-on-google-kubernetes-engine">Pulsar on Google Kubernetes Eng [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/deploy-aws"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/next/deploy-bare-metal"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#setup">Setup</a></li><li><a href="#pulsar-on-google-kubernetes-engine">Pulsar on Google Kubernetes Eng [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/next/deploy-kubernetes/index.html b/content/docs/zh-CN/next/deploy-kubernetes/index.html
index 8120ccc..5a90943 100644
--- a/content/docs/zh-CN/next/deploy-kubernetes/index.html
+++ b/content/docs/zh-CN/next/deploy-kubernetes/index.html
@@ -170,7 +170,7 @@ zk-1      1/1       Running            0          17m
 zk-2      0/1       Running            6          15m
 </code></pre>
 <p>This step may take several minutes, as Kubernetes needs to download the Docker image on the VMs.</p>
-<h3><a class="anchor" aria-hidden="true" id="initialize-cluster-metadata"></a><a href="#initialize-cluster-metadata" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 1 [...]
+<h3><a class="anchor" aria-hidden="true" id="初始化集群元数据"></a><a href="#初始化集群元数据" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
 <p>Once ZooKeeper is running, you need to <a href="#cluster-metadata-initialization">initialize the metadata</a> for the Pulsar cluster in ZooKeeper. This includes system metadata for <a href="/docs/zh-CN/next/reference-terminology#bookkeeper">BookKeeper</a> and Pulsar more broadly. There is a Kubernetes <a href="https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/">job</a> in the <code>cluster-metadata.yaml</code> file that you only need to run once:</p>
 <pre><code class="hljs css language-bash">$ kubectl apply -f cluster-metadata.yaml
 </code></pre>
@@ -300,7 +300,7 @@ helm install --values pulsar/values-mini.yaml ./pulsar</p></li>
 <li>Web service url: <code>http://$(minikube ip):30001/</code></li>
 <li>Pulsar service url: <code>pulsar://$(minikube ip):30002/</code></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/deploy-aws"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/next/deploy-bare-metal"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#setup">Setup</a></li><li><a href="#pulsar-on-google-kubernetes-engine">Pulsar on Google Kubernetes Eng [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/deploy-aws"><span class="arrow-prev">← </span><span>上一页</span></a><a class="docs-next button" href="/docs/zh-CN/next/deploy-bare-metal"><span>下一页</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav docOnPageNav"><ul class="toc-headings"><li><a href="#setup">Setup</a></li><li><a href="#pulsar-on-google-kubernetes-engine">Pulsar on Google Kubernetes Eng [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/ja/adaptors/PulsarSpark/index.html b/content/ja/adaptors/PulsarSpark/index.html
index 51c3895..34dd969 100644
--- a/content/ja/adaptors/PulsarSpark/index.html
+++ b/content/ja/adaptors/PulsarSpark/index.html
@@ -762,9 +762,9 @@
           
           
           
+          <li><a href="/ja/adaptors/PulsarSpark/">Spark Streaming Pulsar Receiver</a></li>
           
           
-          <li><a href="/ja/adaptors/PulsarSpark/">Spark Streaming Pulsar Receiver</a></li>
           
           
           
@@ -1008,9 +1008,9 @@
           
           
           
+          <li><a href="/ja/adaptors/PulsarSpark/">Spark Streaming Pulsar Receiver</a></li>
           
           
-          <li><a href="/ja/adaptors/PulsarSpark/">Spark Streaming Pulsar Receiver</a></li>
           
           
           
@@ -1224,8 +1224,6 @@
           
           
           
-          
-          
           <li><a href="/ja/clients/Java/">Pulsar Javaクライアント</a></li>
           
           
@@ -1387,6 +1385,8 @@
           
           
           
+          
+          
         </ul>
       </div>
     </div>
diff --git a/content/ja/adaptors/PulsarStorm/index.html b/content/ja/adaptors/PulsarStorm/index.html
index 8d8ca73..d24d155 100644
--- a/content/ja/adaptors/PulsarStorm/index.html
+++ b/content/ja/adaptors/PulsarStorm/index.html
@@ -766,9 +766,9 @@
           
           
           
+          <li><a href="/ja/adaptors/PulsarStorm/">Apache StormのためのPulsarアダプタ</a></li>
           
           
-          <li><a href="/ja/adaptors/PulsarStorm/">Apache StormのためのPulsarアダプタ</a></li>
           
           
           
@@ -978,8 +978,6 @@
           
           
           
-          
-          
           <li><a href="/ja/clients/Java/">Pulsar Javaクライアント</a></li>
           
           
@@ -1141,6 +1139,8 @@
           
           
           
+          
+          
         </ul>
       </div>
     </div>
diff --git a/content/ja/admin/AdminInterface/index.html b/content/ja/admin/AdminInterface/index.html
index 9a1d3fa..5a8fbe4 100644
--- a/content/ja/admin/AdminInterface/index.html
+++ b/content/ja/admin/AdminInterface/index.html
@@ -692,9 +692,9 @@
           
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
@@ -762,9 +762,9 @@
           
           
           
+          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
-          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
           
@@ -792,9 +792,9 @@
           
           
           
+          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
-          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
           
@@ -950,9 +950,9 @@
           
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
@@ -1486,8 +1486,6 @@
           
           
           
-          
-          
           <li><a href="/ja/clients/Java/">Pulsar Javaクライアント</a></li>
           
           
@@ -1649,6 +1647,8 @@
           
           
           
+          
+          
         </ul>
       </div>
     </div>
diff --git a/content/ja/admin/Authz/index.html b/content/ja/admin/Authz/index.html
index f31d19b..910e23f 100644
--- a/content/ja/admin/Authz/index.html
+++ b/content/ja/admin/Authz/index.html
@@ -692,9 +692,9 @@
           
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
@@ -762,9 +762,9 @@
           
           
           
+          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
-          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
           
@@ -792,9 +792,9 @@
           
           
           
+          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
-          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
           
@@ -1976,8 +1976,6 @@
           
           
           
-          
-          
           <li><a href="/ja/clients/Java/">Pulsar Javaクライアント</a></li>
           
           
@@ -2139,6 +2137,8 @@
           
           
           
+          
+          
         </ul>
       </div>
     </div>
@@ -2212,9 +2212,9 @@
           
           
           
+          <li><a href="/ja/clients/Cpp/">Pulsar C++クライアント</a></li>
           
           
-          <li><a href="/ja/clients/Cpp/">Pulsar C++クライアント</a></li>
           
           
           
diff --git a/content/ja/admin/ClustersBrokers/index.html b/content/ja/admin/ClustersBrokers/index.html
index 0c37b98..ad4bdb4 100644
--- a/content/ja/admin/ClustersBrokers/index.html
+++ b/content/ja/admin/ClustersBrokers/index.html
@@ -692,9 +692,9 @@
           
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
@@ -762,9 +762,9 @@
           
           
           
+          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
-          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
           
@@ -792,9 +792,9 @@
           
           
           
+          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
-          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
           
diff --git a/content/ja/admin/PropertiesNamespaces/index.html b/content/ja/admin/PropertiesNamespaces/index.html
index 050393b..807551e 100644
--- a/content/ja/admin/PropertiesNamespaces/index.html
+++ b/content/ja/admin/PropertiesNamespaces/index.html
@@ -1184,9 +1184,9 @@
           
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
@@ -1254,9 +1254,9 @@
           
           
           
+          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
-          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
           
@@ -1284,9 +1284,9 @@
           
           
           
+          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
-          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
           
diff --git a/content/ja/advanced/PartitionedTopics/index.html b/content/ja/advanced/PartitionedTopics/index.html
index 3ab5407..4297a12 100644
--- a/content/ja/advanced/PartitionedTopics/index.html
+++ b/content/ja/advanced/PartitionedTopics/index.html
@@ -752,9 +752,9 @@
           
           
           
+          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
-          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
           
@@ -998,9 +998,9 @@
           
           
           
+          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
-          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
           
@@ -1184,9 +1184,9 @@
           
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
@@ -1254,9 +1254,9 @@
           
           
           
+          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
-          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
           
@@ -1284,9 +1284,9 @@
           
           
           
+          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
-          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
           
@@ -1504,9 +1504,9 @@
           
           
           
+          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
-          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
           
diff --git a/content/ja/advanced/RetentionExpiry/index.html b/content/ja/advanced/RetentionExpiry/index.html
index eb7d4b0..fd6137c 100644
--- a/content/ja/advanced/RetentionExpiry/index.html
+++ b/content/ja/advanced/RetentionExpiry/index.html
@@ -692,9 +692,9 @@
           
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
@@ -762,9 +762,9 @@
           
           
           
+          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
-          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
           
@@ -792,9 +792,9 @@
           
           
           
+          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
-          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
           
@@ -1038,9 +1038,9 @@
           
           
           
+          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
-          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
           
@@ -1284,9 +1284,9 @@
           
           
           
+          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
-          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
           
@@ -1530,9 +1530,9 @@
           
           
           
+          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
-          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
           
diff --git a/content/ja/clients/Cpp/index.html b/content/ja/clients/Cpp/index.html
index e51d5eb..e6411a1 100644
--- a/content/ja/clients/Cpp/index.html
+++ b/content/ja/clients/Cpp/index.html
@@ -688,8 +688,6 @@
           
           
           
-          
-          
           <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
@@ -893,6 +891,8 @@
           
           
           
+          
+          
         </ul>
       </div>
     </div>
@@ -966,9 +966,9 @@
           
           
           
+          <li><a href="/ja/clients/Cpp/">Pulsar C++クライアント</a></li>
           
           
-          <li><a href="/ja/clients/Cpp/">Pulsar C++クライアント</a></li>
           
           
           
diff --git a/content/ja/clients/Java/index.html b/content/ja/clients/Java/index.html
index 2a626c7..e543182 100644
--- a/content/ja/clients/Java/index.html
+++ b/content/ja/clients/Java/index.html
@@ -688,8 +688,6 @@
           
           
           
-          
-          
           <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
@@ -893,6 +891,8 @@
           
           
           
+          
+          
         </ul>
       </div>
     </div>
@@ -984,8 +984,6 @@
           
           
           
-          
-          
           <li><a href="/ja/clients/Java/">Pulsar Javaクライアント</a></li>
           
           
@@ -1147,6 +1145,8 @@
           
           
           
+          
+          
         </ul>
       </div>
     </div>
diff --git a/content/ja/clients/Python/index.html b/content/ja/clients/Python/index.html
index b937ecf..ed49516 100644
--- a/content/ja/clients/Python/index.html
+++ b/content/ja/clients/Python/index.html
@@ -688,8 +688,6 @@
           
           
           
-          
-          
           <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
@@ -893,6 +891,8 @@
           
           
           
+          
+          
         </ul>
       </div>
     </div>
@@ -1022,8 +1022,6 @@
           
           
           
-          
-          
           <li><a href="/ja/clients/Python/">Pulsar Pythonクライアント</a></li>
           
           
@@ -1141,6 +1139,8 @@
           
           
           
+          
+          
         </ul>
       </div>
     </div>
diff --git a/content/ja/clients/WebSocket/index.html b/content/ja/clients/WebSocket/index.html
index ee0d865..b7b7730 100644
--- a/content/ja/clients/WebSocket/index.html
+++ b/content/ja/clients/WebSocket/index.html
@@ -790,9 +790,9 @@
           
           
           
+          <li><a href="/ja/clients/WebSocket/">PulsarにおけるWebSocket API</a></li>
           
           
-          <li><a href="/ja/clients/WebSocket/">PulsarにおけるWebSocket API</a></li>
           
           
           
@@ -1036,9 +1036,9 @@
           
           
           
+          <li><a href="/ja/clients/WebSocket/">PulsarにおけるWebSocket API</a></li>
           
           
-          <li><a href="/ja/clients/WebSocket/">PulsarにおけるWebSocket API</a></li>
           
           
           
@@ -1262,8 +1262,6 @@
           
           
           
-          
-          
           <li><a href="/ja/clients/Python/">Pulsar Pythonクライアント</a></li>
           
           
@@ -1381,6 +1379,8 @@
           
           
           
+          
+          
         </ul>
       </div>
     </div>
diff --git a/content/ja/deployment/InstanceSetup/index.html b/content/ja/deployment/InstanceSetup/index.html
index d12999b..6499654 100644
--- a/content/ja/deployment/InstanceSetup/index.html
+++ b/content/ja/deployment/InstanceSetup/index.html
@@ -692,9 +692,9 @@
           
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
@@ -762,9 +762,9 @@
           
           
           
+          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
-          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
           
@@ -792,9 +792,9 @@
           
           
           
+          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
-          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
           
diff --git a/content/ja/deployment/Kubernetes/index.html b/content/ja/deployment/Kubernetes/index.html
index 4dd17d9..dd736d4 100644
--- a/content/ja/deployment/Kubernetes/index.html
+++ b/content/ja/deployment/Kubernetes/index.html
@@ -734,9 +734,9 @@
           
           
           
+          <li><a href="/ja/deployment/Kubernetes/">Kubernetes上でのPulsarのデプロイ</a></li>
           
           
-          <li><a href="/ja/deployment/Kubernetes/">Kubernetes上でのPulsarのデプロイ</a></li>
           
           
           
@@ -980,9 +980,9 @@
           
           
           
+          <li><a href="/ja/deployment/Kubernetes/">Kubernetes上でのPulsarのデプロイ</a></li>
           
           
-          <li><a href="/ja/deployment/Kubernetes/">Kubernetes上でのPulsarのデプロイ</a></li>
           
           
           
diff --git a/content/ja/getting-started/ConceptsAndArchitecture/index.html b/content/ja/getting-started/ConceptsAndArchitecture/index.html
index 0efaab5..6c57f6a 100644
--- a/content/ja/getting-started/ConceptsAndArchitecture/index.html
+++ b/content/ja/getting-started/ConceptsAndArchitecture/index.html
@@ -704,9 +704,9 @@
           
           
           
+          <li><a href="/ja/getting-started/ConceptsAndArchitecture/">Pulsarのコンセプトとアーキテクチャ</a></li>
           
           
-          <li><a href="/ja/getting-started/ConceptsAndArchitecture/">Pulsarのコンセプトとアーキテクチャ</a></li>
           
           
           
diff --git a/content/ja/getting-started/LocalCluster/index.html b/content/ja/getting-started/LocalCluster/index.html
index bcf9413..f3a8dca 100644
--- a/content/ja/getting-started/LocalCluster/index.html
+++ b/content/ja/getting-started/LocalCluster/index.html
@@ -740,9 +740,9 @@
           
           
           
+          <li><a href="/ja/getting-started/LocalCluster/">ローカルスタンドアローンクラスタのセットアップ</a></li>
           
           
-          <li><a href="/ja/getting-started/LocalCluster/">ローカルスタンドアローンクラスタのセットアップ</a></li>
           
           
           
@@ -986,9 +986,9 @@
           
           
           
+          <li><a href="/ja/getting-started/LocalCluster/">ローカルスタンドアローンクラスタのセットアップ</a></li>
           
           
-          <li><a href="/ja/getting-started/LocalCluster/">ローカルスタンドアローンクラスタのセットアップ</a></li>
           
           
           
diff --git a/content/ja/project/BinaryProtocol/index.html b/content/ja/project/BinaryProtocol/index.html
index f595218..642f8fd 100644
--- a/content/ja/project/BinaryProtocol/index.html
+++ b/content/ja/project/BinaryProtocol/index.html
@@ -684,9 +684,9 @@
           
           
           
+          <li><a href="/ja/project/BinaryProtocol/">Pulsarのバイナリプロトコルの仕様</a></li>
           
           
-          <li><a href="/ja/project/BinaryProtocol/">Pulsarのバイナリプロトコルの仕様</a></li>
           
           
           
@@ -930,9 +930,9 @@
           
           
           
+          <li><a href="/ja/project/BinaryProtocol/">Pulsarのバイナリプロトコルの仕様</a></li>
           
           
-          <li><a href="/ja/project/BinaryProtocol/">Pulsarのバイナリプロトコルの仕様</a></li>
           
           
           
diff --git a/content/ja/project/SimulationTools/index.html b/content/ja/project/SimulationTools/index.html
index b9b8152..e5a28bb 100644
--- a/content/ja/project/SimulationTools/index.html
+++ b/content/ja/project/SimulationTools/index.html
@@ -782,9 +782,9 @@
           
           
           
+          <li><a href="/ja/project/SimulationTools/">シミュレーションツール</a></li>
           
           
-          <li><a href="/ja/project/SimulationTools/">シミュレーションツール</a></li>
           
           
           
diff --git a/content/ja/reference/CliTools/index.html b/content/ja/reference/CliTools/index.html
index 97c8e05..eb25626 100644
--- a/content/ja/reference/CliTools/index.html
+++ b/content/ja/reference/CliTools/index.html
@@ -692,9 +692,9 @@
           
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
@@ -762,9 +762,9 @@
           
           
           
+          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
-          <li><a href="/ja/advanced/PartitionedTopics/">パーティションドトピック</a></li>
           
           
           
@@ -792,9 +792,9 @@
           
           
           
+          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
-          <li><a href="/ja/advanced/RetentionExpiry/">メッセージの保存と有効期限</a></li>
           
           
           
@@ -950,9 +950,9 @@
           
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
@@ -1196,8 +1196,6 @@
           
           
           
-          
-          
           <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
@@ -1401,6 +1399,8 @@
           
           
           
+          
+          
         </ul>
       </div>
     </div>
@@ -1448,9 +1448,9 @@
           
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
@@ -1694,9 +1694,9 @@
           
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
@@ -1940,9 +1940,9 @@
           
           
           
+          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
-          <li><a href="/ja/reference/CliTools/">Pulsarコマンドラインツール</a></li>
           
           
           
diff --git a/content/swagger/swagger.json b/content/swagger/swagger.json
index e0db652..a38c61a 100644
--- a/content/swagger/swagger.json
+++ b/content/swagger/swagger.json
@@ -3841,7 +3841,7 @@
           "200" : {
             "description" : "successful operation",
             "schema" : {
-              "$ref" : "#/definitions/NonPersistentTopicStats"
+              "$ref" : "#/definitions/TopicStats"
             }
           },
           "403" : {
@@ -6467,10 +6467,10 @@
             "type" : "string"
           }
         },
-        "clientVersion" : {
+        "connectedSince" : {
           "type" : "string"
         },
-        "connectedSince" : {
+        "clientVersion" : {
           "type" : "string"
         },
         "address" : {
@@ -6592,7 +6592,7 @@
         },
         "type" : {
           "type" : "string",
-          "enum" : [ "NONE", "STRING", "INT8", "INT16", "INT32", "INT64", "FLOAT", "DOUBLE", "BYTES", "JSON", "PROTOBUF", "AVRO", "AUTO", "AUTO_CONSUME", "AUTO_PUBLISH" ]
+          "enum" : [ "NONE", "STRING", "INT8", "INT16", "INT32", "INT64", "FLOAT", "DOUBLE", "BYTES", "JSON", "PROTOBUF", "AVRO", "AUTO", "AUTO_CONSUME", "AUTO_PUBLISH", "KEY_VALUE" ]
         },
         "timestamp" : {
           "type" : "integer",
@@ -6790,12 +6790,27 @@
           "type" : "number",
           "format" : "double"
         },
-        "cpu" : {
+        "underLoaded" : {
+          "type" : "boolean"
+        },
+        "overLoaded" : {
+          "type" : "boolean"
+        },
+        "loadReportType" : {
+          "type" : "string"
+        },
+        "memory" : {
           "$ref" : "#/definitions/ResourceUsage"
         },
         "directMemory" : {
           "$ref" : "#/definitions/ResourceUsage"
         },
+        "bandwidthIn" : {
+          "$ref" : "#/definitions/ResourceUsage"
+        },
+        "bandwidthOut" : {
+          "$ref" : "#/definitions/ResourceUsage"
+        },
         "lastUpdate" : {
           "type" : "integer",
           "format" : "int64"
@@ -6808,23 +6823,8 @@
           "type" : "number",
           "format" : "double"
         },
-        "underLoaded" : {
-          "type" : "boolean"
-        },
-        "overLoaded" : {
-          "type" : "boolean"
-        },
-        "bandwidthIn" : {
-          "$ref" : "#/definitions/ResourceUsage"
-        },
-        "bandwidthOut" : {
-          "$ref" : "#/definitions/ResourceUsage"
-        },
-        "memory" : {
+        "cpu" : {
           "$ref" : "#/definitions/ResourceUsage"
-        },
-        "loadReportType" : {
-          "type" : "string"
         }
       }
     },
@@ -6984,15 +6984,15 @@
           "type" : "number",
           "format" : "double"
         },
-        "clientVersion" : {
-          "type" : "string"
-        },
         "producerName" : {
           "type" : "string"
         },
         "connectedSince" : {
           "type" : "string"
         },
+        "clientVersion" : {
+          "type" : "string"
+        },
         "address" : {
           "type" : "string"
         }
@@ -7692,15 +7692,15 @@
             "type" : "string"
           }
         },
-        "clientVersion" : {
-          "type" : "string"
-        },
         "producerName" : {
           "type" : "string"
         },
         "connectedSince" : {
           "type" : "string"
         },
+        "clientVersion" : {
+          "type" : "string"
+        },
         "address" : {
           "type" : "string"
         }