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 2019/03/26 09:00:19 UTC

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

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 8f72d24  Updated site at revision fd8aa4f
8f72d24 is described below

commit 8f72d2463828c1bd35cd43e7a2501249c9d4ce01
Author: jenkins <bu...@apache.org>
AuthorDate: Tue Mar 26 09:00:06 2019 +0000

    Updated site at revision fd8aa4f
---
 content/docs/en/next/reference-configuration.html  |  1 +
 .../en/next/reference-configuration/index.html     |  1 +
 content/docs/fr/next/reference-configuration.html  |  1 +
 .../fr/next/reference-configuration/index.html     |  1 +
 content/docs/ja/next/reference-configuration.html  |  1 +
 .../ja/next/reference-configuration/index.html     |  1 +
 .../zh-CN/2.1.0-incubating/admin-api-tenants.html  | 14 +++----
 .../2.1.0-incubating/admin-api-tenants/index.html  | 14 +++----
 .../cookbooks-retention-expiry.html                | 22 +++++------
 .../cookbooks-retention-expiry/index.html          | 22 +++++------
 .../zh-CN/2.1.1-incubating/admin-api-tenants.html  | 14 +++----
 .../2.1.1-incubating/admin-api-tenants/index.html  | 14 +++----
 .../cookbooks-retention-expiry.html                | 22 +++++------
 .../cookbooks-retention-expiry/index.html          | 22 +++++------
 content/docs/zh-CN/2.2.0/admin-api-tenants.html    | 14 +++----
 .../docs/zh-CN/2.2.0/admin-api-tenants/index.html  | 14 +++----
 .../zh-CN/2.2.0/cookbooks-retention-expiry.html    | 22 +++++------
 .../2.2.0/cookbooks-retention-expiry/index.html    | 22 +++++------
 content/docs/zh-CN/2.2.1/admin-api-tenants.html    | 14 +++----
 .../docs/zh-CN/2.2.1/admin-api-tenants/index.html  | 14 +++----
 .../zh-CN/2.2.1/cookbooks-retention-expiry.html    | 22 +++++------
 .../2.2.1/cookbooks-retention-expiry/index.html    | 22 +++++------
 content/docs/zh-CN/admin-api-tenants.html          | 14 +++----
 content/docs/zh-CN/admin-api-tenants/index.html    | 14 +++----
 content/docs/zh-CN/cookbooks-retention-expiry.html | 22 +++++------
 .../zh-CN/cookbooks-retention-expiry/index.html    | 22 +++++------
 content/docs/zh-CN/next/admin-api-tenants.html     | 14 +++----
 .../docs/zh-CN/next/admin-api-tenants/index.html   | 14 +++----
 .../zh-CN/next/cookbooks-retention-expiry.html     | 22 +++++------
 .../next/cookbooks-retention-expiry/index.html     | 22 +++++------
 .../docs/zh-CN/next/reference-configuration.html   |  1 +
 .../zh-CN/next/reference-configuration/index.html  |  1 +
 content/swagger/swagger.json                       | 46 +++++++++++-----------
 33 files changed, 247 insertions(+), 239 deletions(-)

diff --git a/content/docs/en/next/reference-configuration.html b/content/docs/en/next/reference-configuration.html
index 1e520fc..ddccd45 100644
--- a/content/docs/en/next/reference-configuration.html
+++ b/content/docs/en/next/reference-configuration.html
@@ -383,6 +383,7 @@
 <tr><td>backlogQuotaCheckEnabled</td><td>Enable the backlog quota check, which enforces a specified action when the quota is reached.</td><td>true</td></tr>
 <tr><td>backlogQuotaCheckIntervalInSeconds</td><td>How often to check for topics that have reached the backlog quota.</td><td>60</td></tr>
 <tr><td>backlogQuotaDefaultLimitGB</td><td>The default per-topic backlog quota limit.</td><td>10</td></tr>
+<tr><td>ttlDurationDefaultInSeconds</td><td>Default ttl for namespaces if ttl is not already configured at namespace policies.</td><td>0</td></tr>
 <tr><td>brokerDeleteInactiveTopicsEnabled</td><td>Enable the deletion of inactive topics.</td><td>true</td></tr>
 <tr><td>brokerDeleteInactiveTopicsFrequencySeconds</td><td>How often to check for inactive topics, in seconds.</td><td>60</td></tr>
 <tr><td>messageExpiryCheckIntervalInMinutes</td><td>How often to proactively check and purged expired messages.</td><td>5</td></tr>
diff --git a/content/docs/en/next/reference-configuration/index.html b/content/docs/en/next/reference-configuration/index.html
index 1e520fc..ddccd45 100644
--- a/content/docs/en/next/reference-configuration/index.html
+++ b/content/docs/en/next/reference-configuration/index.html
@@ -383,6 +383,7 @@
 <tr><td>backlogQuotaCheckEnabled</td><td>Enable the backlog quota check, which enforces a specified action when the quota is reached.</td><td>true</td></tr>
 <tr><td>backlogQuotaCheckIntervalInSeconds</td><td>How often to check for topics that have reached the backlog quota.</td><td>60</td></tr>
 <tr><td>backlogQuotaDefaultLimitGB</td><td>The default per-topic backlog quota limit.</td><td>10</td></tr>
+<tr><td>ttlDurationDefaultInSeconds</td><td>Default ttl for namespaces if ttl is not already configured at namespace policies.</td><td>0</td></tr>
 <tr><td>brokerDeleteInactiveTopicsEnabled</td><td>Enable the deletion of inactive topics.</td><td>true</td></tr>
 <tr><td>brokerDeleteInactiveTopicsFrequencySeconds</td><td>How often to check for inactive topics, in seconds.</td><td>60</td></tr>
 <tr><td>messageExpiryCheckIntervalInMinutes</td><td>How often to proactively check and purged expired messages.</td><td>5</td></tr>
diff --git a/content/docs/fr/next/reference-configuration.html b/content/docs/fr/next/reference-configuration.html
index b3b8194..976e7a6 100644
--- a/content/docs/fr/next/reference-configuration.html
+++ b/content/docs/fr/next/reference-configuration.html
@@ -387,6 +387,7 @@
 <tr><td>backlogQuotaCheckEnabled</td><td>Enable the backlog quota check, which enforces a specified action when the quota is reached.</td><td>true</td></tr>
 <tr><td>backlogQuotaCheckIntervalInSeconds</td><td>How often to check for topics that have reached the backlog quota.</td><td>60</td></tr>
 <tr><td>backlogQuotaDefaultLimitGB</td><td>The default per-topic backlog quota limit.</td><td>10</td></tr>
+<tr><td>ttlDurationDefaultInSeconds</td><td>Default ttl for namespaces if ttl is not already configured at namespace policies.</td><td>0</td></tr>
 <tr><td>brokerDeleteInactiveTopicsEnabled</td><td>Enable the deletion of inactive topics.</td><td>true</td></tr>
 <tr><td>brokerDeleteInactiveTopicsFrequencySeconds</td><td>How often to check for inactive topics, in seconds.</td><td>60</td></tr>
 <tr><td>messageExpiryCheckIntervalInMinutes</td><td>How often to proactively check and purged expired messages.</td><td>5</td></tr>
diff --git a/content/docs/fr/next/reference-configuration/index.html b/content/docs/fr/next/reference-configuration/index.html
index b3b8194..976e7a6 100644
--- a/content/docs/fr/next/reference-configuration/index.html
+++ b/content/docs/fr/next/reference-configuration/index.html
@@ -387,6 +387,7 @@
 <tr><td>backlogQuotaCheckEnabled</td><td>Enable the backlog quota check, which enforces a specified action when the quota is reached.</td><td>true</td></tr>
 <tr><td>backlogQuotaCheckIntervalInSeconds</td><td>How often to check for topics that have reached the backlog quota.</td><td>60</td></tr>
 <tr><td>backlogQuotaDefaultLimitGB</td><td>The default per-topic backlog quota limit.</td><td>10</td></tr>
+<tr><td>ttlDurationDefaultInSeconds</td><td>Default ttl for namespaces if ttl is not already configured at namespace policies.</td><td>0</td></tr>
 <tr><td>brokerDeleteInactiveTopicsEnabled</td><td>Enable the deletion of inactive topics.</td><td>true</td></tr>
 <tr><td>brokerDeleteInactiveTopicsFrequencySeconds</td><td>How often to check for inactive topics, in seconds.</td><td>60</td></tr>
 <tr><td>messageExpiryCheckIntervalInMinutes</td><td>How often to proactively check and purged expired messages.</td><td>5</td></tr>
diff --git a/content/docs/ja/next/reference-configuration.html b/content/docs/ja/next/reference-configuration.html
index c59f21d..473f4a2 100644
--- a/content/docs/ja/next/reference-configuration.html
+++ b/content/docs/ja/next/reference-configuration.html
@@ -387,6 +387,7 @@
 <tr><td>backlogQuotaCheckEnabled</td><td>Enable the backlog quota check, which enforces a specified action when the quota is reached.</td><td>true</td></tr>
 <tr><td>backlogQuotaCheckIntervalInSeconds</td><td>How often to check for topics that have reached the backlog quota.</td><td>60</td></tr>
 <tr><td>backlogQuotaDefaultLimitGB</td><td>The default per-topic backlog quota limit.</td><td>10</td></tr>
+<tr><td>ttlDurationDefaultInSeconds</td><td>Default ttl for namespaces if ttl is not already configured at namespace policies.</td><td>0</td></tr>
 <tr><td>brokerDeleteInactiveTopicsEnabled</td><td>Enable the deletion of inactive topics.</td><td>true</td></tr>
 <tr><td>brokerDeleteInactiveTopicsFrequencySeconds</td><td>How often to check for inactive topics, in seconds.</td><td>60</td></tr>
 <tr><td>messageExpiryCheckIntervalInMinutes</td><td>How often to proactively check and purged expired messages.</td><td>5</td></tr>
diff --git a/content/docs/ja/next/reference-configuration/index.html b/content/docs/ja/next/reference-configuration/index.html
index c59f21d..473f4a2 100644
--- a/content/docs/ja/next/reference-configuration/index.html
+++ b/content/docs/ja/next/reference-configuration/index.html
@@ -387,6 +387,7 @@
 <tr><td>backlogQuotaCheckEnabled</td><td>Enable the backlog quota check, which enforces a specified action when the quota is reached.</td><td>true</td></tr>
 <tr><td>backlogQuotaCheckIntervalInSeconds</td><td>How often to check for topics that have reached the backlog quota.</td><td>60</td></tr>
 <tr><td>backlogQuotaDefaultLimitGB</td><td>The default per-topic backlog quota limit.</td><td>10</td></tr>
+<tr><td>ttlDurationDefaultInSeconds</td><td>Default ttl for namespaces if ttl is not already configured at namespace policies.</td><td>0</td></tr>
 <tr><td>brokerDeleteInactiveTopicsEnabled</td><td>Enable the deletion of inactive topics.</td><td>true</td></tr>
 <tr><td>brokerDeleteInactiveTopicsFrequencySeconds</td><td>How often to check for inactive topics, in seconds.</td><td>60</td></tr>
 <tr><td>messageExpiryCheckIntervalInMinutes</td><td>How often to proactively check and purged expired messages.</td><td>5</td></tr>
diff --git a/content/docs/zh-CN/2.1.0-incubating/admin-api-tenants.html b/content/docs/zh-CN/2.1.0-incubating/admin-api-tenants.html
index c518b9b..e344f8a 100644
--- a/content/docs/zh-CN/2.1.0-incubating/admin-api-tenants.html
+++ b/content/docs/zh-CN/2.1.0-incubating/admin-api-tenants.html
@@ -1,5 +1,5 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Tenants · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;租户,如命名空间,可以使用&lt;a href=&quot;/docs/zh-CN/2.1.0-incubating/admin-api-overview&quot;&gt;admin API&lt;/a&gt;来管理,目前租客有两个方面可被配置。&lt;/p&gt;
-"/><meta name="docsearch:version" content="2.1.0-incubating"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Managing Tenants · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;租户,如命名空间,可以使用&lt;a href=&quot;/docs/zh-CN/2.1.0-incubating/admin-api-overview&quot;&gt;admin API&lt;/a&gt;来管理,目前租客有两个方面可被配置。&lt;/p&gt;
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Tenants · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;租户像命名空间一样,可以使用 &lt;a href=&quot;/docs/zh-CN/2.1.0-incubating/admin-api-overview&quot;&gt;管理员 API&lt;/a&gt;管理。目前租户有两个可配置的方面:&lt;/p&gt;
+"/><meta name="docsearch:version" content="2.1.0-incubating"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Managing Tenants · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;租户像命名空间一样,可以使用 &lt;a href=&quot;/docs/zh-CN/2.1.0-incubating/admin-api-overview&quot;&gt;管理员 API&lt;/a&gt;管理。目前租户有两个可配置的方面:&lt;/p&gt;
 "/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://pulsar.incubator.apache.org/img/pulsar.svg"/><link rel="shortcut icon" href="/img/pulsar.ico"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><link rel="alternate" type="application/atom+xml" href="https://pulsar.incubator.apache.org/blog/atom.x [...]
               (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),
@@ -70,7 +70,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><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 Tenants</h1></header><article><div><span><p>租户,如命名空间,可以使用<a href="/docs/zh-CN/2.1.0-incubating/admin-api-overview">admin API</a>来管理,目前租客有两个方面可被配置。</p>
+        </script></nav></div><div class="container mainContainer"><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 Tenants</h1></header><article><div><span><p>租户像命名空间一样,可以使用 <a href="/docs/zh-CN/2.1.0-incubating/admin-api-overview">管理员 API</a>管理。目前租户有两个可配置的方面:</p>
 <ul>
 <li>Admin角色</li>
 <li>被认可的集群</li>
@@ -78,10 +78,10 @@
 <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 [...]
 <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>你可以通过使用<a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin#tenants-list"><code>list</code></a>子命令,列出<a href="/docs/zh-CN/2.1.0-incubating/reference-terminology#instance">实例</a>关联的所有租户:</p>
+<p>你可以使用<a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin#tenants-list"><code>list</code></a>子命令,列出所有与<a href="/docs/zh-CN/2.1.0-incubating/reference-terminology#instance">实例</a>相关联的租户:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin tenants list</span>
 </code></pre>
-<p>这将返回一个简单的list,如下:</p>
+<p>这将返回一个简单的列表,例如:</p>
 <pre><code class="hljs">my-tenant-1
 my-tenant-2
 </code></pre>
@@ -114,12 +114,12 @@ $</span><span class="bash"> pulsar-admin tenants create my-tenant \</span>
 </code></pre>
 <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 [...]
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-3"></a><a href="#pulsar-admin-3" 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- [...]
-<p>你可以删除租户,通过使用<a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin#tenants-delete"><code>delete</code></a>子命令并指定租户名称:</p>
+<p>你可以使用<a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin#tenants-delete"><code>delete</code></a>子命令并指定租户名称来删除租户:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin tenants delete my-tenant</span>
 </code></pre>
 <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 [...]
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-4"></a><a href="#pulsar-admin-4" 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- [...]
-<p>你可以更新租户的配置,通过使用<a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin#tenants-update"><code>update</code></a>子命令</p>
+<p>你可以使用<a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin#tenants-update"><code>update</code></a>子命令更新租户的配置</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/admin-api-clusters"><span class="arrow-prev">← </span><span>集群</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/admin-api-brokers"><span>Brokers</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><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 =
diff --git a/content/docs/zh-CN/2.1.0-incubating/admin-api-tenants/index.html b/content/docs/zh-CN/2.1.0-incubating/admin-api-tenants/index.html
index c518b9b..e344f8a 100644
--- a/content/docs/zh-CN/2.1.0-incubating/admin-api-tenants/index.html
+++ b/content/docs/zh-CN/2.1.0-incubating/admin-api-tenants/index.html
@@ -1,5 +1,5 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Tenants · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;租户,如命名空间,可以使用&lt;a href=&quot;/docs/zh-CN/2.1.0-incubating/admin-api-overview&quot;&gt;admin API&lt;/a&gt;来管理,目前租客有两个方面可被配置。&lt;/p&gt;
-"/><meta name="docsearch:version" content="2.1.0-incubating"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Managing Tenants · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;租户,如命名空间,可以使用&lt;a href=&quot;/docs/zh-CN/2.1.0-incubating/admin-api-overview&quot;&gt;admin API&lt;/a&gt;来管理,目前租客有两个方面可被配置。&lt;/p&gt;
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Tenants · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;租户像命名空间一样,可以使用 &lt;a href=&quot;/docs/zh-CN/2.1.0-incubating/admin-api-overview&quot;&gt;管理员 API&lt;/a&gt;管理。目前租户有两个可配置的方面:&lt;/p&gt;
+"/><meta name="docsearch:version" content="2.1.0-incubating"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Managing Tenants · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;租户像命名空间一样,可以使用 &lt;a href=&quot;/docs/zh-CN/2.1.0-incubating/admin-api-overview&quot;&gt;管理员 API&lt;/a&gt;管理。目前租户有两个可配置的方面:&lt;/p&gt;
 "/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://pulsar.incubator.apache.org/img/pulsar.svg"/><link rel="shortcut icon" href="/img/pulsar.ico"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><link rel="alternate" type="application/atom+xml" href="https://pulsar.incubator.apache.org/blog/atom.x [...]
               (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),
@@ -70,7 +70,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><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 Tenants</h1></header><article><div><span><p>租户,如命名空间,可以使用<a href="/docs/zh-CN/2.1.0-incubating/admin-api-overview">admin API</a>来管理,目前租客有两个方面可被配置。</p>
+        </script></nav></div><div class="container mainContainer"><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 Tenants</h1></header><article><div><span><p>租户像命名空间一样,可以使用 <a href="/docs/zh-CN/2.1.0-incubating/admin-api-overview">管理员 API</a>管理。目前租户有两个可配置的方面:</p>
 <ul>
 <li>Admin角色</li>
 <li>被认可的集群</li>
@@ -78,10 +78,10 @@
 <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 [...]
 <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>你可以通过使用<a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin#tenants-list"><code>list</code></a>子命令,列出<a href="/docs/zh-CN/2.1.0-incubating/reference-terminology#instance">实例</a>关联的所有租户:</p>
+<p>你可以使用<a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin#tenants-list"><code>list</code></a>子命令,列出所有与<a href="/docs/zh-CN/2.1.0-incubating/reference-terminology#instance">实例</a>相关联的租户:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin tenants list</span>
 </code></pre>
-<p>这将返回一个简单的list,如下:</p>
+<p>这将返回一个简单的列表,例如:</p>
 <pre><code class="hljs">my-tenant-1
 my-tenant-2
 </code></pre>
@@ -114,12 +114,12 @@ $</span><span class="bash"> pulsar-admin tenants create my-tenant \</span>
 </code></pre>
 <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 [...]
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-3"></a><a href="#pulsar-admin-3" 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- [...]
-<p>你可以删除租户,通过使用<a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin#tenants-delete"><code>delete</code></a>子命令并指定租户名称:</p>
+<p>你可以使用<a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin#tenants-delete"><code>delete</code></a>子命令并指定租户名称来删除租户:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin tenants delete my-tenant</span>
 </code></pre>
 <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 [...]
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-4"></a><a href="#pulsar-admin-4" 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- [...]
-<p>你可以更新租户的配置,通过使用<a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin#tenants-update"><code>update</code></a>子命令</p>
+<p>你可以使用<a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin#tenants-update"><code>update</code></a>子命令更新租户的配置</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/admin-api-clusters"><span class="arrow-prev">← </span><span>集群</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/admin-api-brokers"><span>Brokers</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><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 =
diff --git a/content/docs/zh-CN/2.1.0-incubating/cookbooks-retention-expiry.html b/content/docs/zh-CN/2.1.0-incubating/cookbooks-retention-expiry.html
index 14dbe52..7332c26 100644
--- a/content/docs/zh-CN/2.1.0-incubating/cookbooks-retention-expiry.html
+++ b/content/docs/zh-CN/2.1.0-incubating/cookbooks-retention-expiry.html
@@ -80,20 +80,20 @@
 <li>通过设置 <a href="#retention-policies">保留策略</a>,可以持久地存储已经被使用和确认的消息,并将其保留最少时间。</li>
 <li>通过指定[生存时间](#time-to-live- TTL) (TTL),可以自动将未在指定时间范围内得到确认的消息标记为已消费。</li>
 </ul>
-<p>Pulsar's <a href="/docs/zh-CN/2.1.0-incubating/admin-api-overview">admin interface</a> enables you to manage both retention policies and TTL at the namespace level (and thus within a specific tenant and either on a specific cluster or in the <a href="/docs/zh-CN/2.1.0-incubating/concepts-architecture-overview#global-cluster"><code>global</code></a> cluster).</p>
+<p>Pulsar的 <a href="/docs/zh-CN/2.1.0-incubating/admin-api-overview">admin interface</a> 使您能够在命名空间级别管理保留策略和TTL(在指定集群或<a href="/docs/zh-CN/2.1.0-incubating/concepts-architecture-overview#global-cluster"><code>全局</code></a>集群的租户内)。</p>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="retention-and-ttl-are-solving-two-different-problems"></a><a href="#retention-and-ttl-are-solving-two-different-problems" 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.5S [...]
+<h4><a class="anchor" aria-hidden="true" id="保留策略和ttl解决的是两个不同的问题"></a><a href="#保留策略和ttl解决的是两个不同的问题" 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.2 [...]
 <ul>
-<li>Message retention: Keep the data for at least X hours (even if acknowledged)</li>
-<li>Time-to-live: Discard data after some time (by automatically acknowledging)</li>
+<li>消息保留: 保存数据至少X小时(即使消息已被确认消费)</li>
+<li>生存时间(Ttl):一段时间后丢弃数据(通过自动确认)</li>
 </ul>
-<p>In most cases, applications will want to use either one or the other (or none).</p>
+<p>在大多数情况下,应用程序会使用其中一个策略(或不使用)。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="retention-policies"></a><a href="#retention-policies" 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- [...]
-<p>By default, when a Pulsar message arrives at a broker it will be stored until it has been acknowledged by a consumer, at which point it will be deleted. You can override this behavior and retain even messages that have already been acknowledged by setting a <em>retention policy</em> on all the topics in a given namespace. When you set a retention policy you can set either a <em>size limit</em> or a <em>time limit</em>.</p>
-<p>When you set a size limit of, say, 10 gigabytes, then messages in all topics in the namespace, <em>even acknowledged messages</em>, will be retained until the size limit for the topic is reached; if you set a time limit of, say, 1 day, then messages for all topics in the namespace will be retained for 24 hours.</p>
-<p>It is also possible to set <em>infinite</em> retention time or size, by setting <code>-1</code> for either time or size retention.</p>
-<h3><a class="anchor" aria-hidden="true" id="defaults"></a><a href="#defaults" 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 [...]
+<p>默认情况下,当消息到达broker时,它会被存储起来,直到消费者确认已消费它,此时它才被删除。 可以修改此行为,通过对给定命名空间中的所有主题设置 <em>保留策略</em> 保留已经确认的消息。 设置保留策略时,可以设置<em>大小限制</em>或<em>时间限制</em>。</p>
+<p>当设置一个大小限制,比如10GB,那么命名空间中的所有主题中的消息,<em>甚至已确认的消息</em> 都将被保留,直到达到主题的大小限制为止;如果将时间限制设置为1天,那么命名空间中所有主题的消息将保留24小时。</p>
+<p>还可以设置<em>无限</em>的保留时间或大小,方法是把保留时间或大小值设置为<code>-1</code>。</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 1-2.09V6 [...]
 <p>There are two configuration parameters that you can use to set <a href="/docs/zh-CN/2.1.0-incubating/reference-terminology#instance">instance</a>-wide defaults for message retention: <a href="/docs/zh-CN/2.1.0-incubating/reference-configuration#broker-defaultRetentionTimeInMinutes"><code>defaultRetentionTimeInMinutes=0</code></a> and <a href="/docs/zh-CN/2.1.0-incubating/reference-configuration#broker-defaultRetentionSizeInMB"><code>defaultRetentionSizeInMB=0</code></a>.</p>
 <p>Both of these parameters are in the <a href="/docs/zh-CN/2.1.0-incubating/reference-configuration#broker"><code>broker.conf</code></a> configuration file.</p>
 <h3><a class="anchor" aria-hidden="true" id="set-retention-policy"></a><a href="#set-retention-policy" 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 [...]
@@ -248,7 +248,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <h4><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" 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.namespaces().get
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/cookbooks-encryption"><span>Encryption</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#retention-policies">Retention policies</a><ul class="toc-headings"><l [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/cookbooks-encryption"><span>Encryption</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#保留策略">保留策略</a><ul class="toc-headings"><li><a href="#默认情况">默认情况</a></ [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.1.0-incubating/cookbooks-retention-expiry/index.html b/content/docs/zh-CN/2.1.0-incubating/cookbooks-retention-expiry/index.html
index 14dbe52..7332c26 100644
--- a/content/docs/zh-CN/2.1.0-incubating/cookbooks-retention-expiry/index.html
+++ b/content/docs/zh-CN/2.1.0-incubating/cookbooks-retention-expiry/index.html
@@ -80,20 +80,20 @@
 <li>通过设置 <a href="#retention-policies">保留策略</a>,可以持久地存储已经被使用和确认的消息,并将其保留最少时间。</li>
 <li>通过指定[生存时间](#time-to-live- TTL) (TTL),可以自动将未在指定时间范围内得到确认的消息标记为已消费。</li>
 </ul>
-<p>Pulsar's <a href="/docs/zh-CN/2.1.0-incubating/admin-api-overview">admin interface</a> enables you to manage both retention policies and TTL at the namespace level (and thus within a specific tenant and either on a specific cluster or in the <a href="/docs/zh-CN/2.1.0-incubating/concepts-architecture-overview#global-cluster"><code>global</code></a> cluster).</p>
+<p>Pulsar的 <a href="/docs/zh-CN/2.1.0-incubating/admin-api-overview">admin interface</a> 使您能够在命名空间级别管理保留策略和TTL(在指定集群或<a href="/docs/zh-CN/2.1.0-incubating/concepts-architecture-overview#global-cluster"><code>全局</code></a>集群的租户内)。</p>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="retention-and-ttl-are-solving-two-different-problems"></a><a href="#retention-and-ttl-are-solving-two-different-problems" 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.5S [...]
+<h4><a class="anchor" aria-hidden="true" id="保留策略和ttl解决的是两个不同的问题"></a><a href="#保留策略和ttl解决的是两个不同的问题" 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.2 [...]
 <ul>
-<li>Message retention: Keep the data for at least X hours (even if acknowledged)</li>
-<li>Time-to-live: Discard data after some time (by automatically acknowledging)</li>
+<li>消息保留: 保存数据至少X小时(即使消息已被确认消费)</li>
+<li>生存时间(Ttl):一段时间后丢弃数据(通过自动确认)</li>
 </ul>
-<p>In most cases, applications will want to use either one or the other (or none).</p>
+<p>在大多数情况下,应用程序会使用其中一个策略(或不使用)。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="retention-policies"></a><a href="#retention-policies" 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- [...]
-<p>By default, when a Pulsar message arrives at a broker it will be stored until it has been acknowledged by a consumer, at which point it will be deleted. You can override this behavior and retain even messages that have already been acknowledged by setting a <em>retention policy</em> on all the topics in a given namespace. When you set a retention policy you can set either a <em>size limit</em> or a <em>time limit</em>.</p>
-<p>When you set a size limit of, say, 10 gigabytes, then messages in all topics in the namespace, <em>even acknowledged messages</em>, will be retained until the size limit for the topic is reached; if you set a time limit of, say, 1 day, then messages for all topics in the namespace will be retained for 24 hours.</p>
-<p>It is also possible to set <em>infinite</em> retention time or size, by setting <code>-1</code> for either time or size retention.</p>
-<h3><a class="anchor" aria-hidden="true" id="defaults"></a><a href="#defaults" 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 [...]
+<p>默认情况下,当消息到达broker时,它会被存储起来,直到消费者确认已消费它,此时它才被删除。 可以修改此行为,通过对给定命名空间中的所有主题设置 <em>保留策略</em> 保留已经确认的消息。 设置保留策略时,可以设置<em>大小限制</em>或<em>时间限制</em>。</p>
+<p>当设置一个大小限制,比如10GB,那么命名空间中的所有主题中的消息,<em>甚至已确认的消息</em> 都将被保留,直到达到主题的大小限制为止;如果将时间限制设置为1天,那么命名空间中所有主题的消息将保留24小时。</p>
+<p>还可以设置<em>无限</em>的保留时间或大小,方法是把保留时间或大小值设置为<code>-1</code>。</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 1-2.09V6 [...]
 <p>There are two configuration parameters that you can use to set <a href="/docs/zh-CN/2.1.0-incubating/reference-terminology#instance">instance</a>-wide defaults for message retention: <a href="/docs/zh-CN/2.1.0-incubating/reference-configuration#broker-defaultRetentionTimeInMinutes"><code>defaultRetentionTimeInMinutes=0</code></a> and <a href="/docs/zh-CN/2.1.0-incubating/reference-configuration#broker-defaultRetentionSizeInMB"><code>defaultRetentionSizeInMB=0</code></a>.</p>
 <p>Both of these parameters are in the <a href="/docs/zh-CN/2.1.0-incubating/reference-configuration#broker"><code>broker.conf</code></a> configuration file.</p>
 <h3><a class="anchor" aria-hidden="true" id="set-retention-policy"></a><a href="#set-retention-policy" 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 [...]
@@ -248,7 +248,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <h4><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" 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.namespaces().get
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/cookbooks-encryption"><span>Encryption</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#retention-policies">Retention policies</a><ul class="toc-headings"><l [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/cookbooks-encryption"><span>Encryption</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#保留策略">保留策略</a><ul class="toc-headings"><li><a href="#默认情况">默认情况</a></ [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.1.1-incubating/admin-api-tenants.html b/content/docs/zh-CN/2.1.1-incubating/admin-api-tenants.html
index e995de6..9ae567d 100644
--- a/content/docs/zh-CN/2.1.1-incubating/admin-api-tenants.html
+++ b/content/docs/zh-CN/2.1.1-incubating/admin-api-tenants.html
@@ -1,5 +1,5 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Tenants · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;租户,如命名空间,可以使用&lt;a href=&quot;/docs/zh-CN/2.1.1-incubating/admin-api-overview&quot;&gt;admin API&lt;/a&gt;来管理,目前租客有两个方面可被配置。&lt;/p&gt;
-"/><meta name="docsearch:version" content="2.1.1-incubating"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Managing Tenants · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;租户,如命名空间,可以使用&lt;a href=&quot;/docs/zh-CN/2.1.1-incubating/admin-api-overview&quot;&gt;admin API&lt;/a&gt;来管理,目前租客有两个方面可被配置。&lt;/p&gt;
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Tenants · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;租户像命名空间一样,可以使用 &lt;a href=&quot;/docs/zh-CN/2.1.1-incubating/admin-api-overview&quot;&gt;管理员 API&lt;/a&gt;管理。目前租户有两个可配置的方面:&lt;/p&gt;
+"/><meta name="docsearch:version" content="2.1.1-incubating"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Managing Tenants · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;租户像命名空间一样,可以使用 &lt;a href=&quot;/docs/zh-CN/2.1.1-incubating/admin-api-overview&quot;&gt;管理员 API&lt;/a&gt;管理。目前租户有两个可配置的方面:&lt;/p&gt;
 "/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://pulsar.incubator.apache.org/img/pulsar.svg"/><link rel="shortcut icon" href="/img/pulsar.ico"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><link rel="alternate" type="application/atom+xml" href="https://pulsar.incubator.apache.org/blog/atom.x [...]
               (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),
@@ -70,7 +70,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><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 Tenants</h1></header><article><div><span><p>租户,如命名空间,可以使用<a href="/docs/zh-CN/2.1.1-incubating/admin-api-overview">admin API</a>来管理,目前租客有两个方面可被配置。</p>
+        </script></nav></div><div class="container mainContainer"><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 Tenants</h1></header><article><div><span><p>租户像命名空间一样,可以使用 <a href="/docs/zh-CN/2.1.1-incubating/admin-api-overview">管理员 API</a>管理。目前租户有两个可配置的方面:</p>
 <ul>
 <li>Admin角色</li>
 <li>被认可的集群</li>
@@ -78,10 +78,10 @@
 <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 [...]
 <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>你可以通过使用<a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin#tenants-list"><code>list</code></a>子命令,列出<a href="/docs/zh-CN/2.1.1-incubating/reference-terminology#instance">实例</a>关联的所有租户:</p>
+<p>你可以使用<a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin#tenants-list"><code>list</code></a>子命令,列出所有与<a href="/docs/zh-CN/2.1.1-incubating/reference-terminology#instance">实例</a>相关联的租户:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin tenants list</span>
 </code></pre>
-<p>这将返回一个简单的list,如下:</p>
+<p>这将返回一个简单的列表,例如:</p>
 <pre><code class="hljs">my-tenant-1
 my-tenant-2
 </code></pre>
@@ -114,12 +114,12 @@ $</span><span class="bash"> pulsar-admin tenants create my-tenant \</span>
 </code></pre>
 <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 [...]
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-3"></a><a href="#pulsar-admin-3" 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- [...]
-<p>你可以删除租户,通过使用<a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin#tenants-delete"><code>delete</code></a>子命令并指定租户名称:</p>
+<p>你可以使用<a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin#tenants-delete"><code>delete</code></a>子命令并指定租户名称来删除租户:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin tenants delete my-tenant</span>
 </code></pre>
 <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 [...]
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-4"></a><a href="#pulsar-admin-4" 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- [...]
-<p>你可以更新租户的配置,通过使用<a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin#tenants-update"><code>update</code></a>子命令</p>
+<p>你可以使用<a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin#tenants-update"><code>update</code></a>子命令更新租户的配置</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/admin-api-clusters"><span class="arrow-prev">← </span><span>集群</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/admin-api-brokers"><span>Brokers</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><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 =
diff --git a/content/docs/zh-CN/2.1.1-incubating/admin-api-tenants/index.html b/content/docs/zh-CN/2.1.1-incubating/admin-api-tenants/index.html
index e995de6..9ae567d 100644
--- a/content/docs/zh-CN/2.1.1-incubating/admin-api-tenants/index.html
+++ b/content/docs/zh-CN/2.1.1-incubating/admin-api-tenants/index.html
@@ -1,5 +1,5 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Tenants · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;租户,如命名空间,可以使用&lt;a href=&quot;/docs/zh-CN/2.1.1-incubating/admin-api-overview&quot;&gt;admin API&lt;/a&gt;来管理,目前租客有两个方面可被配置。&lt;/p&gt;
-"/><meta name="docsearch:version" content="2.1.1-incubating"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Managing Tenants · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;租户,如命名空间,可以使用&lt;a href=&quot;/docs/zh-CN/2.1.1-incubating/admin-api-overview&quot;&gt;admin API&lt;/a&gt;来管理,目前租客有两个方面可被配置。&lt;/p&gt;
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Tenants · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;租户像命名空间一样,可以使用 &lt;a href=&quot;/docs/zh-CN/2.1.1-incubating/admin-api-overview&quot;&gt;管理员 API&lt;/a&gt;管理。目前租户有两个可配置的方面:&lt;/p&gt;
+"/><meta name="docsearch:version" content="2.1.1-incubating"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Managing Tenants · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;租户像命名空间一样,可以使用 &lt;a href=&quot;/docs/zh-CN/2.1.1-incubating/admin-api-overview&quot;&gt;管理员 API&lt;/a&gt;管理。目前租户有两个可配置的方面:&lt;/p&gt;
 "/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://pulsar.incubator.apache.org/img/pulsar.svg"/><link rel="shortcut icon" href="/img/pulsar.ico"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><link rel="alternate" type="application/atom+xml" href="https://pulsar.incubator.apache.org/blog/atom.x [...]
               (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),
@@ -70,7 +70,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><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 Tenants</h1></header><article><div><span><p>租户,如命名空间,可以使用<a href="/docs/zh-CN/2.1.1-incubating/admin-api-overview">admin API</a>来管理,目前租客有两个方面可被配置。</p>
+        </script></nav></div><div class="container mainContainer"><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 Tenants</h1></header><article><div><span><p>租户像命名空间一样,可以使用 <a href="/docs/zh-CN/2.1.1-incubating/admin-api-overview">管理员 API</a>管理。目前租户有两个可配置的方面:</p>
 <ul>
 <li>Admin角色</li>
 <li>被认可的集群</li>
@@ -78,10 +78,10 @@
 <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 [...]
 <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>你可以通过使用<a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin#tenants-list"><code>list</code></a>子命令,列出<a href="/docs/zh-CN/2.1.1-incubating/reference-terminology#instance">实例</a>关联的所有租户:</p>
+<p>你可以使用<a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin#tenants-list"><code>list</code></a>子命令,列出所有与<a href="/docs/zh-CN/2.1.1-incubating/reference-terminology#instance">实例</a>相关联的租户:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin tenants list</span>
 </code></pre>
-<p>这将返回一个简单的list,如下:</p>
+<p>这将返回一个简单的列表,例如:</p>
 <pre><code class="hljs">my-tenant-1
 my-tenant-2
 </code></pre>
@@ -114,12 +114,12 @@ $</span><span class="bash"> pulsar-admin tenants create my-tenant \</span>
 </code></pre>
 <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 [...]
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-3"></a><a href="#pulsar-admin-3" 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- [...]
-<p>你可以删除租户,通过使用<a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin#tenants-delete"><code>delete</code></a>子命令并指定租户名称:</p>
+<p>你可以使用<a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin#tenants-delete"><code>delete</code></a>子命令并指定租户名称来删除租户:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin tenants delete my-tenant</span>
 </code></pre>
 <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 [...]
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-4"></a><a href="#pulsar-admin-4" 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- [...]
-<p>你可以更新租户的配置,通过使用<a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin#tenants-update"><code>update</code></a>子命令</p>
+<p>你可以使用<a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin#tenants-update"><code>update</code></a>子命令更新租户的配置</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/admin-api-clusters"><span class="arrow-prev">← </span><span>集群</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/admin-api-brokers"><span>Brokers</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><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 =
diff --git a/content/docs/zh-CN/2.1.1-incubating/cookbooks-retention-expiry.html b/content/docs/zh-CN/2.1.1-incubating/cookbooks-retention-expiry.html
index 084b16f..f05e471 100644
--- a/content/docs/zh-CN/2.1.1-incubating/cookbooks-retention-expiry.html
+++ b/content/docs/zh-CN/2.1.1-incubating/cookbooks-retention-expiry.html
@@ -80,20 +80,20 @@
 <li>通过设置 <a href="#retention-policies">保留策略</a>,可以持久地存储已经被使用和确认的消息,并将其保留最少时间。</li>
 <li>通过指定[生存时间](#time-to-live- TTL) (TTL),可以自动将未在指定时间范围内得到确认的消息标记为已消费。</li>
 </ul>
-<p>Pulsar's <a href="/docs/zh-CN/2.1.1-incubating/admin-api-overview">admin interface</a> enables you to manage both retention policies and TTL at the namespace level (and thus within a specific tenant and either on a specific cluster or in the <a href="/docs/zh-CN/2.1.1-incubating/concepts-architecture-overview#global-cluster"><code>global</code></a> cluster).</p>
+<p>Pulsar的 <a href="/docs/zh-CN/2.1.1-incubating/admin-api-overview">admin interface</a> 使您能够在命名空间级别管理保留策略和TTL(在指定集群或<a href="/docs/zh-CN/2.1.1-incubating/concepts-architecture-overview#global-cluster"><code>全局</code></a>集群的租户内)。</p>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="retention-and-ttl-are-solving-two-different-problems"></a><a href="#retention-and-ttl-are-solving-two-different-problems" 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.5S [...]
+<h4><a class="anchor" aria-hidden="true" id="保留策略和ttl解决的是两个不同的问题"></a><a href="#保留策略和ttl解决的是两个不同的问题" 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.2 [...]
 <ul>
-<li>Message retention: Keep the data for at least X hours (even if acknowledged)</li>
-<li>Time-to-live: Discard data after some time (by automatically acknowledging)</li>
+<li>消息保留: 保存数据至少X小时(即使消息已被确认消费)</li>
+<li>生存时间(Ttl):一段时间后丢弃数据(通过自动确认)</li>
 </ul>
-<p>In most cases, applications will want to use either one or the other (or none).</p>
+<p>在大多数情况下,应用程序会使用其中一个策略(或不使用)。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="retention-policies"></a><a href="#retention-policies" 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- [...]
-<p>By default, when a Pulsar message arrives at a broker it will be stored until it has been acknowledged by a consumer, at which point it will be deleted. You can override this behavior and retain even messages that have already been acknowledged by setting a <em>retention policy</em> on all the topics in a given namespace. When you set a retention policy you can set either a <em>size limit</em> or a <em>time limit</em>.</p>
-<p>When you set a size limit of, say, 10 gigabytes, then messages in all topics in the namespace, <em>even acknowledged messages</em>, will be retained until the size limit for the topic is reached; if you set a time limit of, say, 1 day, then messages for all topics in the namespace will be retained for 24 hours.</p>
-<p>It is also possible to set <em>infinite</em> retention time or size, by setting <code>-1</code> for either time or size retention.</p>
-<h3><a class="anchor" aria-hidden="true" id="defaults"></a><a href="#defaults" 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 [...]
+<p>默认情况下,当消息到达broker时,它会被存储起来,直到消费者确认已消费它,此时它才被删除。 可以修改此行为,通过对给定命名空间中的所有主题设置 <em>保留策略</em> 保留已经确认的消息。 设置保留策略时,可以设置<em>大小限制</em>或<em>时间限制</em>。</p>
+<p>当设置一个大小限制,比如10GB,那么命名空间中的所有主题中的消息,<em>甚至已确认的消息</em> 都将被保留,直到达到主题的大小限制为止;如果将时间限制设置为1天,那么命名空间中所有主题的消息将保留24小时。</p>
+<p>还可以设置<em>无限</em>的保留时间或大小,方法是把保留时间或大小值设置为<code>-1</code>。</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 1-2.09V6 [...]
 <p>There are two configuration parameters that you can use to set <a href="/docs/zh-CN/2.1.1-incubating/reference-terminology#instance">instance</a>-wide defaults for message retention: <a href="/docs/zh-CN/2.1.1-incubating/reference-configuration#broker-defaultRetentionTimeInMinutes"><code>defaultRetentionTimeInMinutes=0</code></a> and <a href="/docs/zh-CN/2.1.1-incubating/reference-configuration#broker-defaultRetentionSizeInMB"><code>defaultRetentionSizeInMB=0</code></a>.</p>
 <p>Both of these parameters are in the <a href="/docs/zh-CN/2.1.1-incubating/reference-configuration#broker"><code>broker.conf</code></a> configuration file.</p>
 <h3><a class="anchor" aria-hidden="true" id="set-retention-policy"></a><a href="#set-retention-policy" 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 [...]
@@ -248,7 +248,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <h4><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" 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.namespaces().get
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/cookbooks-encryption"><span>Encryption</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#retention-policies">Retention policies</a><ul class="toc-headings"><l [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/cookbooks-encryption"><span>Encryption</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#保留策略">保留策略</a><ul class="toc-headings"><li><a href="#默认情况">默认情况</a></ [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.1.1-incubating/cookbooks-retention-expiry/index.html b/content/docs/zh-CN/2.1.1-incubating/cookbooks-retention-expiry/index.html
index 084b16f..f05e471 100644
--- a/content/docs/zh-CN/2.1.1-incubating/cookbooks-retention-expiry/index.html
+++ b/content/docs/zh-CN/2.1.1-incubating/cookbooks-retention-expiry/index.html
@@ -80,20 +80,20 @@
 <li>通过设置 <a href="#retention-policies">保留策略</a>,可以持久地存储已经被使用和确认的消息,并将其保留最少时间。</li>
 <li>通过指定[生存时间](#time-to-live- TTL) (TTL),可以自动将未在指定时间范围内得到确认的消息标记为已消费。</li>
 </ul>
-<p>Pulsar's <a href="/docs/zh-CN/2.1.1-incubating/admin-api-overview">admin interface</a> enables you to manage both retention policies and TTL at the namespace level (and thus within a specific tenant and either on a specific cluster or in the <a href="/docs/zh-CN/2.1.1-incubating/concepts-architecture-overview#global-cluster"><code>global</code></a> cluster).</p>
+<p>Pulsar的 <a href="/docs/zh-CN/2.1.1-incubating/admin-api-overview">admin interface</a> 使您能够在命名空间级别管理保留策略和TTL(在指定集群或<a href="/docs/zh-CN/2.1.1-incubating/concepts-architecture-overview#global-cluster"><code>全局</code></a>集群的租户内)。</p>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="retention-and-ttl-are-solving-two-different-problems"></a><a href="#retention-and-ttl-are-solving-two-different-problems" 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.5S [...]
+<h4><a class="anchor" aria-hidden="true" id="保留策略和ttl解决的是两个不同的问题"></a><a href="#保留策略和ttl解决的是两个不同的问题" 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.2 [...]
 <ul>
-<li>Message retention: Keep the data for at least X hours (even if acknowledged)</li>
-<li>Time-to-live: Discard data after some time (by automatically acknowledging)</li>
+<li>消息保留: 保存数据至少X小时(即使消息已被确认消费)</li>
+<li>生存时间(Ttl):一段时间后丢弃数据(通过自动确认)</li>
 </ul>
-<p>In most cases, applications will want to use either one or the other (or none).</p>
+<p>在大多数情况下,应用程序会使用其中一个策略(或不使用)。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="retention-policies"></a><a href="#retention-policies" 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- [...]
-<p>By default, when a Pulsar message arrives at a broker it will be stored until it has been acknowledged by a consumer, at which point it will be deleted. You can override this behavior and retain even messages that have already been acknowledged by setting a <em>retention policy</em> on all the topics in a given namespace. When you set a retention policy you can set either a <em>size limit</em> or a <em>time limit</em>.</p>
-<p>When you set a size limit of, say, 10 gigabytes, then messages in all topics in the namespace, <em>even acknowledged messages</em>, will be retained until the size limit for the topic is reached; if you set a time limit of, say, 1 day, then messages for all topics in the namespace will be retained for 24 hours.</p>
-<p>It is also possible to set <em>infinite</em> retention time or size, by setting <code>-1</code> for either time or size retention.</p>
-<h3><a class="anchor" aria-hidden="true" id="defaults"></a><a href="#defaults" 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 [...]
+<p>默认情况下,当消息到达broker时,它会被存储起来,直到消费者确认已消费它,此时它才被删除。 可以修改此行为,通过对给定命名空间中的所有主题设置 <em>保留策略</em> 保留已经确认的消息。 设置保留策略时,可以设置<em>大小限制</em>或<em>时间限制</em>。</p>
+<p>当设置一个大小限制,比如10GB,那么命名空间中的所有主题中的消息,<em>甚至已确认的消息</em> 都将被保留,直到达到主题的大小限制为止;如果将时间限制设置为1天,那么命名空间中所有主题的消息将保留24小时。</p>
+<p>还可以设置<em>无限</em>的保留时间或大小,方法是把保留时间或大小值设置为<code>-1</code>。</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 1-2.09V6 [...]
 <p>There are two configuration parameters that you can use to set <a href="/docs/zh-CN/2.1.1-incubating/reference-terminology#instance">instance</a>-wide defaults for message retention: <a href="/docs/zh-CN/2.1.1-incubating/reference-configuration#broker-defaultRetentionTimeInMinutes"><code>defaultRetentionTimeInMinutes=0</code></a> and <a href="/docs/zh-CN/2.1.1-incubating/reference-configuration#broker-defaultRetentionSizeInMB"><code>defaultRetentionSizeInMB=0</code></a>.</p>
 <p>Both of these parameters are in the <a href="/docs/zh-CN/2.1.1-incubating/reference-configuration#broker"><code>broker.conf</code></a> configuration file.</p>
 <h3><a class="anchor" aria-hidden="true" id="set-retention-policy"></a><a href="#set-retention-policy" 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 [...]
@@ -248,7 +248,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <h4><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" 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.namespaces().get
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/cookbooks-encryption"><span>Encryption</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#retention-policies">Retention policies</a><ul class="toc-headings"><l [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/cookbooks-encryption"><span>Encryption</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#保留策略">保留策略</a><ul class="toc-headings"><li><a href="#默认情况">默认情况</a></ [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.2.0/admin-api-tenants.html b/content/docs/zh-CN/2.2.0/admin-api-tenants.html
index 87ee76c..e87e150 100644
--- a/content/docs/zh-CN/2.2.0/admin-api-tenants.html
+++ b/content/docs/zh-CN/2.2.0/admin-api-tenants.html
@@ -1,5 +1,5 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Tenants · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;租户,如命名空间,可以使用&lt;a href=&quot;/docs/zh-CN/2.2.0/admin-api-overview&quot;&gt;admin API&lt;/a&gt;来管理,目前租客有两个方面可被配置。&lt;/p&gt;
-"/><meta name="docsearch:version" content="2.2.0"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Managing Tenants · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;租户,如命名空间,可以使用&lt;a href=&quot;/docs/zh-CN/2.2.0/admin-api-overview&quot;&gt;admin API&lt;/a&gt;来管理,目前租客有两个方面可被配置。&lt;/p&gt;
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Tenants · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;租户像命名空间一样,可以使用 &lt;a href=&quot;/docs/zh-CN/2.2.0/admin-api-overview&quot;&gt;管理员 API&lt;/a&gt;管理。目前租户有两个可配置的方面:&lt;/p&gt;
+"/><meta name="docsearch:version" content="2.2.0"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Managing Tenants · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;租户像命名空间一样,可以使用 &lt;a href=&quot;/docs/zh-CN/2.2.0/admin-api-overview&quot;&gt;管理员 API&lt;/a&gt;管理。目前租户有两个可配置的方面:&lt;/p&gt;
 "/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://pulsar.incubator.apache.org/img/pulsar.svg"/><link rel="shortcut icon" href="/img/pulsar.ico"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><link rel="alternate" type="application/atom+xml" href="https://pulsar.incubator.apache.org/blog/atom.x [...]
               (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),
@@ -70,7 +70,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><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 Tenants</h1></header><article><div><span><p>租户,如命名空间,可以使用<a href="/docs/zh-CN/2.2.0/admin-api-overview">admin API</a>来管理,目前租客有两个方面可被配置。</p>
+        </script></nav></div><div class="container mainContainer"><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 Tenants</h1></header><article><div><span><p>租户像命名空间一样,可以使用 <a href="/docs/zh-CN/2.2.0/admin-api-overview">管理员 API</a>管理。目前租户有两个可配置的方面:</p>
 <ul>
 <li>Admin角色</li>
 <li>被认可的集群</li>
@@ -78,10 +78,10 @@
 <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 [...]
 <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>你可以通过使用<a href="/docs/zh-CN/2.2.0/pulsar-admin#tenants-list"><code>list</code></a>子命令,列出<a href="/docs/zh-CN/2.2.0/reference-terminology#instance">实例</a>关联的所有租户:</p>
+<p>你可以使用<a href="/docs/zh-CN/2.2.0/pulsar-admin#tenants-list"><code>list</code></a>子命令,列出所有与<a href="/docs/zh-CN/2.2.0/reference-terminology#instance">实例</a>相关联的租户:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin tenants list</span>
 </code></pre>
-<p>这将返回一个简单的list,如下:</p>
+<p>这将返回一个简单的列表,例如:</p>
 <pre><code class="hljs">my-tenant-1
 my-tenant-2
 </code></pre>
@@ -114,12 +114,12 @@ $</span><span class="bash"> pulsar-admin tenants create my-tenant \</span>
 </code></pre>
 <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 [...]
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-3"></a><a href="#pulsar-admin-3" 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- [...]
-<p>你可以删除租户,通过使用<a href="/docs/zh-CN/2.2.0/pulsar-admin#tenants-delete"><code>delete</code></a>子命令并指定租户名称:</p>
+<p>你可以使用<a href="/docs/zh-CN/2.2.0/pulsar-admin#tenants-delete"><code>delete</code></a>子命令并指定租户名称来删除租户:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin tenants delete my-tenant</span>
 </code></pre>
 <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 [...]
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-4"></a><a href="#pulsar-admin-4" 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- [...]
-<p>你可以更新租户的配置,通过使用<a href="/docs/zh-CN/2.2.0/pulsar-admin#tenants-update"><code>update</code></a>子命令</p>
+<p>你可以使用<a href="/docs/zh-CN/2.2.0/pulsar-admin#tenants-update"><code>update</code></a>子命令更新租户的配置</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.0/admin-api-clusters"><span class="arrow-prev">← </span><span>集群</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.0/admin-api-brokers"><span>Brokers</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#租户资源">租户资源</a><ul class="toc-headings"><li><a href="#列出">列出</a></li><li><a href="#创建">创建</a></li><li>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/zh-CN/2.2.0/admin-api-tenants/index.html b/content/docs/zh-CN/2.2.0/admin-api-tenants/index.html
index 87ee76c..e87e150 100644
--- a/content/docs/zh-CN/2.2.0/admin-api-tenants/index.html
+++ b/content/docs/zh-CN/2.2.0/admin-api-tenants/index.html
@@ -1,5 +1,5 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Tenants · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;租户,如命名空间,可以使用&lt;a href=&quot;/docs/zh-CN/2.2.0/admin-api-overview&quot;&gt;admin API&lt;/a&gt;来管理,目前租客有两个方面可被配置。&lt;/p&gt;
-"/><meta name="docsearch:version" content="2.2.0"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Managing Tenants · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;租户,如命名空间,可以使用&lt;a href=&quot;/docs/zh-CN/2.2.0/admin-api-overview&quot;&gt;admin API&lt;/a&gt;来管理,目前租客有两个方面可被配置。&lt;/p&gt;
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Tenants · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;租户像命名空间一样,可以使用 &lt;a href=&quot;/docs/zh-CN/2.2.0/admin-api-overview&quot;&gt;管理员 API&lt;/a&gt;管理。目前租户有两个可配置的方面:&lt;/p&gt;
+"/><meta name="docsearch:version" content="2.2.0"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Managing Tenants · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;租户像命名空间一样,可以使用 &lt;a href=&quot;/docs/zh-CN/2.2.0/admin-api-overview&quot;&gt;管理员 API&lt;/a&gt;管理。目前租户有两个可配置的方面:&lt;/p&gt;
 "/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://pulsar.incubator.apache.org/img/pulsar.svg"/><link rel="shortcut icon" href="/img/pulsar.ico"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><link rel="alternate" type="application/atom+xml" href="https://pulsar.incubator.apache.org/blog/atom.x [...]
               (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),
@@ -70,7 +70,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><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 Tenants</h1></header><article><div><span><p>租户,如命名空间,可以使用<a href="/docs/zh-CN/2.2.0/admin-api-overview">admin API</a>来管理,目前租客有两个方面可被配置。</p>
+        </script></nav></div><div class="container mainContainer"><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 Tenants</h1></header><article><div><span><p>租户像命名空间一样,可以使用 <a href="/docs/zh-CN/2.2.0/admin-api-overview">管理员 API</a>管理。目前租户有两个可配置的方面:</p>
 <ul>
 <li>Admin角色</li>
 <li>被认可的集群</li>
@@ -78,10 +78,10 @@
 <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 [...]
 <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>你可以通过使用<a href="/docs/zh-CN/2.2.0/pulsar-admin#tenants-list"><code>list</code></a>子命令,列出<a href="/docs/zh-CN/2.2.0/reference-terminology#instance">实例</a>关联的所有租户:</p>
+<p>你可以使用<a href="/docs/zh-CN/2.2.0/pulsar-admin#tenants-list"><code>list</code></a>子命令,列出所有与<a href="/docs/zh-CN/2.2.0/reference-terminology#instance">实例</a>相关联的租户:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin tenants list</span>
 </code></pre>
-<p>这将返回一个简单的list,如下:</p>
+<p>这将返回一个简单的列表,例如:</p>
 <pre><code class="hljs">my-tenant-1
 my-tenant-2
 </code></pre>
@@ -114,12 +114,12 @@ $</span><span class="bash"> pulsar-admin tenants create my-tenant \</span>
 </code></pre>
 <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 [...]
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-3"></a><a href="#pulsar-admin-3" 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- [...]
-<p>你可以删除租户,通过使用<a href="/docs/zh-CN/2.2.0/pulsar-admin#tenants-delete"><code>delete</code></a>子命令并指定租户名称:</p>
+<p>你可以使用<a href="/docs/zh-CN/2.2.0/pulsar-admin#tenants-delete"><code>delete</code></a>子命令并指定租户名称来删除租户:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin tenants delete my-tenant</span>
 </code></pre>
 <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 [...]
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-4"></a><a href="#pulsar-admin-4" 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- [...]
-<p>你可以更新租户的配置,通过使用<a href="/docs/zh-CN/2.2.0/pulsar-admin#tenants-update"><code>update</code></a>子命令</p>
+<p>你可以使用<a href="/docs/zh-CN/2.2.0/pulsar-admin#tenants-update"><code>update</code></a>子命令更新租户的配置</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.0/admin-api-clusters"><span class="arrow-prev">← </span><span>集群</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.0/admin-api-brokers"><span>Brokers</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#租户资源">租户资源</a><ul class="toc-headings"><li><a href="#列出">列出</a></li><li><a href="#创建">创建</a></li><li>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/zh-CN/2.2.0/cookbooks-retention-expiry.html b/content/docs/zh-CN/2.2.0/cookbooks-retention-expiry.html
index 4f07ec7..189c746 100644
--- a/content/docs/zh-CN/2.2.0/cookbooks-retention-expiry.html
+++ b/content/docs/zh-CN/2.2.0/cookbooks-retention-expiry.html
@@ -80,20 +80,20 @@
 <li>通过设置 <a href="#retention-policies">保留策略</a>,可以持久地存储已经被使用和确认的消息,并将其保留最少时间。</li>
 <li>通过指定[生存时间](#time-to-live- TTL) (TTL),可以自动将未在指定时间范围内得到确认的消息标记为已消费。</li>
 </ul>
-<p>Pulsar's <a href="/docs/zh-CN/2.2.0/admin-api-overview">admin interface</a> enables you to manage both retention policies and TTL at the namespace level (and thus within a specific tenant and either on a specific cluster or in the <a href="/docs/zh-CN/2.2.0/concepts-architecture-overview#global-cluster"><code>global</code></a> cluster).</p>
+<p>Pulsar的 <a href="/docs/zh-CN/2.2.0/admin-api-overview">admin interface</a> 使您能够在命名空间级别管理保留策略和TTL(在指定集群或<a href="/docs/zh-CN/2.2.0/concepts-architecture-overview#global-cluster"><code>全局</code></a>集群的租户内)。</p>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="retention-and-ttl-are-solving-two-different-problems"></a><a href="#retention-and-ttl-are-solving-two-different-problems" 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.5S [...]
+<h4><a class="anchor" aria-hidden="true" id="保留策略和ttl解决的是两个不同的问题"></a><a href="#保留策略和ttl解决的是两个不同的问题" 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.2 [...]
 <ul>
-<li>Message retention: Keep the data for at least X hours (even if acknowledged)</li>
-<li>Time-to-live: Discard data after some time (by automatically acknowledging)</li>
+<li>消息保留: 保存数据至少X小时(即使消息已被确认消费)</li>
+<li>生存时间(Ttl):一段时间后丢弃数据(通过自动确认)</li>
 </ul>
-<p>In most cases, applications will want to use either one or the other (or none).</p>
+<p>在大多数情况下,应用程序会使用其中一个策略(或不使用)。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="retention-policies"></a><a href="#retention-policies" 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- [...]
-<p>By default, when a Pulsar message arrives at a broker it will be stored until it has been acknowledged by a consumer, at which point it will be deleted. You can override this behavior and retain even messages that have already been acknowledged by setting a <em>retention policy</em> on all the topics in a given namespace. When you set a retention policy you can set either a <em>size limit</em> or a <em>time limit</em>.</p>
-<p>When you set a size limit of, say, 10 gigabytes, then messages in all topics in the namespace, <em>even acknowledged messages</em>, will be retained until the size limit for the topic is reached; if you set a time limit of, say, 1 day, then messages for all topics in the namespace will be retained for 24 hours.</p>
-<p>It is also possible to set <em>infinite</em> retention time or size, by setting <code>-1</code> for either time or size retention.</p>
-<h3><a class="anchor" aria-hidden="true" id="defaults"></a><a href="#defaults" 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 [...]
+<p>默认情况下,当消息到达broker时,它会被存储起来,直到消费者确认已消费它,此时它才被删除。 可以修改此行为,通过对给定命名空间中的所有主题设置 <em>保留策略</em> 保留已经确认的消息。 设置保留策略时,可以设置<em>大小限制</em>或<em>时间限制</em>。</p>
+<p>当设置一个大小限制,比如10GB,那么命名空间中的所有主题中的消息,<em>甚至已确认的消息</em> 都将被保留,直到达到主题的大小限制为止;如果将时间限制设置为1天,那么命名空间中所有主题的消息将保留24小时。</p>
+<p>还可以设置<em>无限</em>的保留时间或大小,方法是把保留时间或大小值设置为<code>-1</code>。</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 1-2.09V6 [...]
 <p>There are two configuration parameters that you can use to set <a href="/docs/zh-CN/2.2.0/reference-terminology#instance">instance</a>-wide defaults for message retention: <a href="/docs/zh-CN/2.2.0/reference-configuration#broker-defaultRetentionTimeInMinutes"><code>defaultRetentionTimeInMinutes=0</code></a> and <a href="/docs/zh-CN/2.2.0/reference-configuration#broker-defaultRetentionSizeInMB"><code>defaultRetentionSizeInMB=0</code></a>.</p>
 <p>Both of these parameters are in the <a href="/docs/zh-CN/2.2.0/reference-configuration#broker"><code>broker.conf</code></a> configuration file.</p>
 <h3><a class="anchor" aria-hidden="true" id="set-retention-policy"></a><a href="#set-retention-policy" 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 [...]
@@ -248,7 +248,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <h4><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" 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.namespaces().get
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.0/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.0/cookbooks-encryption"><span>Encryption</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#retention-policies">Retention policies</a><ul class="toc-headings"><li><a href="#defaults"> [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.0/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.0/cookbooks-encryption"><span>Encryption</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#保留策略">保留策略</a><ul class="toc-headings"><li><a href="#默认情况">默认情况</a></li><li><a href="#set-r [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.2.0/cookbooks-retention-expiry/index.html b/content/docs/zh-CN/2.2.0/cookbooks-retention-expiry/index.html
index 4f07ec7..189c746 100644
--- a/content/docs/zh-CN/2.2.0/cookbooks-retention-expiry/index.html
+++ b/content/docs/zh-CN/2.2.0/cookbooks-retention-expiry/index.html
@@ -80,20 +80,20 @@
 <li>通过设置 <a href="#retention-policies">保留策略</a>,可以持久地存储已经被使用和确认的消息,并将其保留最少时间。</li>
 <li>通过指定[生存时间](#time-to-live- TTL) (TTL),可以自动将未在指定时间范围内得到确认的消息标记为已消费。</li>
 </ul>
-<p>Pulsar's <a href="/docs/zh-CN/2.2.0/admin-api-overview">admin interface</a> enables you to manage both retention policies and TTL at the namespace level (and thus within a specific tenant and either on a specific cluster or in the <a href="/docs/zh-CN/2.2.0/concepts-architecture-overview#global-cluster"><code>global</code></a> cluster).</p>
+<p>Pulsar的 <a href="/docs/zh-CN/2.2.0/admin-api-overview">admin interface</a> 使您能够在命名空间级别管理保留策略和TTL(在指定集群或<a href="/docs/zh-CN/2.2.0/concepts-architecture-overview#global-cluster"><code>全局</code></a>集群的租户内)。</p>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="retention-and-ttl-are-solving-two-different-problems"></a><a href="#retention-and-ttl-are-solving-two-different-problems" 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.5S [...]
+<h4><a class="anchor" aria-hidden="true" id="保留策略和ttl解决的是两个不同的问题"></a><a href="#保留策略和ttl解决的是两个不同的问题" 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.2 [...]
 <ul>
-<li>Message retention: Keep the data for at least X hours (even if acknowledged)</li>
-<li>Time-to-live: Discard data after some time (by automatically acknowledging)</li>
+<li>消息保留: 保存数据至少X小时(即使消息已被确认消费)</li>
+<li>生存时间(Ttl):一段时间后丢弃数据(通过自动确认)</li>
 </ul>
-<p>In most cases, applications will want to use either one or the other (or none).</p>
+<p>在大多数情况下,应用程序会使用其中一个策略(或不使用)。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="retention-policies"></a><a href="#retention-policies" 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- [...]
-<p>By default, when a Pulsar message arrives at a broker it will be stored until it has been acknowledged by a consumer, at which point it will be deleted. You can override this behavior and retain even messages that have already been acknowledged by setting a <em>retention policy</em> on all the topics in a given namespace. When you set a retention policy you can set either a <em>size limit</em> or a <em>time limit</em>.</p>
-<p>When you set a size limit of, say, 10 gigabytes, then messages in all topics in the namespace, <em>even acknowledged messages</em>, will be retained until the size limit for the topic is reached; if you set a time limit of, say, 1 day, then messages for all topics in the namespace will be retained for 24 hours.</p>
-<p>It is also possible to set <em>infinite</em> retention time or size, by setting <code>-1</code> for either time or size retention.</p>
-<h3><a class="anchor" aria-hidden="true" id="defaults"></a><a href="#defaults" 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 [...]
+<p>默认情况下,当消息到达broker时,它会被存储起来,直到消费者确认已消费它,此时它才被删除。 可以修改此行为,通过对给定命名空间中的所有主题设置 <em>保留策略</em> 保留已经确认的消息。 设置保留策略时,可以设置<em>大小限制</em>或<em>时间限制</em>。</p>
+<p>当设置一个大小限制,比如10GB,那么命名空间中的所有主题中的消息,<em>甚至已确认的消息</em> 都将被保留,直到达到主题的大小限制为止;如果将时间限制设置为1天,那么命名空间中所有主题的消息将保留24小时。</p>
+<p>还可以设置<em>无限</em>的保留时间或大小,方法是把保留时间或大小值设置为<code>-1</code>。</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 1-2.09V6 [...]
 <p>There are two configuration parameters that you can use to set <a href="/docs/zh-CN/2.2.0/reference-terminology#instance">instance</a>-wide defaults for message retention: <a href="/docs/zh-CN/2.2.0/reference-configuration#broker-defaultRetentionTimeInMinutes"><code>defaultRetentionTimeInMinutes=0</code></a> and <a href="/docs/zh-CN/2.2.0/reference-configuration#broker-defaultRetentionSizeInMB"><code>defaultRetentionSizeInMB=0</code></a>.</p>
 <p>Both of these parameters are in the <a href="/docs/zh-CN/2.2.0/reference-configuration#broker"><code>broker.conf</code></a> configuration file.</p>
 <h3><a class="anchor" aria-hidden="true" id="set-retention-policy"></a><a href="#set-retention-policy" 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 [...]
@@ -248,7 +248,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <h4><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" 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.namespaces().get
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.0/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.0/cookbooks-encryption"><span>Encryption</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#retention-policies">Retention policies</a><ul class="toc-headings"><li><a href="#defaults"> [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.0/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.0/cookbooks-encryption"><span>Encryption</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#保留策略">保留策略</a><ul class="toc-headings"><li><a href="#默认情况">默认情况</a></li><li><a href="#set-r [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.2.1/admin-api-tenants.html b/content/docs/zh-CN/2.2.1/admin-api-tenants.html
index e926a82..5389e4f 100644
--- a/content/docs/zh-CN/2.2.1/admin-api-tenants.html
+++ b/content/docs/zh-CN/2.2.1/admin-api-tenants.html
@@ -1,5 +1,5 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Tenants · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;租户,如命名空间,可以使用&lt;a href=&quot;/docs/zh-CN/2.2.1/admin-api-overview&quot;&gt;admin API&lt;/a&gt;来管理,目前租客有两个方面可被配置。&lt;/p&gt;
-"/><meta name="docsearch:version" content="2.2.1"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Managing Tenants · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;租户,如命名空间,可以使用&lt;a href=&quot;/docs/zh-CN/2.2.1/admin-api-overview&quot;&gt;admin API&lt;/a&gt;来管理,目前租客有两个方面可被配置。&lt;/p&gt;
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Tenants · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;租户像命名空间一样,可以使用 &lt;a href=&quot;/docs/zh-CN/2.2.1/admin-api-overview&quot;&gt;管理员 API&lt;/a&gt;管理。目前租户有两个可配置的方面:&lt;/p&gt;
+"/><meta name="docsearch:version" content="2.2.1"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Managing Tenants · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;租户像命名空间一样,可以使用 &lt;a href=&quot;/docs/zh-CN/2.2.1/admin-api-overview&quot;&gt;管理员 API&lt;/a&gt;管理。目前租户有两个可配置的方面:&lt;/p&gt;
 "/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://pulsar.incubator.apache.org/img/pulsar.svg"/><link rel="shortcut icon" href="/img/pulsar.ico"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><link rel="alternate" type="application/atom+xml" href="https://pulsar.incubator.apache.org/blog/atom.x [...]
               (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),
@@ -70,7 +70,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><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 Tenants</h1></header><article><div><span><p>租户,如命名空间,可以使用<a href="/docs/zh-CN/2.2.1/admin-api-overview">admin API</a>来管理,目前租客有两个方面可被配置。</p>
+        </script></nav></div><div class="container mainContainer"><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 Tenants</h1></header><article><div><span><p>租户像命名空间一样,可以使用 <a href="/docs/zh-CN/2.2.1/admin-api-overview">管理员 API</a>管理。目前租户有两个可配置的方面:</p>
 <ul>
 <li>Admin角色</li>
 <li>被认可的集群</li>
@@ -78,10 +78,10 @@
 <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 [...]
 <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>你可以通过使用<a href="/docs/zh-CN/2.2.1/pulsar-admin#tenants-list"><code>list</code></a>子命令,列出<a href="/docs/zh-CN/2.2.1/reference-terminology#instance">实例</a>关联的所有租户:</p>
+<p>你可以使用<a href="/docs/zh-CN/2.2.1/pulsar-admin#tenants-list"><code>list</code></a>子命令,列出所有与<a href="/docs/zh-CN/2.2.1/reference-terminology#instance">实例</a>相关联的租户:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin tenants list</span>
 </code></pre>
-<p>这将返回一个简单的list,如下:</p>
+<p>这将返回一个简单的列表,例如:</p>
 <pre><code class="hljs">my-tenant-1
 my-tenant-2
 </code></pre>
@@ -114,12 +114,12 @@ $</span><span class="bash"> pulsar-admin tenants create my-tenant \</span>
 </code></pre>
 <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 [...]
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-3"></a><a href="#pulsar-admin-3" 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- [...]
-<p>你可以删除租户,通过使用<a href="/docs/zh-CN/2.2.1/pulsar-admin#tenants-delete"><code>delete</code></a>子命令并指定租户名称:</p>
+<p>你可以使用<a href="/docs/zh-CN/2.2.1/pulsar-admin#tenants-delete"><code>delete</code></a>子命令并指定租户名称来删除租户:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin tenants delete my-tenant</span>
 </code></pre>
 <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 [...]
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-4"></a><a href="#pulsar-admin-4" 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- [...]
-<p>你可以更新租户的配置,通过使用<a href="/docs/zh-CN/2.2.1/pulsar-admin#tenants-update"><code>update</code></a>子命令</p>
+<p>你可以使用<a href="/docs/zh-CN/2.2.1/pulsar-admin#tenants-update"><code>update</code></a>子命令更新租户的配置</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.1/admin-api-clusters"><span class="arrow-prev">← </span><span>集群</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.1/admin-api-brokers"><span>Brokers</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#租户资源">租户资源</a><ul class="toc-headings"><li><a href="#列出">列出</a></li><li><a href="#创建">创建</a></li><li>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/zh-CN/2.2.1/admin-api-tenants/index.html b/content/docs/zh-CN/2.2.1/admin-api-tenants/index.html
index e926a82..5389e4f 100644
--- a/content/docs/zh-CN/2.2.1/admin-api-tenants/index.html
+++ b/content/docs/zh-CN/2.2.1/admin-api-tenants/index.html
@@ -1,5 +1,5 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Tenants · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;租户,如命名空间,可以使用&lt;a href=&quot;/docs/zh-CN/2.2.1/admin-api-overview&quot;&gt;admin API&lt;/a&gt;来管理,目前租客有两个方面可被配置。&lt;/p&gt;
-"/><meta name="docsearch:version" content="2.2.1"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Managing Tenants · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;租户,如命名空间,可以使用&lt;a href=&quot;/docs/zh-CN/2.2.1/admin-api-overview&quot;&gt;admin API&lt;/a&gt;来管理,目前租客有两个方面可被配置。&lt;/p&gt;
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Tenants · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;租户像命名空间一样,可以使用 &lt;a href=&quot;/docs/zh-CN/2.2.1/admin-api-overview&quot;&gt;管理员 API&lt;/a&gt;管理。目前租户有两个可配置的方面:&lt;/p&gt;
+"/><meta name="docsearch:version" content="2.2.1"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Managing Tenants · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;租户像命名空间一样,可以使用 &lt;a href=&quot;/docs/zh-CN/2.2.1/admin-api-overview&quot;&gt;管理员 API&lt;/a&gt;管理。目前租户有两个可配置的方面:&lt;/p&gt;
 "/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://pulsar.incubator.apache.org/img/pulsar.svg"/><link rel="shortcut icon" href="/img/pulsar.ico"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><link rel="alternate" type="application/atom+xml" href="https://pulsar.incubator.apache.org/blog/atom.x [...]
               (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),
@@ -70,7 +70,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><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 Tenants</h1></header><article><div><span><p>租户,如命名空间,可以使用<a href="/docs/zh-CN/2.2.1/admin-api-overview">admin API</a>来管理,目前租客有两个方面可被配置。</p>
+        </script></nav></div><div class="container mainContainer"><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 Tenants</h1></header><article><div><span><p>租户像命名空间一样,可以使用 <a href="/docs/zh-CN/2.2.1/admin-api-overview">管理员 API</a>管理。目前租户有两个可配置的方面:</p>
 <ul>
 <li>Admin角色</li>
 <li>被认可的集群</li>
@@ -78,10 +78,10 @@
 <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 [...]
 <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>你可以通过使用<a href="/docs/zh-CN/2.2.1/pulsar-admin#tenants-list"><code>list</code></a>子命令,列出<a href="/docs/zh-CN/2.2.1/reference-terminology#instance">实例</a>关联的所有租户:</p>
+<p>你可以使用<a href="/docs/zh-CN/2.2.1/pulsar-admin#tenants-list"><code>list</code></a>子命令,列出所有与<a href="/docs/zh-CN/2.2.1/reference-terminology#instance">实例</a>相关联的租户:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin tenants list</span>
 </code></pre>
-<p>这将返回一个简单的list,如下:</p>
+<p>这将返回一个简单的列表,例如:</p>
 <pre><code class="hljs">my-tenant-1
 my-tenant-2
 </code></pre>
@@ -114,12 +114,12 @@ $</span><span class="bash"> pulsar-admin tenants create my-tenant \</span>
 </code></pre>
 <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 [...]
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-3"></a><a href="#pulsar-admin-3" 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- [...]
-<p>你可以删除租户,通过使用<a href="/docs/zh-CN/2.2.1/pulsar-admin#tenants-delete"><code>delete</code></a>子命令并指定租户名称:</p>
+<p>你可以使用<a href="/docs/zh-CN/2.2.1/pulsar-admin#tenants-delete"><code>delete</code></a>子命令并指定租户名称来删除租户:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin tenants delete my-tenant</span>
 </code></pre>
 <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 [...]
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-4"></a><a href="#pulsar-admin-4" 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- [...]
-<p>你可以更新租户的配置,通过使用<a href="/docs/zh-CN/2.2.1/pulsar-admin#tenants-update"><code>update</code></a>子命令</p>
+<p>你可以使用<a href="/docs/zh-CN/2.2.1/pulsar-admin#tenants-update"><code>update</code></a>子命令更新租户的配置</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.1/admin-api-clusters"><span class="arrow-prev">← </span><span>集群</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.1/admin-api-brokers"><span>Brokers</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#租户资源">租户资源</a><ul class="toc-headings"><li><a href="#列出">列出</a></li><li><a href="#创建">创建</a></li><li>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/zh-CN/2.2.1/cookbooks-retention-expiry.html b/content/docs/zh-CN/2.2.1/cookbooks-retention-expiry.html
index c1c6941..c983e0e 100644
--- a/content/docs/zh-CN/2.2.1/cookbooks-retention-expiry.html
+++ b/content/docs/zh-CN/2.2.1/cookbooks-retention-expiry.html
@@ -80,20 +80,20 @@
 <li>通过设置 <a href="#retention-policies">保留策略</a>,可以持久地存储已经被使用和确认的消息,并将其保留最少时间。</li>
 <li>通过指定[生存时间](#time-to-live- TTL) (TTL),可以自动将未在指定时间范围内得到确认的消息标记为已消费。</li>
 </ul>
-<p>Pulsar's <a href="/docs/zh-CN/2.2.1/admin-api-overview">admin interface</a> enables you to manage both retention policies and TTL at the namespace level (and thus within a specific tenant and either on a specific cluster or in the <a href="/docs/zh-CN/2.2.1/concepts-architecture-overview#global-cluster"><code>global</code></a> cluster).</p>
+<p>Pulsar的 <a href="/docs/zh-CN/2.2.1/admin-api-overview">admin interface</a> 使您能够在命名空间级别管理保留策略和TTL(在指定集群或<a href="/docs/zh-CN/2.2.1/concepts-architecture-overview#global-cluster"><code>全局</code></a>集群的租户内)。</p>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="retention-and-ttl-are-solving-two-different-problems"></a><a href="#retention-and-ttl-are-solving-two-different-problems" 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.5S [...]
+<h4><a class="anchor" aria-hidden="true" id="保留策略和ttl解决的是两个不同的问题"></a><a href="#保留策略和ttl解决的是两个不同的问题" 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.2 [...]
 <ul>
-<li>Message retention: Keep the data for at least X hours (even if acknowledged)</li>
-<li>Time-to-live: Discard data after some time (by automatically acknowledging)</li>
+<li>消息保留: 保存数据至少X小时(即使消息已被确认消费)</li>
+<li>生存时间(Ttl):一段时间后丢弃数据(通过自动确认)</li>
 </ul>
-<p>In most cases, applications will want to use either one or the other (or none).</p>
+<p>在大多数情况下,应用程序会使用其中一个策略(或不使用)。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="retention-policies"></a><a href="#retention-policies" 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- [...]
-<p>By default, when a Pulsar message arrives at a broker it will be stored until it has been acknowledged by a consumer, at which point it will be deleted. You can override this behavior and retain even messages that have already been acknowledged by setting a <em>retention policy</em> on all the topics in a given namespace. When you set a retention policy you can set either a <em>size limit</em> or a <em>time limit</em>.</p>
-<p>When you set a size limit of, say, 10 gigabytes, then messages in all topics in the namespace, <em>even acknowledged messages</em>, will be retained until the size limit for the topic is reached; if you set a time limit of, say, 1 day, then messages for all topics in the namespace will be retained for 24 hours.</p>
-<p>It is also possible to set <em>infinite</em> retention time or size, by setting <code>-1</code> for either time or size retention.</p>
-<h3><a class="anchor" aria-hidden="true" id="defaults"></a><a href="#defaults" 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 [...]
+<p>默认情况下,当消息到达broker时,它会被存储起来,直到消费者确认已消费它,此时它才被删除。 可以修改此行为,通过对给定命名空间中的所有主题设置 <em>保留策略</em> 保留已经确认的消息。 设置保留策略时,可以设置<em>大小限制</em>或<em>时间限制</em>。</p>
+<p>当设置一个大小限制,比如10GB,那么命名空间中的所有主题中的消息,<em>甚至已确认的消息</em> 都将被保留,直到达到主题的大小限制为止;如果将时间限制设置为1天,那么命名空间中所有主题的消息将保留24小时。</p>
+<p>还可以设置<em>无限</em>的保留时间或大小,方法是把保留时间或大小值设置为<code>-1</code>。</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 1-2.09V6 [...]
 <p>There are two configuration parameters that you can use to set <a href="/docs/zh-CN/2.2.1/reference-terminology#instance">instance</a>-wide defaults for message retention: <a href="/docs/zh-CN/2.2.1/reference-configuration#broker-defaultRetentionTimeInMinutes"><code>defaultRetentionTimeInMinutes=0</code></a> and <a href="/docs/zh-CN/2.2.1/reference-configuration#broker-defaultRetentionSizeInMB"><code>defaultRetentionSizeInMB=0</code></a>.</p>
 <p>Both of these parameters are in the <a href="/docs/zh-CN/2.2.1/reference-configuration#broker"><code>broker.conf</code></a> configuration file.</p>
 <h3><a class="anchor" aria-hidden="true" id="set-retention-policy"></a><a href="#set-retention-policy" 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 [...]
@@ -248,7 +248,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <h4><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" 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.namespaces().get
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.1/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.1/cookbooks-encryption"><span>Encryption</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#retention-policies">Retention policies</a><ul class="toc-headings"><li><a href="#defaults"> [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.1/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.1/cookbooks-encryption"><span>Encryption</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#保留策略">保留策略</a><ul class="toc-headings"><li><a href="#默认情况">默认情况</a></li><li><a href="#set-r [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.2.1/cookbooks-retention-expiry/index.html b/content/docs/zh-CN/2.2.1/cookbooks-retention-expiry/index.html
index c1c6941..c983e0e 100644
--- a/content/docs/zh-CN/2.2.1/cookbooks-retention-expiry/index.html
+++ b/content/docs/zh-CN/2.2.1/cookbooks-retention-expiry/index.html
@@ -80,20 +80,20 @@
 <li>通过设置 <a href="#retention-policies">保留策略</a>,可以持久地存储已经被使用和确认的消息,并将其保留最少时间。</li>
 <li>通过指定[生存时间](#time-to-live- TTL) (TTL),可以自动将未在指定时间范围内得到确认的消息标记为已消费。</li>
 </ul>
-<p>Pulsar's <a href="/docs/zh-CN/2.2.1/admin-api-overview">admin interface</a> enables you to manage both retention policies and TTL at the namespace level (and thus within a specific tenant and either on a specific cluster or in the <a href="/docs/zh-CN/2.2.1/concepts-architecture-overview#global-cluster"><code>global</code></a> cluster).</p>
+<p>Pulsar的 <a href="/docs/zh-CN/2.2.1/admin-api-overview">admin interface</a> 使您能够在命名空间级别管理保留策略和TTL(在指定集群或<a href="/docs/zh-CN/2.2.1/concepts-architecture-overview#global-cluster"><code>全局</code></a>集群的租户内)。</p>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="retention-and-ttl-are-solving-two-different-problems"></a><a href="#retention-and-ttl-are-solving-two-different-problems" 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.5S [...]
+<h4><a class="anchor" aria-hidden="true" id="保留策略和ttl解决的是两个不同的问题"></a><a href="#保留策略和ttl解决的是两个不同的问题" 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.2 [...]
 <ul>
-<li>Message retention: Keep the data for at least X hours (even if acknowledged)</li>
-<li>Time-to-live: Discard data after some time (by automatically acknowledging)</li>
+<li>消息保留: 保存数据至少X小时(即使消息已被确认消费)</li>
+<li>生存时间(Ttl):一段时间后丢弃数据(通过自动确认)</li>
 </ul>
-<p>In most cases, applications will want to use either one or the other (or none).</p>
+<p>在大多数情况下,应用程序会使用其中一个策略(或不使用)。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="retention-policies"></a><a href="#retention-policies" 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- [...]
-<p>By default, when a Pulsar message arrives at a broker it will be stored until it has been acknowledged by a consumer, at which point it will be deleted. You can override this behavior and retain even messages that have already been acknowledged by setting a <em>retention policy</em> on all the topics in a given namespace. When you set a retention policy you can set either a <em>size limit</em> or a <em>time limit</em>.</p>
-<p>When you set a size limit of, say, 10 gigabytes, then messages in all topics in the namespace, <em>even acknowledged messages</em>, will be retained until the size limit for the topic is reached; if you set a time limit of, say, 1 day, then messages for all topics in the namespace will be retained for 24 hours.</p>
-<p>It is also possible to set <em>infinite</em> retention time or size, by setting <code>-1</code> for either time or size retention.</p>
-<h3><a class="anchor" aria-hidden="true" id="defaults"></a><a href="#defaults" 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 [...]
+<p>默认情况下,当消息到达broker时,它会被存储起来,直到消费者确认已消费它,此时它才被删除。 可以修改此行为,通过对给定命名空间中的所有主题设置 <em>保留策略</em> 保留已经确认的消息。 设置保留策略时,可以设置<em>大小限制</em>或<em>时间限制</em>。</p>
+<p>当设置一个大小限制,比如10GB,那么命名空间中的所有主题中的消息,<em>甚至已确认的消息</em> 都将被保留,直到达到主题的大小限制为止;如果将时间限制设置为1天,那么命名空间中所有主题的消息将保留24小时。</p>
+<p>还可以设置<em>无限</em>的保留时间或大小,方法是把保留时间或大小值设置为<code>-1</code>。</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 1-2.09V6 [...]
 <p>There are two configuration parameters that you can use to set <a href="/docs/zh-CN/2.2.1/reference-terminology#instance">instance</a>-wide defaults for message retention: <a href="/docs/zh-CN/2.2.1/reference-configuration#broker-defaultRetentionTimeInMinutes"><code>defaultRetentionTimeInMinutes=0</code></a> and <a href="/docs/zh-CN/2.2.1/reference-configuration#broker-defaultRetentionSizeInMB"><code>defaultRetentionSizeInMB=0</code></a>.</p>
 <p>Both of these parameters are in the <a href="/docs/zh-CN/2.2.1/reference-configuration#broker"><code>broker.conf</code></a> configuration file.</p>
 <h3><a class="anchor" aria-hidden="true" id="set-retention-policy"></a><a href="#set-retention-policy" 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 [...]
@@ -248,7 +248,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <h4><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" 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.namespaces().get
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.1/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.1/cookbooks-encryption"><span>Encryption</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#retention-policies">Retention policies</a><ul class="toc-headings"><li><a href="#defaults"> [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.1/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.1/cookbooks-encryption"><span>Encryption</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#保留策略">保留策略</a><ul class="toc-headings"><li><a href="#默认情况">默认情况</a></li><li><a href="#set-r [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/admin-api-tenants.html b/content/docs/zh-CN/admin-api-tenants.html
index 32c216e..8d0df8c 100644
--- a/content/docs/zh-CN/admin-api-tenants.html
+++ b/content/docs/zh-CN/admin-api-tenants.html
@@ -1,5 +1,5 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Tenants · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;租户,如命名空间,可以使用&lt;a href=&quot;/docs/zh-CN/admin-api-overview&quot;&gt;admin API&lt;/a&gt;来管理,目前租客有两个方面可被配置。&lt;/p&gt;
-"/><meta name="docsearch:version" content="2.3.0"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Managing Tenants · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;租户,如命名空间,可以使用&lt;a href=&quot;/docs/zh-CN/admin-api-overview&quot;&gt;admin API&lt;/a&gt;来管理,目前租客有两个方面可被配置。&lt;/p&gt;
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Tenants · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;租户像命名空间一样,可以使用 &lt;a href=&quot;/docs/zh-CN/admin-api-overview&quot;&gt;管理员 API&lt;/a&gt;管理。目前租户有两个可配置的方面:&lt;/p&gt;
+"/><meta name="docsearch:version" content="2.3.0"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Managing Tenants · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;租户像命名空间一样,可以使用 &lt;a href=&quot;/docs/zh-CN/admin-api-overview&quot;&gt;管理员 API&lt;/a&gt;管理。目前租户有两个可配置的方面:&lt;/p&gt;
 "/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://pulsar.incubator.apache.org/img/pulsar.svg"/><link rel="shortcut icon" href="/img/pulsar.ico"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><link rel="alternate" type="application/atom+xml" href="https://pulsar.incubator.apache.org/blog/atom.x [...]
               (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),
@@ -70,7 +70,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><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 Tenants</h1></header><article><div><span><p>租户,如命名空间,可以使用<a href="/docs/zh-CN/admin-api-overview">admin API</a>来管理,目前租客有两个方面可被配置。</p>
+        </script></nav></div><div class="container mainContainer"><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 Tenants</h1></header><article><div><span><p>租户像命名空间一样,可以使用 <a href="/docs/zh-CN/admin-api-overview">管理员 API</a>管理。目前租户有两个可配置的方面:</p>
 <ul>
 <li>Admin角色</li>
 <li>被认可的集群</li>
@@ -78,10 +78,10 @@
 <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 [...]
 <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>你可以通过使用<a href="/docs/zh-CN/pulsar-admin#tenants-list"><code>list</code></a>子命令,列出<a href="/docs/zh-CN/reference-terminology#instance">实例</a>关联的所有租户:</p>
+<p>你可以使用<a href="/docs/zh-CN/pulsar-admin#tenants-list"><code>list</code></a>子命令,列出所有与<a href="/docs/zh-CN/reference-terminology#instance">实例</a>相关联的租户:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin tenants list</span>
 </code></pre>
-<p>这将返回一个简单的list,如下:</p>
+<p>这将返回一个简单的列表,例如:</p>
 <pre><code class="hljs">my-tenant-1
 my-tenant-2
 </code></pre>
@@ -114,12 +114,12 @@ $</span><span class="bash"> pulsar-admin tenants create my-tenant \</span>
 </code></pre>
 <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 [...]
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-3"></a><a href="#pulsar-admin-3" 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- [...]
-<p>你可以删除租户,通过使用<a href="/docs/zh-CN/pulsar-admin#tenants-delete"><code>delete</code></a>子命令并指定租户名称:</p>
+<p>你可以使用<a href="/docs/zh-CN/pulsar-admin#tenants-delete"><code>delete</code></a>子命令并指定租户名称来删除租户:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin tenants delete my-tenant</span>
 </code></pre>
 <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 [...]
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-4"></a><a href="#pulsar-admin-4" 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- [...]
-<p>你可以更新租户的配置,通过使用<a href="/docs/zh-CN/pulsar-admin#tenants-update"><code>update</code></a>子命令</p>
+<p>你可以使用<a href="/docs/zh-CN/pulsar-admin#tenants-update"><code>update</code></a>子命令更新租户的配置</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/admin-api-clusters"><span class="arrow-prev">← </span><span>集群</span></a><a class="docs-next button" href="/docs/zh-CN/admin-api-brokers"><span>Brokers</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#租户资源">租户资源</a><ul class="toc-headings"><li><a href="#列出">列出</a></li><li><a href="#创建">创建</a></li><li><a href="#获取配 [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/zh-CN/admin-api-tenants/index.html b/content/docs/zh-CN/admin-api-tenants/index.html
index 32c216e..8d0df8c 100644
--- a/content/docs/zh-CN/admin-api-tenants/index.html
+++ b/content/docs/zh-CN/admin-api-tenants/index.html
@@ -1,5 +1,5 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Tenants · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;租户,如命名空间,可以使用&lt;a href=&quot;/docs/zh-CN/admin-api-overview&quot;&gt;admin API&lt;/a&gt;来管理,目前租客有两个方面可被配置。&lt;/p&gt;
-"/><meta name="docsearch:version" content="2.3.0"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Managing Tenants · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;租户,如命名空间,可以使用&lt;a href=&quot;/docs/zh-CN/admin-api-overview&quot;&gt;admin API&lt;/a&gt;来管理,目前租客有两个方面可被配置。&lt;/p&gt;
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Managing Tenants · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;租户像命名空间一样,可以使用 &lt;a href=&quot;/docs/zh-CN/admin-api-overview&quot;&gt;管理员 API&lt;/a&gt;管理。目前租户有两个可配置的方面:&lt;/p&gt;
+"/><meta name="docsearch:version" content="2.3.0"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Managing Tenants · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;租户像命名空间一样,可以使用 &lt;a href=&quot;/docs/zh-CN/admin-api-overview&quot;&gt;管理员 API&lt;/a&gt;管理。目前租户有两个可配置的方面:&lt;/p&gt;
 "/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://pulsar.incubator.apache.org/img/pulsar.svg"/><link rel="shortcut icon" href="/img/pulsar.ico"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><link rel="alternate" type="application/atom+xml" href="https://pulsar.incubator.apache.org/blog/atom.x [...]
               (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),
@@ -70,7 +70,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><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 Tenants</h1></header><article><div><span><p>租户,如命名空间,可以使用<a href="/docs/zh-CN/admin-api-overview">admin API</a>来管理,目前租客有两个方面可被配置。</p>
+        </script></nav></div><div class="container mainContainer"><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 Tenants</h1></header><article><div><span><p>租户像命名空间一样,可以使用 <a href="/docs/zh-CN/admin-api-overview">管理员 API</a>管理。目前租户有两个可配置的方面:</p>
 <ul>
 <li>Admin角色</li>
 <li>被认可的集群</li>
@@ -78,10 +78,10 @@
 <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 [...]
 <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>你可以通过使用<a href="/docs/zh-CN/pulsar-admin#tenants-list"><code>list</code></a>子命令,列出<a href="/docs/zh-CN/reference-terminology#instance">实例</a>关联的所有租户:</p>
+<p>你可以使用<a href="/docs/zh-CN/pulsar-admin#tenants-list"><code>list</code></a>子命令,列出所有与<a href="/docs/zh-CN/reference-terminology#instance">实例</a>相关联的租户:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin tenants list</span>
 </code></pre>
-<p>这将返回一个简单的list,如下:</p>
+<p>这将返回一个简单的列表,例如:</p>
 <pre><code class="hljs">my-tenant-1
 my-tenant-2
 </code></pre>
@@ -114,12 +114,12 @@ $</span><span class="bash"> pulsar-admin tenants create my-tenant \</span>
 </code></pre>
 <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 [...]
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-3"></a><a href="#pulsar-admin-3" 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- [...]
-<p>你可以删除租户,通过使用<a href="/docs/zh-CN/pulsar-admin#tenants-delete"><code>delete</code></a>子命令并指定租户名称:</p>
+<p>你可以使用<a href="/docs/zh-CN/pulsar-admin#tenants-delete"><code>delete</code></a>子命令并指定租户名称来删除租户:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin tenants delete my-tenant</span>
 </code></pre>
 <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 [...]
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-4"></a><a href="#pulsar-admin-4" 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- [...]
-<p>你可以更新租户的配置,通过使用<a href="/docs/zh-CN/pulsar-admin#tenants-update"><code>update</code></a>子命令</p>
+<p>你可以使用<a href="/docs/zh-CN/pulsar-admin#tenants-update"><code>update</code></a>子命令更新租户的配置</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/admin-api-clusters"><span class="arrow-prev">← </span><span>集群</span></a><a class="docs-next button" href="/docs/zh-CN/admin-api-brokers"><span>Brokers</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#租户资源">租户资源</a><ul class="toc-headings"><li><a href="#列出">列出</a></li><li><a href="#创建">创建</a></li><li><a href="#获取配 [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/zh-CN/cookbooks-retention-expiry.html b/content/docs/zh-CN/cookbooks-retention-expiry.html
index 6af5e2a..d687a11 100644
--- a/content/docs/zh-CN/cookbooks-retention-expiry.html
+++ b/content/docs/zh-CN/cookbooks-retention-expiry.html
@@ -80,20 +80,20 @@
 <li>通过设置 <a href="#retention-policies">保留策略</a>,可以持久地存储已经被使用和确认的消息,并将其保留最少时间。</li>
 <li>通过指定[生存时间](#time-to-live- TTL) (TTL),可以自动将未在指定时间范围内得到确认的消息标记为已消费。</li>
 </ul>
-<p>Pulsar's <a href="/docs/zh-CN/admin-api-overview">admin interface</a> enables you to manage both retention policies and TTL at the namespace level (and thus within a specific tenant and either on a specific cluster or in the <a href="/docs/zh-CN/concepts-architecture-overview#global-cluster"><code>global</code></a> cluster).</p>
+<p>Pulsar的 <a href="/docs/zh-CN/admin-api-overview">admin interface</a> 使您能够在命名空间级别管理保留策略和TTL(在指定集群或<a href="/docs/zh-CN/concepts-architecture-overview#global-cluster"><code>全局</code></a>集群的租户内)。</p>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="retention-and-ttl-are-solving-two-different-problems"></a><a href="#retention-and-ttl-are-solving-two-different-problems" 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.5S [...]
+<h4><a class="anchor" aria-hidden="true" id="保留策略和ttl解决的是两个不同的问题"></a><a href="#保留策略和ttl解决的是两个不同的问题" 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.2 [...]
 <ul>
-<li>Message retention: Keep the data for at least X hours (even if acknowledged)</li>
-<li>Time-to-live: Discard data after some time (by automatically acknowledging)</li>
+<li>消息保留: 保存数据至少X小时(即使消息已被确认消费)</li>
+<li>生存时间(Ttl):一段时间后丢弃数据(通过自动确认)</li>
 </ul>
-<p>In most cases, applications will want to use either one or the other (or none).</p>
+<p>在大多数情况下,应用程序会使用其中一个策略(或不使用)。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="retention-policies"></a><a href="#retention-policies" 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- [...]
-<p>By default, when a Pulsar message arrives at a broker it will be stored until it has been acknowledged by a consumer, at which point it will be deleted. You can override this behavior and retain even messages that have already been acknowledged by setting a <em>retention policy</em> on all the topics in a given namespace. When you set a retention policy you can set either a <em>size limit</em> or a <em>time limit</em>.</p>
-<p>When you set a size limit of, say, 10 gigabytes, then messages in all topics in the namespace, <em>even acknowledged messages</em>, will be retained until the size limit for the topic is reached; if you set a time limit of, say, 1 day, then messages for all topics in the namespace will be retained for 24 hours.</p>
-<p>It is also possible to set <em>infinite</em> retention time or size, by setting <code>-1</code> for either time or size retention.</p>
-<h3><a class="anchor" aria-hidden="true" id="defaults"></a><a href="#defaults" 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 [...]
+<p>默认情况下,当消息到达broker时,它会被存储起来,直到消费者确认已消费它,此时它才被删除。 可以修改此行为,通过对给定命名空间中的所有主题设置 <em>保留策略</em> 保留已经确认的消息。 设置保留策略时,可以设置<em>大小限制</em>或<em>时间限制</em>。</p>
+<p>当设置一个大小限制,比如10GB,那么命名空间中的所有主题中的消息,<em>甚至已确认的消息</em> 都将被保留,直到达到主题的大小限制为止;如果将时间限制设置为1天,那么命名空间中所有主题的消息将保留24小时。</p>
+<p>还可以设置<em>无限</em>的保留时间或大小,方法是把保留时间或大小值设置为<code>-1</code>。</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 1-2.09V6 [...]
 <p>There are two configuration parameters that you can use to set <a href="/docs/zh-CN/reference-terminology#instance">instance</a>-wide defaults for message retention: <a href="/docs/zh-CN/reference-configuration#broker-defaultRetentionTimeInMinutes"><code>defaultRetentionTimeInMinutes=0</code></a> and <a href="/docs/zh-CN/reference-configuration#broker-defaultRetentionSizeInMB"><code>defaultRetentionSizeInMB=0</code></a>.</p>
 <p>Both of these parameters are in the <a href="/docs/zh-CN/reference-configuration#broker"><code>broker.conf</code></a> configuration file.</p>
 <h3><a class="anchor" aria-hidden="true" id="set-retention-policy"></a><a href="#set-retention-policy" 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 [...]
@@ -248,7 +248,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <h4><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" 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.namespaces().getNamespaceMessageTTL(namespace)
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/cookbooks-encryption"><span>Encryption</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#retention-policies">Retention policies</a><ul class="toc-headings"><li><a href="#defaults">Defaults</a> [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/cookbooks-encryption"><span>Encryption</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#保留策略">保留策略</a><ul class="toc-headings"><li><a href="#默认情况">默认情况</a></li><li><a href="#set-retention-pol [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/cookbooks-retention-expiry/index.html b/content/docs/zh-CN/cookbooks-retention-expiry/index.html
index 6af5e2a..d687a11 100644
--- a/content/docs/zh-CN/cookbooks-retention-expiry/index.html
+++ b/content/docs/zh-CN/cookbooks-retention-expiry/index.html
@@ -80,20 +80,20 @@
 <li>通过设置 <a href="#retention-policies">保留策略</a>,可以持久地存储已经被使用和确认的消息,并将其保留最少时间。</li>
 <li>通过指定[生存时间](#time-to-live- TTL) (TTL),可以自动将未在指定时间范围内得到确认的消息标记为已消费。</li>
 </ul>
-<p>Pulsar's <a href="/docs/zh-CN/admin-api-overview">admin interface</a> enables you to manage both retention policies and TTL at the namespace level (and thus within a specific tenant and either on a specific cluster or in the <a href="/docs/zh-CN/concepts-architecture-overview#global-cluster"><code>global</code></a> cluster).</p>
+<p>Pulsar的 <a href="/docs/zh-CN/admin-api-overview">admin interface</a> 使您能够在命名空间级别管理保留策略和TTL(在指定集群或<a href="/docs/zh-CN/concepts-architecture-overview#global-cluster"><code>全局</code></a>集群的租户内)。</p>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="retention-and-ttl-are-solving-two-different-problems"></a><a href="#retention-and-ttl-are-solving-two-different-problems" 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.5S [...]
+<h4><a class="anchor" aria-hidden="true" id="保留策略和ttl解决的是两个不同的问题"></a><a href="#保留策略和ttl解决的是两个不同的问题" 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.2 [...]
 <ul>
-<li>Message retention: Keep the data for at least X hours (even if acknowledged)</li>
-<li>Time-to-live: Discard data after some time (by automatically acknowledging)</li>
+<li>消息保留: 保存数据至少X小时(即使消息已被确认消费)</li>
+<li>生存时间(Ttl):一段时间后丢弃数据(通过自动确认)</li>
 </ul>
-<p>In most cases, applications will want to use either one or the other (or none).</p>
+<p>在大多数情况下,应用程序会使用其中一个策略(或不使用)。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="retention-policies"></a><a href="#retention-policies" 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- [...]
-<p>By default, when a Pulsar message arrives at a broker it will be stored until it has been acknowledged by a consumer, at which point it will be deleted. You can override this behavior and retain even messages that have already been acknowledged by setting a <em>retention policy</em> on all the topics in a given namespace. When you set a retention policy you can set either a <em>size limit</em> or a <em>time limit</em>.</p>
-<p>When you set a size limit of, say, 10 gigabytes, then messages in all topics in the namespace, <em>even acknowledged messages</em>, will be retained until the size limit for the topic is reached; if you set a time limit of, say, 1 day, then messages for all topics in the namespace will be retained for 24 hours.</p>
-<p>It is also possible to set <em>infinite</em> retention time or size, by setting <code>-1</code> for either time or size retention.</p>
-<h3><a class="anchor" aria-hidden="true" id="defaults"></a><a href="#defaults" 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 [...]
+<p>默认情况下,当消息到达broker时,它会被存储起来,直到消费者确认已消费它,此时它才被删除。 可以修改此行为,通过对给定命名空间中的所有主题设置 <em>保留策略</em> 保留已经确认的消息。 设置保留策略时,可以设置<em>大小限制</em>或<em>时间限制</em>。</p>
+<p>当设置一个大小限制,比如10GB,那么命名空间中的所有主题中的消息,<em>甚至已确认的消息</em> 都将被保留,直到达到主题的大小限制为止;如果将时间限制设置为1天,那么命名空间中所有主题的消息将保留24小时。</p>
+<p>还可以设置<em>无限</em>的保留时间或大小,方法是把保留时间或大小值设置为<code>-1</code>。</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 1-2.09V6 [...]
 <p>There are two configuration parameters that you can use to set <a href="/docs/zh-CN/reference-terminology#instance">instance</a>-wide defaults for message retention: <a href="/docs/zh-CN/reference-configuration#broker-defaultRetentionTimeInMinutes"><code>defaultRetentionTimeInMinutes=0</code></a> and <a href="/docs/zh-CN/reference-configuration#broker-defaultRetentionSizeInMB"><code>defaultRetentionSizeInMB=0</code></a>.</p>
 <p>Both of these parameters are in the <a href="/docs/zh-CN/reference-configuration#broker"><code>broker.conf</code></a> configuration file.</p>
 <h3><a class="anchor" aria-hidden="true" id="set-retention-policy"></a><a href="#set-retention-policy" 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 [...]
@@ -248,7 +248,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <h4><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" 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.namespaces().getNamespaceMessageTTL(namespace)
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/cookbooks-encryption"><span>Encryption</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#retention-policies">Retention policies</a><ul class="toc-headings"><li><a href="#defaults">Defaults</a> [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/cookbooks-encryption"><span>Encryption</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#保留策略">保留策略</a><ul class="toc-headings"><li><a href="#默认情况">默认情况</a></li><li><a href="#set-retention-pol [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/next/admin-api-tenants.html b/content/docs/zh-CN/next/admin-api-tenants.html
index f39479f..323e5e0 100644
--- a/content/docs/zh-CN/next/admin-api-tenants.html
+++ b/content/docs/zh-CN/next/admin-api-tenants.html
@@ -1,5 +1,5 @@
-<!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="&lt;p&gt;租户,如命名空间,可以使用&lt;a href=&quot;/docs/zh-CN/next/admin-api-overview&quot;&gt;admin API&lt;/a&gt;来管理,目前租客有两个方面可被配置。&lt;/p&gt;
-"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="租户管理 · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;租户,如命名空间,可以使用&lt;a href=&quot;/docs/zh-CN/next/admin-api-overview&quot;&gt;admin API&lt;/a&gt;来管理,目前租客有两个方面可被配置。&lt;/p&gt;
+<!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="&lt;p&gt;租户像命名空间一样,可以使用 &lt;a href=&quot;/docs/zh-CN/next/admin-api-overview&quot;&gt;管理员 API&lt;/a&gt;管理。目前租户有两个可配置的方面:&lt;/p&gt;
+"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="租户管理 · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;租户像命名空间一样,可以使用 &lt;a href=&quot;/docs/zh-CN/next/admin-api-overview&quot;&gt;管理员 API&lt;/a&gt;管理。目前租户有两个可配置的方面:&lt;/p&gt;
 "/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://pulsar.incubator.apache.org/img/pulsar.svg"/><link rel="shortcut icon" href="/img/pulsar.ico"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><link rel="alternate" type="application/atom+xml" href="https://pulsar.incubator.apache.org/blog/atom.x [...]
               (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),
@@ -70,7 +70,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><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>租户,如命名空间,可以使用<a href="/docs/zh-CN/next/admin-api-overview">admin API</a>来管理,目前租客有两个方面可被配置。</p>
+        </script></nav></div><div class="container mainContainer"><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>租户像命名空间一样,可以使用 <a href="/docs/zh-CN/next/admin-api-overview">管理员 API</a>管理。目前租户有两个可配置的方面:</p>
 <ul>
 <li>Admin角色</li>
 <li>被认可的集群</li>
@@ -78,10 +78,10 @@
 <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 [...]
 <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>你可以通过使用<a href="/docs/zh-CN/next/pulsar-admin#tenants-list"><code>list</code></a>子命令,列出<a href="/docs/zh-CN/next/reference-terminology#instance">实例</a>关联的所有租户:</p>
+<p>你可以使用<a href="/docs/zh-CN/next/pulsar-admin#tenants-list"><code>list</code></a>子命令,列出所有与<a href="/docs/zh-CN/next/reference-terminology#instance">实例</a>相关联的租户:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin tenants list</span>
 </code></pre>
-<p>这将返回一个简单的list,如下:</p>
+<p>这将返回一个简单的列表,例如:</p>
 <pre><code class="hljs">my-tenant-1
 my-tenant-2
 </code></pre>
@@ -114,12 +114,12 @@ $</span><span class="bash"> pulsar-admin tenants create my-tenant \</span>
 </code></pre>
 <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 [...]
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-3"></a><a href="#pulsar-admin-3" 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- [...]
-<p>你可以删除租户,通过使用<a href="/docs/zh-CN/next/pulsar-admin#tenants-delete"><code>delete</code></a>子命令并指定租户名称:</p>
+<p>你可以使用<a href="/docs/zh-CN/next/pulsar-admin#tenants-delete"><code>delete</code></a>子命令并指定租户名称来删除租户:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin tenants delete my-tenant</span>
 </code></pre>
 <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 [...]
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-4"></a><a href="#pulsar-admin-4" 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- [...]
-<p>你可以更新租户的配置,通过使用<a href="/docs/zh-CN/next/pulsar-admin#tenants-update"><code>update</code></a>子命令</p>
+<p>你可以使用<a href="/docs/zh-CN/next/pulsar-admin#tenants-update"><code>update</code></a>子命令更新租户的配置</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/admin-api-clusters"><span class="arrow-prev">← </span><span>集群</span></a><a class="docs-next button" href="/docs/zh-CN/next/admin-api-brokers"><span>Brokers</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#租户资源">租户资源</a><ul class="toc-headings"><li><a href="#列出">列出</a></li><li><a href="#创建">创建</a></li><li><a  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/zh-CN/next/admin-api-tenants/index.html b/content/docs/zh-CN/next/admin-api-tenants/index.html
index f39479f..323e5e0 100644
--- a/content/docs/zh-CN/next/admin-api-tenants/index.html
+++ b/content/docs/zh-CN/next/admin-api-tenants/index.html
@@ -1,5 +1,5 @@
-<!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="&lt;p&gt;租户,如命名空间,可以使用&lt;a href=&quot;/docs/zh-CN/next/admin-api-overview&quot;&gt;admin API&lt;/a&gt;来管理,目前租客有两个方面可被配置。&lt;/p&gt;
-"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="租户管理 · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;租户,如命名空间,可以使用&lt;a href=&quot;/docs/zh-CN/next/admin-api-overview&quot;&gt;admin API&lt;/a&gt;来管理,目前租客有两个方面可被配置。&lt;/p&gt;
+<!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="&lt;p&gt;租户像命名空间一样,可以使用 &lt;a href=&quot;/docs/zh-CN/next/admin-api-overview&quot;&gt;管理员 API&lt;/a&gt;管理。目前租户有两个可配置的方面:&lt;/p&gt;
+"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="租户管理 · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;租户像命名空间一样,可以使用 &lt;a href=&quot;/docs/zh-CN/next/admin-api-overview&quot;&gt;管理员 API&lt;/a&gt;管理。目前租户有两个可配置的方面:&lt;/p&gt;
 "/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://pulsar.incubator.apache.org/img/pulsar.svg"/><link rel="shortcut icon" href="/img/pulsar.ico"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><link rel="alternate" type="application/atom+xml" href="https://pulsar.incubator.apache.org/blog/atom.x [...]
               (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),
@@ -70,7 +70,7 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><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>租户,如命名空间,可以使用<a href="/docs/zh-CN/next/admin-api-overview">admin API</a>来管理,目前租客有两个方面可被配置。</p>
+        </script></nav></div><div class="container mainContainer"><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>租户像命名空间一样,可以使用 <a href="/docs/zh-CN/next/admin-api-overview">管理员 API</a>管理。目前租户有两个可配置的方面:</p>
 <ul>
 <li>Admin角色</li>
 <li>被认可的集群</li>
@@ -78,10 +78,10 @@
 <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 [...]
 <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>你可以通过使用<a href="/docs/zh-CN/next/pulsar-admin#tenants-list"><code>list</code></a>子命令,列出<a href="/docs/zh-CN/next/reference-terminology#instance">实例</a>关联的所有租户:</p>
+<p>你可以使用<a href="/docs/zh-CN/next/pulsar-admin#tenants-list"><code>list</code></a>子命令,列出所有与<a href="/docs/zh-CN/next/reference-terminology#instance">实例</a>相关联的租户:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin tenants list</span>
 </code></pre>
-<p>这将返回一个简单的list,如下:</p>
+<p>这将返回一个简单的列表,例如:</p>
 <pre><code class="hljs">my-tenant-1
 my-tenant-2
 </code></pre>
@@ -114,12 +114,12 @@ $</span><span class="bash"> pulsar-admin tenants create my-tenant \</span>
 </code></pre>
 <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 [...]
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-3"></a><a href="#pulsar-admin-3" 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- [...]
-<p>你可以删除租户,通过使用<a href="/docs/zh-CN/next/pulsar-admin#tenants-delete"><code>delete</code></a>子命令并指定租户名称:</p>
+<p>你可以使用<a href="/docs/zh-CN/next/pulsar-admin#tenants-delete"><code>delete</code></a>子命令并指定租户名称来删除租户:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin tenants delete my-tenant</span>
 </code></pre>
 <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 [...]
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-4"></a><a href="#pulsar-admin-4" 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- [...]
-<p>你可以更新租户的配置,通过使用<a href="/docs/zh-CN/next/pulsar-admin#tenants-update"><code>update</code></a>子命令</p>
+<p>你可以使用<a href="/docs/zh-CN/next/pulsar-admin#tenants-update"><code>update</code></a>子命令更新租户的配置</p>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/admin-api-clusters"><span class="arrow-prev">← </span><span>集群</span></a><a class="docs-next button" href="/docs/zh-CN/next/admin-api-brokers"><span>Brokers</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#租户资源">租户资源</a><ul class="toc-headings"><li><a href="#列出">列出</a></li><li><a href="#创建">创建</a></li><li><a  [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
diff --git a/content/docs/zh-CN/next/cookbooks-retention-expiry.html b/content/docs/zh-CN/next/cookbooks-retention-expiry.html
index 18ad37e..051ec82 100644
--- a/content/docs/zh-CN/next/cookbooks-retention-expiry.html
+++ b/content/docs/zh-CN/next/cookbooks-retention-expiry.html
@@ -80,20 +80,20 @@
 <li>通过设置 <a href="#retention-policies">保留策略</a>,可以持久地存储已经被使用和确认的消息,并将其保留最少时间。</li>
 <li>通过指定[生存时间](#time-to-live- TTL) (TTL),可以自动将未在指定时间范围内得到确认的消息标记为已消费。</li>
 </ul>
-<p>Pulsar's <a href="/docs/zh-CN/next/admin-api-overview">admin interface</a> enables you to manage both retention policies and TTL at the namespace level (and thus within a specific tenant and either on a specific cluster or in the <a href="/docs/zh-CN/next/concepts-architecture-overview#global-cluster"><code>global</code></a> cluster).</p>
+<p>Pulsar的 <a href="/docs/zh-CN/next/admin-api-overview">admin interface</a> 使您能够在命名空间级别管理保留策略和TTL(在指定集群或<a href="/docs/zh-CN/next/concepts-architecture-overview#global-cluster"><code>全局</code></a>集群的租户内)。</p>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="retention-and-ttl-are-solving-two-different-problems"></a><a href="#retention-and-ttl-are-solving-two-different-problems" 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.5S [...]
+<h4><a class="anchor" aria-hidden="true" id="保留策略和ttl解决的是两个不同的问题"></a><a href="#保留策略和ttl解决的是两个不同的问题" 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.2 [...]
 <ul>
-<li>Message retention: Keep the data for at least X hours (even if acknowledged)</li>
-<li>Time-to-live: Discard data after some time (by automatically acknowledging)</li>
+<li>消息保留: 保存数据至少X小时(即使消息已被确认消费)</li>
+<li>生存时间(Ttl):一段时间后丢弃数据(通过自动确认)</li>
 </ul>
-<p>In most cases, applications will want to use either one or the other (or none).</p>
+<p>在大多数情况下,应用程序会使用其中一个策略(或不使用)。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="retention-policies"></a><a href="#retention-policies" 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- [...]
-<p>By default, when a Pulsar message arrives at a broker it will be stored until it has been acknowledged by a consumer, at which point it will be deleted. You can override this behavior and retain even messages that have already been acknowledged by setting a <em>retention policy</em> on all the topics in a given namespace. When you set a retention policy you can set either a <em>size limit</em> or a <em>time limit</em>.</p>
-<p>When you set a size limit of, say, 10 gigabytes, then messages in all topics in the namespace, <em>even acknowledged messages</em>, will be retained until the size limit for the topic is reached; if you set a time limit of, say, 1 day, then messages for all topics in the namespace will be retained for 24 hours.</p>
-<p>It is also possible to set <em>infinite</em> retention time or size, by setting <code>-1</code> for either time or size retention.</p>
-<h3><a class="anchor" aria-hidden="true" id="defaults"></a><a href="#defaults" 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 [...]
+<p>默认情况下,当消息到达broker时,它会被存储起来,直到消费者确认已消费它,此时它才被删除。 可以修改此行为,通过对给定命名空间中的所有主题设置 <em>保留策略</em> 保留已经确认的消息。 设置保留策略时,可以设置<em>大小限制</em>或<em>时间限制</em>。</p>
+<p>当设置一个大小限制,比如10GB,那么命名空间中的所有主题中的消息,<em>甚至已确认的消息</em> 都将被保留,直到达到主题的大小限制为止;如果将时间限制设置为1天,那么命名空间中所有主题的消息将保留24小时。</p>
+<p>还可以设置<em>无限</em>的保留时间或大小,方法是把保留时间或大小值设置为<code>-1</code>。</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 1-2.09V6 [...]
 <p>There are two configuration parameters that you can use to set <a href="/docs/zh-CN/next/reference-terminology#instance">instance</a>-wide defaults for message retention: <a href="/docs/zh-CN/next/reference-configuration#broker-defaultRetentionTimeInMinutes"><code>defaultRetentionTimeInMinutes=0</code></a> and <a href="/docs/zh-CN/next/reference-configuration#broker-defaultRetentionSizeInMB"><code>defaultRetentionSizeInMB=0</code></a>.</p>
 <p>Both of these parameters are in the <a href="/docs/zh-CN/next/reference-configuration#broker"><code>broker.conf</code></a> configuration file.</p>
 <h3><a class="anchor" aria-hidden="true" id="set-retention-policy"></a><a href="#set-retention-policy" 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 [...]
@@ -248,7 +248,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <h4><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" 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.namespaces().getNamespaceMessageTTL(namespace)
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/next/cookbooks-encryption"><span>Encryption</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#retention-policies">Retention policies</a><ul class="toc-headings"><li><a href="#defaults">De [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/next/cookbooks-encryption"><span>Encryption</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#保留策略">保留策略</a><ul class="toc-headings"><li><a href="#默认情况">默认情况</a></li><li><a href="#set-ret [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/next/cookbooks-retention-expiry/index.html b/content/docs/zh-CN/next/cookbooks-retention-expiry/index.html
index 18ad37e..051ec82 100644
--- a/content/docs/zh-CN/next/cookbooks-retention-expiry/index.html
+++ b/content/docs/zh-CN/next/cookbooks-retention-expiry/index.html
@@ -80,20 +80,20 @@
 <li>通过设置 <a href="#retention-policies">保留策略</a>,可以持久地存储已经被使用和确认的消息,并将其保留最少时间。</li>
 <li>通过指定[生存时间](#time-to-live- TTL) (TTL),可以自动将未在指定时间范围内得到确认的消息标记为已消费。</li>
 </ul>
-<p>Pulsar's <a href="/docs/zh-CN/next/admin-api-overview">admin interface</a> enables you to manage both retention policies and TTL at the namespace level (and thus within a specific tenant and either on a specific cluster or in the <a href="/docs/zh-CN/next/concepts-architecture-overview#global-cluster"><code>global</code></a> cluster).</p>
+<p>Pulsar的 <a href="/docs/zh-CN/next/admin-api-overview">admin interface</a> 使您能够在命名空间级别管理保留策略和TTL(在指定集群或<a href="/docs/zh-CN/next/concepts-architecture-overview#global-cluster"><code>全局</code></a>集群的租户内)。</p>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="retention-and-ttl-are-solving-two-different-problems"></a><a href="#retention-and-ttl-are-solving-two-different-problems" 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.5S [...]
+<h4><a class="anchor" aria-hidden="true" id="保留策略和ttl解决的是两个不同的问题"></a><a href="#保留策略和ttl解决的是两个不同的问题" 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.2 [...]
 <ul>
-<li>Message retention: Keep the data for at least X hours (even if acknowledged)</li>
-<li>Time-to-live: Discard data after some time (by automatically acknowledging)</li>
+<li>消息保留: 保存数据至少X小时(即使消息已被确认消费)</li>
+<li>生存时间(Ttl):一段时间后丢弃数据(通过自动确认)</li>
 </ul>
-<p>In most cases, applications will want to use either one or the other (or none).</p>
+<p>在大多数情况下,应用程序会使用其中一个策略(或不使用)。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="retention-policies"></a><a href="#retention-policies" 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- [...]
-<p>By default, when a Pulsar message arrives at a broker it will be stored until it has been acknowledged by a consumer, at which point it will be deleted. You can override this behavior and retain even messages that have already been acknowledged by setting a <em>retention policy</em> on all the topics in a given namespace. When you set a retention policy you can set either a <em>size limit</em> or a <em>time limit</em>.</p>
-<p>When you set a size limit of, say, 10 gigabytes, then messages in all topics in the namespace, <em>even acknowledged messages</em>, will be retained until the size limit for the topic is reached; if you set a time limit of, say, 1 day, then messages for all topics in the namespace will be retained for 24 hours.</p>
-<p>It is also possible to set <em>infinite</em> retention time or size, by setting <code>-1</code> for either time or size retention.</p>
-<h3><a class="anchor" aria-hidden="true" id="defaults"></a><a href="#defaults" 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 [...]
+<p>默认情况下,当消息到达broker时,它会被存储起来,直到消费者确认已消费它,此时它才被删除。 可以修改此行为,通过对给定命名空间中的所有主题设置 <em>保留策略</em> 保留已经确认的消息。 设置保留策略时,可以设置<em>大小限制</em>或<em>时间限制</em>。</p>
+<p>当设置一个大小限制,比如10GB,那么命名空间中的所有主题中的消息,<em>甚至已确认的消息</em> 都将被保留,直到达到主题的大小限制为止;如果将时间限制设置为1天,那么命名空间中所有主题的消息将保留24小时。</p>
+<p>还可以设置<em>无限</em>的保留时间或大小,方法是把保留时间或大小值设置为<code>-1</code>。</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 1-2.09V6 [...]
 <p>There are two configuration parameters that you can use to set <a href="/docs/zh-CN/next/reference-terminology#instance">instance</a>-wide defaults for message retention: <a href="/docs/zh-CN/next/reference-configuration#broker-defaultRetentionTimeInMinutes"><code>defaultRetentionTimeInMinutes=0</code></a> and <a href="/docs/zh-CN/next/reference-configuration#broker-defaultRetentionSizeInMB"><code>defaultRetentionSizeInMB=0</code></a>.</p>
 <p>Both of these parameters are in the <a href="/docs/zh-CN/next/reference-configuration#broker"><code>broker.conf</code></a> configuration file.</p>
 <h3><a class="anchor" aria-hidden="true" id="set-retention-policy"></a><a href="#set-retention-policy" 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 [...]
@@ -248,7 +248,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <h4><a class="anchor" aria-hidden="true" id="java-6"></a><a href="#java-6" 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.namespaces().getNamespaceMessageTTL(namespace)
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/next/cookbooks-encryption"><span>Encryption</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#retention-policies">Retention policies</a><ul class="toc-headings"><li><a href="#defaults">De [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/next/cookbooks-encryption"><span>Encryption</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#保留策略">保留策略</a><ul class="toc-headings"><li><a href="#默认情况">默认情况</a></li><li><a href="#set-ret [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/next/reference-configuration.html b/content/docs/zh-CN/next/reference-configuration.html
index 8f1aab1..e93ef52 100644
--- a/content/docs/zh-CN/next/reference-configuration.html
+++ b/content/docs/zh-CN/next/reference-configuration.html
@@ -387,6 +387,7 @@
 <tr><td>backlogQuotaCheckEnabled</td><td>Enable the backlog quota check, which enforces a specified action when the quota is reached.</td><td>true</td></tr>
 <tr><td>backlogQuotaCheckIntervalInSeconds</td><td>How often to check for topics that have reached the backlog quota.</td><td>60</td></tr>
 <tr><td>backlogQuotaDefaultLimitGB</td><td>The default per-topic backlog quota limit.</td><td>10</td></tr>
+<tr><td>ttlDurationDefaultInSeconds</td><td>Default ttl for namespaces if ttl is not already configured at namespace policies.</td><td>0</td></tr>
 <tr><td>brokerDeleteInactiveTopicsEnabled</td><td>Enable the deletion of inactive topics.</td><td>true</td></tr>
 <tr><td>brokerDeleteInactiveTopicsFrequencySeconds</td><td>How often to check for inactive topics, in seconds.</td><td>60</td></tr>
 <tr><td>messageExpiryCheckIntervalInMinutes</td><td>How often to proactively check and purged expired messages.</td><td>5</td></tr>
diff --git a/content/docs/zh-CN/next/reference-configuration/index.html b/content/docs/zh-CN/next/reference-configuration/index.html
index 8f1aab1..e93ef52 100644
--- a/content/docs/zh-CN/next/reference-configuration/index.html
+++ b/content/docs/zh-CN/next/reference-configuration/index.html
@@ -387,6 +387,7 @@
 <tr><td>backlogQuotaCheckEnabled</td><td>Enable the backlog quota check, which enforces a specified action when the quota is reached.</td><td>true</td></tr>
 <tr><td>backlogQuotaCheckIntervalInSeconds</td><td>How often to check for topics that have reached the backlog quota.</td><td>60</td></tr>
 <tr><td>backlogQuotaDefaultLimitGB</td><td>The default per-topic backlog quota limit.</td><td>10</td></tr>
+<tr><td>ttlDurationDefaultInSeconds</td><td>Default ttl for namespaces if ttl is not already configured at namespace policies.</td><td>0</td></tr>
 <tr><td>brokerDeleteInactiveTopicsEnabled</td><td>Enable the deletion of inactive topics.</td><td>true</td></tr>
 <tr><td>brokerDeleteInactiveTopicsFrequencySeconds</td><td>How often to check for inactive topics, in seconds.</td><td>60</td></tr>
 <tr><td>messageExpiryCheckIntervalInMinutes</td><td>How often to proactively check and purged expired messages.</td><td>5</td></tr>
diff --git a/content/swagger/swagger.json b/content/swagger/swagger.json
index 0750325..9bfc428 100644
--- a/content/swagger/swagger.json
+++ b/content/swagger/swagger.json
@@ -7096,6 +7096,10 @@
           "type" : "number",
           "format" : "double"
         },
+        "lastUpdate" : {
+          "type" : "integer",
+          "format" : "int64"
+        },
         "underLoaded" : {
           "type" : "boolean"
         },
@@ -7105,11 +7109,13 @@
         "cpu" : {
           "$ref" : "#/definitions/ResourceUsage"
         },
-        "memory" : {
-          "$ref" : "#/definitions/ResourceUsage"
+        "msgThroughputIn" : {
+          "type" : "number",
+          "format" : "double"
         },
-        "directMemory" : {
-          "$ref" : "#/definitions/ResourceUsage"
+        "msgThroughputOut" : {
+          "type" : "number",
+          "format" : "double"
         },
         "bandwidthIn" : {
           "$ref" : "#/definitions/ResourceUsage"
@@ -7117,17 +7123,11 @@
         "bandwidthOut" : {
           "$ref" : "#/definitions/ResourceUsage"
         },
-        "lastUpdate" : {
-          "type" : "integer",
-          "format" : "int64"
-        },
-        "msgThroughputIn" : {
-          "type" : "number",
-          "format" : "double"
+        "memory" : {
+          "$ref" : "#/definitions/ResourceUsage"
         },
-        "msgThroughputOut" : {
-          "type" : "number",
-          "format" : "double"
+        "directMemory" : {
+          "$ref" : "#/definitions/ResourceUsage"
         },
         "loadReportType" : {
           "type" : "string"
@@ -7290,13 +7290,13 @@
           "type" : "number",
           "format" : "double"
         },
-        "connectedSince" : {
+        "producerName" : {
           "type" : "string"
         },
-        "clientVersion" : {
+        "connectedSince" : {
           "type" : "string"
         },
-        "producerName" : {
+        "clientVersion" : {
           "type" : "string"
         },
         "address" : {
@@ -8004,13 +8004,13 @@
             "type" : "string"
           }
         },
-        "connectedSince" : {
+        "producerName" : {
           "type" : "string"
         },
-        "clientVersion" : {
+        "connectedSince" : {
           "type" : "string"
         },
-        "producerName" : {
+        "clientVersion" : {
           "type" : "string"
         },
         "address" : {
@@ -8112,11 +8112,11 @@
     "ResourceUnit" : {
       "type" : "object",
       "properties" : {
-        "resourceId" : {
-          "type" : "string"
-        },
         "availableResource" : {
           "$ref" : "#/definitions/ResourceDescription"
+        },
+        "resourceId" : {
+          "type" : "string"
         }
       }
     },