You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by pe...@apache.org on 2022/03/28 01:54:36 UTC

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

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

penghui 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 f78402e  Updated site at revision 85c1ba5
f78402e is described below

commit f78402e0a976841afb686f2af970c7018f3a2e54
Author: Pulsar Site Updater <de...@pulsar.apache.org>
AuthorDate: Mon Mar 28 01:51:28 2022 +0000

    Updated site at revision 85c1ba5
---
 .../admin/2.10.0-SNAPSHOT/member-search-index.zip  | Bin 12901 -> 12901 bytes
 .../admin/2.10.0-SNAPSHOT/overview-summary.html    |   2 +-
 .../admin/2.10.0-SNAPSHOT/package-search-index.zip | Bin 263 -> 263 bytes
 .../admin/2.10.0-SNAPSHOT/type-search-index.zip    | Bin 500 -> 500 bytes
 .../client/2.10.0-SNAPSHOT/member-search-index.zip | Bin 11209 -> 11209 bytes
 .../client/2.10.0-SNAPSHOT/overview-summary.html   |   2 +-
 .../2.10.0-SNAPSHOT/package-search-index.zip       | Bin 298 -> 298 bytes
 .../client/2.10.0-SNAPSHOT/type-search-index.zip   | Bin 1549 -> 1549 bytes
 .../2.10.0-SNAPSHOT/member-search-index.zip        | Bin 70407 -> 70407 bytes
 .../2.10.0-SNAPSHOT/overview-summary.html          |   2 +-
 .../2.10.0-SNAPSHOT/package-search-index.zip       | Bin 593 -> 593 bytes
 .../2.10.0-SNAPSHOT/type-search-index.zip          | Bin 4389 -> 4389 bytes
 .../2.10.0-SNAPSHOT/member-search-index.zip        | Bin 1277 -> 1277 bytes
 .../2.10.0-SNAPSHOT/overview-summary.html          |   2 +-
 .../2.10.0-SNAPSHOT/package-search-index.zip       | Bin 260 -> 260 bytes
 .../2.10.0-SNAPSHOT/type-search-index.zip          | Bin 349 -> 349 bytes
 .../cookbooks-retention-expiry.html                |   4 +-
 .../cookbooks-retention-expiry/index.html          |   4 +-
 .../cookbooks-retention-expiry.html                |   4 +-
 .../cookbooks-retention-expiry/index.html          |   4 +-
 .../zh-CN/2.2.0/cookbooks-retention-expiry.html    |   4 +-
 .../2.2.0/cookbooks-retention-expiry/index.html    |   4 +-
 .../zh-CN/2.2.1/cookbooks-retention-expiry.html    |   4 +-
 .../2.2.1/cookbooks-retention-expiry/index.html    |   4 +-
 .../zh-CN/2.3.0/cookbooks-retention-expiry.html    |   4 +-
 .../2.3.0/cookbooks-retention-expiry/index.html    |   4 +-
 .../zh-CN/2.3.1/cookbooks-retention-expiry.html    |   4 +-
 .../2.3.1/cookbooks-retention-expiry/index.html    |   4 +-
 .../zh-CN/2.3.2/cookbooks-retention-expiry.html    |   4 +-
 .../2.3.2/cookbooks-retention-expiry/index.html    |   4 +-
 .../zh-CN/2.4.0/cookbooks-retention-expiry.html    |   4 +-
 .../2.4.0/cookbooks-retention-expiry/index.html    |   4 +-
 .../zh-CN/2.4.1/cookbooks-retention-expiry.html    |   4 +-
 .../2.4.1/cookbooks-retention-expiry/index.html    |   4 +-
 .../zh-CN/2.4.2/cookbooks-retention-expiry.html    |   4 +-
 .../2.4.2/cookbooks-retention-expiry/index.html    |   4 +-
 .../zh-CN/2.5.0/cookbooks-retention-expiry.html    |   4 +-
 .../2.5.0/cookbooks-retention-expiry/index.html    |   4 +-
 .../zh-CN/2.5.1/cookbooks-retention-expiry.html    |   4 +-
 .../2.5.1/cookbooks-retention-expiry/index.html    |   4 +-
 .../zh-CN/2.5.2/cookbooks-retention-expiry.html    |   4 +-
 .../2.5.2/cookbooks-retention-expiry/index.html    |   4 +-
 .../zh-CN/2.6.0/cookbooks-retention-expiry.html    |   4 +-
 .../2.6.0/cookbooks-retention-expiry/index.html    |   4 +-
 .../zh-CN/2.6.1/cookbooks-retention-expiry.html    |   4 +-
 .../2.6.1/cookbooks-retention-expiry/index.html    |   4 +-
 .../zh-CN/2.6.2/cookbooks-retention-expiry.html    |   4 +-
 .../2.6.2/cookbooks-retention-expiry/index.html    |   4 +-
 .../zh-CN/2.6.3/cookbooks-retention-expiry.html    |   4 +-
 .../2.6.3/cookbooks-retention-expiry/index.html    |   4 +-
 .../zh-CN/2.6.4/cookbooks-retention-expiry.html    |   4 +-
 .../2.6.4/cookbooks-retention-expiry/index.html    |   4 +-
 content/docs/zh-CN/2.7.0/admin-api-topics.html     |  51 +-
 .../docs/zh-CN/2.7.0/admin-api-topics/index.html   |  51 +-
 .../zh-CN/2.7.0/cookbooks-retention-expiry.html    |   4 +-
 .../2.7.0/cookbooks-retention-expiry/index.html    |   4 +-
 content/docs/zh-CN/2.7.1/admin-api-topics.html     |  51 +-
 .../docs/zh-CN/2.7.1/admin-api-topics/index.html   |  51 +-
 .../zh-CN/2.7.1/cookbooks-retention-expiry.html    |   4 +-
 .../2.7.1/cookbooks-retention-expiry/index.html    |   4 +-
 content/docs/zh-CN/2.7.2/admin-api-topics.html     |  51 +-
 .../docs/zh-CN/2.7.2/admin-api-topics/index.html   |  51 +-
 .../zh-CN/2.7.2/cookbooks-retention-expiry.html    |   4 +-
 .../2.7.2/cookbooks-retention-expiry/index.html    |   4 +-
 content/docs/zh-CN/2.7.3/admin-api-topics.html     |  51 +-
 .../docs/zh-CN/2.7.3/admin-api-topics/index.html   |  51 +-
 .../zh-CN/2.7.3/cookbooks-retention-expiry.html    |   4 +-
 .../2.7.3/cookbooks-retention-expiry/index.html    |   4 +-
 content/docs/zh-CN/2.7.4/admin-api-topics.html     |  51 +-
 .../docs/zh-CN/2.7.4/admin-api-topics/index.html   |  51 +-
 .../zh-CN/2.7.4/cookbooks-retention-expiry.html    |   4 +-
 .../2.7.4/cookbooks-retention-expiry/index.html    |   4 +-
 content/docs/zh-CN/2.8.0/admin-api-topics.html     |  51 +-
 .../docs/zh-CN/2.8.0/admin-api-topics/index.html   |  51 +-
 .../zh-CN/2.8.0/cookbooks-retention-expiry.html    |   4 +-
 .../2.8.0/cookbooks-retention-expiry/index.html    |   4 +-
 content/docs/zh-CN/2.8.1/admin-api-topics.html     |  51 +-
 .../docs/zh-CN/2.8.1/admin-api-topics/index.html   |  51 +-
 .../zh-CN/2.8.1/cookbooks-retention-expiry.html    |   4 +-
 .../2.8.1/cookbooks-retention-expiry/index.html    |   4 +-
 content/docs/zh-CN/2.8.2/admin-api-topics.html     |  51 +-
 .../docs/zh-CN/2.8.2/admin-api-topics/index.html   |  51 +-
 .../zh-CN/2.8.2/cookbooks-retention-expiry.html    |   4 +-
 .../2.8.2/cookbooks-retention-expiry/index.html    |   4 +-
 content/docs/zh-CN/2.8.3/admin-api-topics.html     |  51 +-
 .../docs/zh-CN/2.8.3/admin-api-topics/index.html   |  51 +-
 .../zh-CN/2.8.3/cookbooks-retention-expiry.html    |   4 +-
 .../2.8.3/cookbooks-retention-expiry/index.html    |   4 +-
 content/docs/zh-CN/2.9.0/admin-api-topics.html     |  45 +-
 .../docs/zh-CN/2.9.0/admin-api-topics/index.html   |  45 +-
 .../zh-CN/2.9.0/cookbooks-retention-expiry.html    |   4 +-
 .../2.9.0/cookbooks-retention-expiry/index.html    |   4 +-
 content/docs/zh-CN/admin-api-topics.html           |  45 +-
 content/docs/zh-CN/admin-api-topics/index.html     |  45 +-
 content/docs/zh-CN/cookbooks-retention-expiry.html |   4 +-
 .../zh-CN/cookbooks-retention-expiry/index.html    |   4 +-
 content/docs/zh-CN/next/admin-api-topics.html      |  55 +-
 .../docs/zh-CN/next/admin-api-topics/index.html    |  55 +-
 content/docs/zh-CN/next/concepts-messaging.html    |   8 +-
 .../docs/zh-CN/next/concepts-messaging/index.html  |   8 +-
 .../zh-CN/next/cookbooks-retention-expiry.html     |  34 +-
 .../next/cookbooks-retention-expiry/index.html     |  34 +-
 content/swagger/2.10.0-SNAPSHOT/swagger.json       | 628 +++++++++---------
 .../swagger/2.10.0-SNAPSHOT/swaggerfunctions.json  | 282 ++++-----
 .../swagger/2.10.0-SNAPSHOT/swaggerpackages.json   | 254 ++++----
 content/swagger/2.10.0-SNAPSHOT/swaggersink.json   | 254 ++++----
 content/swagger/2.10.0-SNAPSHOT/swaggersource.json | 254 ++++----
 content/swagger/2.10.0-SNAPSHOT/v2/swagger.json    | 704 ++++++++++-----------
 .../2.10.0-SNAPSHOT/v3/swaggerfunctions.json       | 338 +++++-----
 .../2.10.0-SNAPSHOT/v3/swaggerpackages.json        | 310 ++++-----
 .../swagger/2.10.0-SNAPSHOT/v3/swaggersink.json    | 310 ++++-----
 .../swagger/2.10.0-SNAPSHOT/v3/swaggersource.json  | 310 ++++-----
 content/swagger/master/swagger.json                | 628 +++++++++---------
 content/swagger/master/swaggerfunctions.json       | 282 ++++-----
 content/swagger/master/swaggerpackages.json        | 254 ++++----
 content/swagger/master/swaggersink.json            | 254 ++++----
 content/swagger/master/swaggersource.json          | 254 ++++----
 content/swagger/master/v2/swagger.json             | 704 ++++++++++-----------
 content/swagger/master/v3/swaggerfunctions.json    | 338 +++++-----
 content/swagger/master/v3/swaggerpackages.json     | 310 ++++-----
 content/swagger/master/v3/swaggersink.json         | 310 ++++-----
 content/swagger/master/v3/swaggersource.json       | 310 ++++-----
 122 files changed, 4422 insertions(+), 4398 deletions(-)

diff --git a/content/api/admin/2.10.0-SNAPSHOT/member-search-index.zip b/content/api/admin/2.10.0-SNAPSHOT/member-search-index.zip
index 882b3ec..984defd 100644
Binary files a/content/api/admin/2.10.0-SNAPSHOT/member-search-index.zip and b/content/api/admin/2.10.0-SNAPSHOT/member-search-index.zip differ
diff --git a/content/api/admin/2.10.0-SNAPSHOT/overview-summary.html b/content/api/admin/2.10.0-SNAPSHOT/overview-summary.html
index 64c7b37..bc34887 100644
--- a/content/api/admin/2.10.0-SNAPSHOT/overview-summary.html
+++ b/content/api/admin/2.10.0-SNAPSHOT/overview-summary.html
@@ -2,7 +2,7 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.11) on Sun Mar 27 06:14:39 UTC 2022 -->
+<!-- Generated by javadoc (11.0.11) on Mon Mar 28 00:16:29 UTC 2022 -->
 <title>Pulsar Client Admin Original 2.10.0-SNAPSHOT API</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <script type="text/javascript">window.location.replace('index.html')</script>
diff --git a/content/api/admin/2.10.0-SNAPSHOT/package-search-index.zip b/content/api/admin/2.10.0-SNAPSHOT/package-search-index.zip
index 9e9e255..a5dbc91 100644
Binary files a/content/api/admin/2.10.0-SNAPSHOT/package-search-index.zip and b/content/api/admin/2.10.0-SNAPSHOT/package-search-index.zip differ
diff --git a/content/api/admin/2.10.0-SNAPSHOT/type-search-index.zip b/content/api/admin/2.10.0-SNAPSHOT/type-search-index.zip
index 91556a4..1148e0c 100644
Binary files a/content/api/admin/2.10.0-SNAPSHOT/type-search-index.zip and b/content/api/admin/2.10.0-SNAPSHOT/type-search-index.zip differ
diff --git a/content/api/client/2.10.0-SNAPSHOT/member-search-index.zip b/content/api/client/2.10.0-SNAPSHOT/member-search-index.zip
index cddfb3c..082e8aa 100644
Binary files a/content/api/client/2.10.0-SNAPSHOT/member-search-index.zip and b/content/api/client/2.10.0-SNAPSHOT/member-search-index.zip differ
diff --git a/content/api/client/2.10.0-SNAPSHOT/overview-summary.html b/content/api/client/2.10.0-SNAPSHOT/overview-summary.html
index 80b4674..beb7737 100644
--- a/content/api/client/2.10.0-SNAPSHOT/overview-summary.html
+++ b/content/api/client/2.10.0-SNAPSHOT/overview-summary.html
@@ -2,7 +2,7 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.11) on Sun Mar 27 06:14:31 UTC 2022 -->
+<!-- Generated by javadoc (11.0.11) on Mon Mar 28 00:16:22 UTC 2022 -->
 <title>Pulsar Client :: API 2.10.0-SNAPSHOT API</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <script type="text/javascript">window.location.replace('index.html')</script>
diff --git a/content/api/client/2.10.0-SNAPSHOT/package-search-index.zip b/content/api/client/2.10.0-SNAPSHOT/package-search-index.zip
index c901b0d..2d60bc3 100644
Binary files a/content/api/client/2.10.0-SNAPSHOT/package-search-index.zip and b/content/api/client/2.10.0-SNAPSHOT/package-search-index.zip differ
diff --git a/content/api/client/2.10.0-SNAPSHOT/type-search-index.zip b/content/api/client/2.10.0-SNAPSHOT/type-search-index.zip
index 6d56279a..5c83dc8 100644
Binary files a/content/api/client/2.10.0-SNAPSHOT/type-search-index.zip and b/content/api/client/2.10.0-SNAPSHOT/type-search-index.zip differ
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/member-search-index.zip b/content/api/pulsar-broker/2.10.0-SNAPSHOT/member-search-index.zip
index 071a1a8..3b4a81e 100644
Binary files a/content/api/pulsar-broker/2.10.0-SNAPSHOT/member-search-index.zip and b/content/api/pulsar-broker/2.10.0-SNAPSHOT/member-search-index.zip differ
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/overview-summary.html b/content/api/pulsar-broker/2.10.0-SNAPSHOT/overview-summary.html
index 5834de5..578a438 100644
--- a/content/api/pulsar-broker/2.10.0-SNAPSHOT/overview-summary.html
+++ b/content/api/pulsar-broker/2.10.0-SNAPSHOT/overview-summary.html
@@ -2,7 +2,7 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.11) on Sun Mar 27 06:14:57 UTC 2022 -->
+<!-- Generated by javadoc (11.0.11) on Mon Mar 28 00:16:45 UTC 2022 -->
 <title>Pulsar Broker 2.10.0-SNAPSHOT API</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <script type="text/javascript">window.location.replace('index.html')</script>
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/package-search-index.zip b/content/api/pulsar-broker/2.10.0-SNAPSHOT/package-search-index.zip
index 8260c10..f9c19ad 100644
Binary files a/content/api/pulsar-broker/2.10.0-SNAPSHOT/package-search-index.zip and b/content/api/pulsar-broker/2.10.0-SNAPSHOT/package-search-index.zip differ
diff --git a/content/api/pulsar-broker/2.10.0-SNAPSHOT/type-search-index.zip b/content/api/pulsar-broker/2.10.0-SNAPSHOT/type-search-index.zip
index 3914003..9732774 100644
Binary files a/content/api/pulsar-broker/2.10.0-SNAPSHOT/type-search-index.zip and b/content/api/pulsar-broker/2.10.0-SNAPSHOT/type-search-index.zip differ
diff --git a/content/api/pulsar-functions/2.10.0-SNAPSHOT/member-search-index.zip b/content/api/pulsar-functions/2.10.0-SNAPSHOT/member-search-index.zip
index d03e1a1..66424ad 100644
Binary files a/content/api/pulsar-functions/2.10.0-SNAPSHOT/member-search-index.zip and b/content/api/pulsar-functions/2.10.0-SNAPSHOT/member-search-index.zip differ
diff --git a/content/api/pulsar-functions/2.10.0-SNAPSHOT/overview-summary.html b/content/api/pulsar-functions/2.10.0-SNAPSHOT/overview-summary.html
index 6bf298a..6c3b783 100644
--- a/content/api/pulsar-functions/2.10.0-SNAPSHOT/overview-summary.html
+++ b/content/api/pulsar-functions/2.10.0-SNAPSHOT/overview-summary.html
@@ -2,7 +2,7 @@
 <!-- NewPage -->
 <html lang="en">
 <head>
-<!-- Generated by javadoc (11.0.11) on Sun Mar 27 06:14:45 UTC 2022 -->
+<!-- Generated by javadoc (11.0.11) on Mon Mar 28 00:16:34 UTC 2022 -->
 <title>Pulsar Functions :: API 2.10.0-SNAPSHOT API</title>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <script type="text/javascript">window.location.replace('index.html')</script>
diff --git a/content/api/pulsar-functions/2.10.0-SNAPSHOT/package-search-index.zip b/content/api/pulsar-functions/2.10.0-SNAPSHOT/package-search-index.zip
index 4420908..3e55d38 100644
Binary files a/content/api/pulsar-functions/2.10.0-SNAPSHOT/package-search-index.zip and b/content/api/pulsar-functions/2.10.0-SNAPSHOT/package-search-index.zip differ
diff --git a/content/api/pulsar-functions/2.10.0-SNAPSHOT/type-search-index.zip b/content/api/pulsar-functions/2.10.0-SNAPSHOT/type-search-index.zip
index 92629b4..ee881da 100644
Binary files a/content/api/pulsar-functions/2.10.0-SNAPSHOT/type-search-index.zip and b/content/api/pulsar-functions/2.10.0-SNAPSHOT/type-search-index.zip differ
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 5d152ff..a6edfa4 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
@@ -146,7 +146,7 @@ admin.namespaces().setRetention(namespace, policies);
 <h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em>是由bookies存储的主题的未确认消息集。 Pulsar把所有未确认的消息存储在Backlog中,直到它们被处理和确认为止。</p>
 <p>可以使用 <em>backlog quotas</em> 在命名空间级别限制 Backlog 的大小。 设置backlog quota 涉及以下设置:</p>
 <ul>
@@ -252,7 +252,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>加密</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 [...]
+</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>加密</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 [...]
       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 5d152ff..a6edfa4 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
@@ -146,7 +146,7 @@ admin.namespaces().setRetention(namespace, policies);
 <h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em>是由bookies存储的主题的未确认消息集。 Pulsar把所有未确认的消息存储在Backlog中,直到它们被处理和确认为止。</p>
 <p>可以使用 <em>backlog quotas</em> 在命名空间级别限制 Backlog 的大小。 设置backlog quota 涉及以下设置:</p>
 <ul>
@@ -252,7 +252,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>加密</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 [...]
+</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>加密</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 [...]
       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.html b/content/docs/zh-CN/2.1.1-incubating/cookbooks-retention-expiry.html
index c7f8755..9ab6774 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
@@ -146,7 +146,7 @@ admin.namespaces().setRetention(namespace, policies);
 <h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em>是由bookies存储的主题的未确认消息集。 Pulsar把所有未确认的消息存储在Backlog中,直到它们被处理和确认为止。</p>
 <p>可以使用 <em>backlog quotas</em> 在命名空间级别限制 Backlog 的大小。 设置backlog quota 涉及以下设置:</p>
 <ul>
@@ -252,7 +252,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>加密</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 [...]
+</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>加密</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 [...]
       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 c7f8755..9ab6774 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
@@ -146,7 +146,7 @@ admin.namespaces().setRetention(namespace, policies);
 <h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em>是由bookies存储的主题的未确认消息集。 Pulsar把所有未确认的消息存储在Backlog中,直到它们被处理和确认为止。</p>
 <p>可以使用 <em>backlog quotas</em> 在命名空间级别限制 Backlog 的大小。 设置backlog quota 涉及以下设置:</p>
 <ul>
@@ -252,7 +252,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>加密</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 [...]
+</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>加密</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 [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
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 6c871c7..e1fcb62 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
@@ -146,7 +146,7 @@ admin.namespaces().setRetention(namespace, policies);
 <h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em>是由bookies存储的主题的未确认消息集。 Pulsar把所有未确认的消息存储在Backlog中,直到它们被处理和确认为止。</p>
 <p>可以使用 <em>backlog quotas</em> 在命名空间级别限制 Backlog 的大小。 设置backlog quota 涉及以下设置:</p>
 <ul>
@@ -252,7 +252,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>加密</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="#设置保留策略">设置保 [...]
+</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>加密</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 =
         '<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 6c871c7..e1fcb62 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
@@ -146,7 +146,7 @@ admin.namespaces().setRetention(namespace, policies);
 <h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em>是由bookies存储的主题的未确认消息集。 Pulsar把所有未确认的消息存储在Backlog中,直到它们被处理和确认为止。</p>
 <p>可以使用 <em>backlog quotas</em> 在命名空间级别限制 Backlog 的大小。 设置backlog quota 涉及以下设置:</p>
 <ul>
@@ -252,7 +252,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>加密</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="#设置保留策略">设置保 [...]
+</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>加密</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 =
         '<li>' +
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 e8a1062..1336e41 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
@@ -146,7 +146,7 @@ admin.namespaces().setRetention(namespace, policies);
 <h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em>是由bookies存储的主题的未确认消息集。 Pulsar把所有未确认的消息存储在Backlog中,直到它们被处理和确认为止。</p>
 <p>可以使用 <em>backlog quotas</em> 在命名空间级别限制 Backlog 的大小。 设置backlog quota 涉及以下设置:</p>
 <ul>
@@ -252,7 +252,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>加密</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="#设置保留策略">设置保 [...]
+</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>加密</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 =
         '<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 e8a1062..1336e41 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
@@ -146,7 +146,7 @@ admin.namespaces().setRetention(namespace, policies);
 <h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em>是由bookies存储的主题的未确认消息集。 Pulsar把所有未确认的消息存储在Backlog中,直到它们被处理和确认为止。</p>
 <p>可以使用 <em>backlog quotas</em> 在命名空间级别限制 Backlog 的大小。 设置backlog quota 涉及以下设置:</p>
 <ul>
@@ -252,7 +252,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>加密</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="#设置保留策略">设置保 [...]
+</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>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.3.0/cookbooks-retention-expiry.html b/content/docs/zh-CN/2.3.0/cookbooks-retention-expiry.html
index 8b6ba3c..6537863 100644
--- a/content/docs/zh-CN/2.3.0/cookbooks-retention-expiry.html
+++ b/content/docs/zh-CN/2.3.0/cookbooks-retention-expiry.html
@@ -146,7 +146,7 @@ admin.namespaces().setRetention(namespace, policies);
 <h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <ul>
@@ -252,7 +252,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/2.3.0/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.3.0/cookbooks-encryption"><span>加密</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="#设置保留策略">设置保 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.3.0/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.3.0/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.3.0/cookbooks-retention-expiry/index.html b/content/docs/zh-CN/2.3.0/cookbooks-retention-expiry/index.html
index 8b6ba3c..6537863 100644
--- a/content/docs/zh-CN/2.3.0/cookbooks-retention-expiry/index.html
+++ b/content/docs/zh-CN/2.3.0/cookbooks-retention-expiry/index.html
@@ -146,7 +146,7 @@ admin.namespaces().setRetention(namespace, policies);
 <h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <ul>
@@ -252,7 +252,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/2.3.0/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.3.0/cookbooks-encryption"><span>加密</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="#设置保留策略">设置保 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.3.0/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.3.0/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.3.1/cookbooks-retention-expiry.html b/content/docs/zh-CN/2.3.1/cookbooks-retention-expiry.html
index e1d871a..f0a6c07 100644
--- a/content/docs/zh-CN/2.3.1/cookbooks-retention-expiry.html
+++ b/content/docs/zh-CN/2.3.1/cookbooks-retention-expiry.html
@@ -146,7 +146,7 @@ admin.namespaces().setRetention(namespace, policies);
 <h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <ul>
@@ -252,7 +252,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/2.3.1/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.3.1/cookbooks-encryption"><span>加密</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="#设置保留策略">设置保 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.3.1/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.3.1/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.3.1/cookbooks-retention-expiry/index.html b/content/docs/zh-CN/2.3.1/cookbooks-retention-expiry/index.html
index e1d871a..f0a6c07 100644
--- a/content/docs/zh-CN/2.3.1/cookbooks-retention-expiry/index.html
+++ b/content/docs/zh-CN/2.3.1/cookbooks-retention-expiry/index.html
@@ -146,7 +146,7 @@ admin.namespaces().setRetention(namespace, policies);
 <h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <ul>
@@ -252,7 +252,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/2.3.1/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.3.1/cookbooks-encryption"><span>加密</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="#设置保留策略">设置保 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.3.1/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.3.1/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.3.2/cookbooks-retention-expiry.html b/content/docs/zh-CN/2.3.2/cookbooks-retention-expiry.html
index b881982..579d199 100644
--- a/content/docs/zh-CN/2.3.2/cookbooks-retention-expiry.html
+++ b/content/docs/zh-CN/2.3.2/cookbooks-retention-expiry.html
@@ -146,7 +146,7 @@ admin.namespaces().setRetention(namespace, policies);
 <h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <ul>
@@ -252,7 +252,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/2.3.2/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.3.2/cookbooks-encryption"><span>加密</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="#设置保留策略">设置保 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.3.2/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.3.2/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.3.2/cookbooks-retention-expiry/index.html b/content/docs/zh-CN/2.3.2/cookbooks-retention-expiry/index.html
index b881982..579d199 100644
--- a/content/docs/zh-CN/2.3.2/cookbooks-retention-expiry/index.html
+++ b/content/docs/zh-CN/2.3.2/cookbooks-retention-expiry/index.html
@@ -146,7 +146,7 @@ admin.namespaces().setRetention(namespace, policies);
 <h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <ul>
@@ -252,7 +252,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/2.3.2/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.3.2/cookbooks-encryption"><span>加密</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="#设置保留策略">设置保 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.3.2/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.3.2/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.4.0/cookbooks-retention-expiry.html b/content/docs/zh-CN/2.4.0/cookbooks-retention-expiry.html
index 4c5e085..1b174e5 100644
--- a/content/docs/zh-CN/2.4.0/cookbooks-retention-expiry.html
+++ b/content/docs/zh-CN/2.4.0/cookbooks-retention-expiry.html
@@ -146,7 +146,7 @@ admin.namespaces().setRetention(namespace, policies);
 <h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <ul>
@@ -252,7 +252,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/2.4.0/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.4.0/cookbooks-encryption"><span>加密</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="#设置保留策略">设置保 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.4.0/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.4.0/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.4.0/cookbooks-retention-expiry/index.html b/content/docs/zh-CN/2.4.0/cookbooks-retention-expiry/index.html
index 4c5e085..1b174e5 100644
--- a/content/docs/zh-CN/2.4.0/cookbooks-retention-expiry/index.html
+++ b/content/docs/zh-CN/2.4.0/cookbooks-retention-expiry/index.html
@@ -146,7 +146,7 @@ admin.namespaces().setRetention(namespace, policies);
 <h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <ul>
@@ -252,7 +252,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/2.4.0/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.4.0/cookbooks-encryption"><span>加密</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="#设置保留策略">设置保 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.4.0/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.4.0/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.4.1/cookbooks-retention-expiry.html b/content/docs/zh-CN/2.4.1/cookbooks-retention-expiry.html
index fd8ca9d..a5736d7 100644
--- a/content/docs/zh-CN/2.4.1/cookbooks-retention-expiry.html
+++ b/content/docs/zh-CN/2.4.1/cookbooks-retention-expiry.html
@@ -146,7 +146,7 @@ admin.namespaces().setRetention(namespace, policies);
 <h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <ul>
@@ -252,7 +252,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/2.4.1/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.4.1/cookbooks-encryption"><span>加密</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="#设置保留策略">设置保 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.4.1/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.4.1/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.4.1/cookbooks-retention-expiry/index.html b/content/docs/zh-CN/2.4.1/cookbooks-retention-expiry/index.html
index fd8ca9d..a5736d7 100644
--- a/content/docs/zh-CN/2.4.1/cookbooks-retention-expiry/index.html
+++ b/content/docs/zh-CN/2.4.1/cookbooks-retention-expiry/index.html
@@ -146,7 +146,7 @@ admin.namespaces().setRetention(namespace, policies);
 <h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <ul>
@@ -252,7 +252,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/2.4.1/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.4.1/cookbooks-encryption"><span>加密</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="#设置保留策略">设置保 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.4.1/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.4.1/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.4.2/cookbooks-retention-expiry.html b/content/docs/zh-CN/2.4.2/cookbooks-retention-expiry.html
index 66e33ac..1bff761 100644
--- a/content/docs/zh-CN/2.4.2/cookbooks-retention-expiry.html
+++ b/content/docs/zh-CN/2.4.2/cookbooks-retention-expiry.html
@@ -146,7 +146,7 @@ admin.namespaces().setRetention(namespace, policies);
 <h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <ul>
@@ -252,7 +252,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/2.4.2/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.4.2/cookbooks-encryption"><span>加密</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="#设置保留策略">设置保 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.4.2/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.4.2/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.4.2/cookbooks-retention-expiry/index.html b/content/docs/zh-CN/2.4.2/cookbooks-retention-expiry/index.html
index 66e33ac..1bff761 100644
--- a/content/docs/zh-CN/2.4.2/cookbooks-retention-expiry/index.html
+++ b/content/docs/zh-CN/2.4.2/cookbooks-retention-expiry/index.html
@@ -146,7 +146,7 @@ admin.namespaces().setRetention(namespace, policies);
 <h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <ul>
@@ -252,7 +252,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/2.4.2/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.4.2/cookbooks-encryption"><span>加密</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="#设置保留策略">设置保 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.4.2/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.4.2/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.5.0/cookbooks-retention-expiry.html b/content/docs/zh-CN/2.5.0/cookbooks-retention-expiry.html
index 905e575..7436ae8 100644
--- a/content/docs/zh-CN/2.5.0/cookbooks-retention-expiry.html
+++ b/content/docs/zh-CN/2.5.0/cookbooks-retention-expiry.html
@@ -146,7 +146,7 @@ admin.namespaces().setRetention(namespace, policies);
 <h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -253,7 +253,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/2.5.0/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.5.0/cookbooks-encryption"><span>加密</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="#设置保留策略">设置保 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.5.0/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.5.0/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.5.0/cookbooks-retention-expiry/index.html b/content/docs/zh-CN/2.5.0/cookbooks-retention-expiry/index.html
index 905e575..7436ae8 100644
--- a/content/docs/zh-CN/2.5.0/cookbooks-retention-expiry/index.html
+++ b/content/docs/zh-CN/2.5.0/cookbooks-retention-expiry/index.html
@@ -146,7 +146,7 @@ admin.namespaces().setRetention(namespace, policies);
 <h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -253,7 +253,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/2.5.0/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.5.0/cookbooks-encryption"><span>加密</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="#设置保留策略">设置保 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.5.0/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.5.0/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.5.1/cookbooks-retention-expiry.html b/content/docs/zh-CN/2.5.1/cookbooks-retention-expiry.html
index 001555a..6ef4d1e 100644
--- a/content/docs/zh-CN/2.5.1/cookbooks-retention-expiry.html
+++ b/content/docs/zh-CN/2.5.1/cookbooks-retention-expiry.html
@@ -146,7 +146,7 @@ admin.namespaces().setRetention(namespace, policies);
 <h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -253,7 +253,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/2.5.1/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.5.1/cookbooks-encryption"><span>加密</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="#设置保留策略">设置保 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.5.1/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.5.1/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.5.1/cookbooks-retention-expiry/index.html b/content/docs/zh-CN/2.5.1/cookbooks-retention-expiry/index.html
index 001555a..6ef4d1e 100644
--- a/content/docs/zh-CN/2.5.1/cookbooks-retention-expiry/index.html
+++ b/content/docs/zh-CN/2.5.1/cookbooks-retention-expiry/index.html
@@ -146,7 +146,7 @@ admin.namespaces().setRetention(namespace, policies);
 <h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -253,7 +253,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/2.5.1/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.5.1/cookbooks-encryption"><span>加密</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="#设置保留策略">设置保 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.5.1/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.5.1/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.5.2/cookbooks-retention-expiry.html b/content/docs/zh-CN/2.5.2/cookbooks-retention-expiry.html
index fea51f7..f5d0982 100644
--- a/content/docs/zh-CN/2.5.2/cookbooks-retention-expiry.html
+++ b/content/docs/zh-CN/2.5.2/cookbooks-retention-expiry.html
@@ -146,7 +146,7 @@ admin.namespaces().setRetention(namespace, policies);
 <h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -253,7 +253,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/2.5.2/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.5.2/cookbooks-encryption"><span>加密</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="#设置保留策略">设置保 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.5.2/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.5.2/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.5.2/cookbooks-retention-expiry/index.html b/content/docs/zh-CN/2.5.2/cookbooks-retention-expiry/index.html
index fea51f7..f5d0982 100644
--- a/content/docs/zh-CN/2.5.2/cookbooks-retention-expiry/index.html
+++ b/content/docs/zh-CN/2.5.2/cookbooks-retention-expiry/index.html
@@ -146,7 +146,7 @@ admin.namespaces().setRetention(namespace, policies);
 <h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -253,7 +253,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/2.5.2/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.5.2/cookbooks-encryption"><span>加密</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="#设置保留策略">设置保 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.5.2/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.5.2/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.6.0/cookbooks-retention-expiry.html b/content/docs/zh-CN/2.6.0/cookbooks-retention-expiry.html
index 7967d2c..3aaf08d 100644
--- a/content/docs/zh-CN/2.6.0/cookbooks-retention-expiry.html
+++ b/content/docs/zh-CN/2.6.0/cookbooks-retention-expiry.html
@@ -146,7 +146,7 @@ admin.namespaces().setRetention(namespace, policies);
 <h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -260,7 +260,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <li><p><strong>Entry log rollover period</strong>: multiple ledgers in BookKeeper are interleaved into an <a href="https://bookkeeper.apache.org/docs/4.11.1/getting-started/concepts/#entry-logs">entry log</a>. 对于已删除的 ledger ,必须将条目日志 entry log 全部滚动。 Entry log 滚动周期是可配置的,但完全基于条目日志的大小。 详情参阅 <a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-settings">这里</a>。 Entry log 一经滚动,就可以进行垃圾回收 entry log。</p></li>
 <li><p><strong>Garbage collection interval</strong>: because entry logs have interleaved ledgers, to free up space, the entry logs need to be rewritten. 垃圾收集间隔是 BookKeeper 执行垃圾收集的频率 这与 entry log 的小压缩和大压缩有关。 详情参阅<a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-compaction-settings">这里</a>。</p></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.6.0/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.6.0/cookbooks-encryption"><span>加密</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="#设置保留策略">设置保 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.6.0/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.6.0/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.6.0/cookbooks-retention-expiry/index.html b/content/docs/zh-CN/2.6.0/cookbooks-retention-expiry/index.html
index 7967d2c..3aaf08d 100644
--- a/content/docs/zh-CN/2.6.0/cookbooks-retention-expiry/index.html
+++ b/content/docs/zh-CN/2.6.0/cookbooks-retention-expiry/index.html
@@ -146,7 +146,7 @@ admin.namespaces().setRetention(namespace, policies);
 <h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -260,7 +260,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <li><p><strong>Entry log rollover period</strong>: multiple ledgers in BookKeeper are interleaved into an <a href="https://bookkeeper.apache.org/docs/4.11.1/getting-started/concepts/#entry-logs">entry log</a>. 对于已删除的 ledger ,必须将条目日志 entry log 全部滚动。 Entry log 滚动周期是可配置的,但完全基于条目日志的大小。 详情参阅 <a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-settings">这里</a>。 Entry log 一经滚动,就可以进行垃圾回收 entry log。</p></li>
 <li><p><strong>Garbage collection interval</strong>: because entry logs have interleaved ledgers, to free up space, the entry logs need to be rewritten. 垃圾收集间隔是 BookKeeper 执行垃圾收集的频率 这与 entry log 的小压缩和大压缩有关。 详情参阅<a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-compaction-settings">这里</a>。</p></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.6.0/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.6.0/cookbooks-encryption"><span>加密</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="#设置保留策略">设置保 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.6.0/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.6.0/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.6.1/cookbooks-retention-expiry.html b/content/docs/zh-CN/2.6.1/cookbooks-retention-expiry.html
index b81174d..d1755aa 100644
--- a/content/docs/zh-CN/2.6.1/cookbooks-retention-expiry.html
+++ b/content/docs/zh-CN/2.6.1/cookbooks-retention-expiry.html
@@ -154,7 +154,7 @@
 <h4><a class="anchor" aria-hidden="true" id="java"></a><a href="#java" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -268,7 +268,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <li><p><strong>Entry log rollover period</strong>: multiple ledgers in BookKeeper are interleaved into an <a href="https://bookkeeper.apache.org/docs/4.11.1/getting-started/concepts/#entry-logs">entry log</a>. 对于已删除的 ledger ,必须将条目日志 entry log 全部滚动。 Entry log 滚动周期是可配置的,但完全基于条目日志的大小。 详情参阅 <a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-settings">这里</a>。 Entry log 一经滚动,就可以进行垃圾回收 entry log。</p></li>
 <li><p><strong>Garbage collection interval</strong>: because entry logs have interleaved ledgers, to free up space, the entry logs need to be rewritten. 垃圾收集间隔是 BookKeeper 执行垃圾收集的频率 这与 entry log 的小压缩和大压缩有关。 详情参阅<a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-compaction-settings">这里</a>。</p></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.6.1/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.6.1/cookbooks-encryption"><span>加密</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="#设置保留策略">设置保 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.6.1/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.6.1/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.6.1/cookbooks-retention-expiry/index.html b/content/docs/zh-CN/2.6.1/cookbooks-retention-expiry/index.html
index b81174d..d1755aa 100644
--- a/content/docs/zh-CN/2.6.1/cookbooks-retention-expiry/index.html
+++ b/content/docs/zh-CN/2.6.1/cookbooks-retention-expiry/index.html
@@ -154,7 +154,7 @@
 <h4><a class="anchor" aria-hidden="true" id="java"></a><a href="#java" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -268,7 +268,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <li><p><strong>Entry log rollover period</strong>: multiple ledgers in BookKeeper are interleaved into an <a href="https://bookkeeper.apache.org/docs/4.11.1/getting-started/concepts/#entry-logs">entry log</a>. 对于已删除的 ledger ,必须将条目日志 entry log 全部滚动。 Entry log 滚动周期是可配置的,但完全基于条目日志的大小。 详情参阅 <a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-settings">这里</a>。 Entry log 一经滚动,就可以进行垃圾回收 entry log。</p></li>
 <li><p><strong>Garbage collection interval</strong>: because entry logs have interleaved ledgers, to free up space, the entry logs need to be rewritten. 垃圾收集间隔是 BookKeeper 执行垃圾收集的频率 这与 entry log 的小压缩和大压缩有关。 详情参阅<a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-compaction-settings">这里</a>。</p></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.6.1/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.6.1/cookbooks-encryption"><span>加密</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="#设置保留策略">设置保 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.6.1/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.6.1/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.6.2/cookbooks-retention-expiry.html b/content/docs/zh-CN/2.6.2/cookbooks-retention-expiry.html
index 5944768..3b81623 100644
--- a/content/docs/zh-CN/2.6.2/cookbooks-retention-expiry.html
+++ b/content/docs/zh-CN/2.6.2/cookbooks-retention-expiry.html
@@ -146,7 +146,7 @@ admin.namespaces().setRetention(namespace, policies);
 <h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -272,7 +272,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <li><p><strong>Entry log rollover period</strong>: multiple ledgers in BookKeeper are interleaved into an <a href="https://bookkeeper.apache.org/docs/4.11.1/getting-started/concepts/#entry-logs">entry log</a>. 对于已删除的 ledger ,必须将条目日志 entry log 全部滚动。 Entry log 滚动周期是可配置的,但完全基于条目日志的大小。 详情参阅 <a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-settings">这里</a>。 Entry log 一经滚动,就可以进行垃圾回收 entry log。</p></li>
 <li><p><strong>Garbage collection interval</strong>: because entry logs have interleaved ledgers, to free up space, the entry logs need to be rewritten. 垃圾收集间隔是 BookKeeper 执行垃圾收集的频率 这与 entry log 的小压缩和大压缩有关。 详情参阅<a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-compaction-settings">这里</a>。</p></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.6.2/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.6.2/cookbooks-encryption"><span>加密</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="#设置保留策略">设置保 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.6.2/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.6.2/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.6.2/cookbooks-retention-expiry/index.html b/content/docs/zh-CN/2.6.2/cookbooks-retention-expiry/index.html
index 5944768..3b81623 100644
--- a/content/docs/zh-CN/2.6.2/cookbooks-retention-expiry/index.html
+++ b/content/docs/zh-CN/2.6.2/cookbooks-retention-expiry/index.html
@@ -146,7 +146,7 @@ admin.namespaces().setRetention(namespace, policies);
 <h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -272,7 +272,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <li><p><strong>Entry log rollover period</strong>: multiple ledgers in BookKeeper are interleaved into an <a href="https://bookkeeper.apache.org/docs/4.11.1/getting-started/concepts/#entry-logs">entry log</a>. 对于已删除的 ledger ,必须将条目日志 entry log 全部滚动。 Entry log 滚动周期是可配置的,但完全基于条目日志的大小。 详情参阅 <a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-settings">这里</a>。 Entry log 一经滚动,就可以进行垃圾回收 entry log。</p></li>
 <li><p><strong>Garbage collection interval</strong>: because entry logs have interleaved ledgers, to free up space, the entry logs need to be rewritten. 垃圾收集间隔是 BookKeeper 执行垃圾收集的频率 这与 entry log 的小压缩和大压缩有关。 详情参阅<a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-compaction-settings">这里</a>。</p></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.6.2/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.6.2/cookbooks-encryption"><span>加密</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="#设置保留策略">设置保 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.6.2/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.6.2/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.6.3/cookbooks-retention-expiry.html b/content/docs/zh-CN/2.6.3/cookbooks-retention-expiry.html
index 8ad2235..8194bf4 100644
--- a/content/docs/zh-CN/2.6.3/cookbooks-retention-expiry.html
+++ b/content/docs/zh-CN/2.6.3/cookbooks-retention-expiry.html
@@ -146,7 +146,7 @@ admin.namespaces().setRetention(namespace, policies);
 <h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -272,7 +272,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <li><p><strong>Entry log rollover period</strong>: multiple ledgers in BookKeeper are interleaved into an <a href="https://bookkeeper.apache.org/docs/4.11.1/getting-started/concepts/#entry-logs">entry log</a>. 对于已删除的 ledger ,必须将条目日志 entry log 全部滚动。 Entry log 滚动周期是可配置的,但完全基于条目日志的大小。 详情参阅 <a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-settings">这里</a>。 Entry log 一经滚动,就可以进行垃圾回收 entry log。</p></li>
 <li><p><strong>Garbage collection interval</strong>: because entry logs have interleaved ledgers, to free up space, the entry logs need to be rewritten. 垃圾收集间隔是 BookKeeper 执行垃圾收集的频率 这与 entry log 的小压缩和大压缩有关。 详情参阅<a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-compaction-settings">这里</a>。</p></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.6.3/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.6.3/cookbooks-encryption"><span>加密</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="#设置保留策略">设置保 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.6.3/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.6.3/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.6.3/cookbooks-retention-expiry/index.html b/content/docs/zh-CN/2.6.3/cookbooks-retention-expiry/index.html
index 8ad2235..8194bf4 100644
--- a/content/docs/zh-CN/2.6.3/cookbooks-retention-expiry/index.html
+++ b/content/docs/zh-CN/2.6.3/cookbooks-retention-expiry/index.html
@@ -146,7 +146,7 @@ admin.namespaces().setRetention(namespace, policies);
 <h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -272,7 +272,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <li><p><strong>Entry log rollover period</strong>: multiple ledgers in BookKeeper are interleaved into an <a href="https://bookkeeper.apache.org/docs/4.11.1/getting-started/concepts/#entry-logs">entry log</a>. 对于已删除的 ledger ,必须将条目日志 entry log 全部滚动。 Entry log 滚动周期是可配置的,但完全基于条目日志的大小。 详情参阅 <a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-settings">这里</a>。 Entry log 一经滚动,就可以进行垃圾回收 entry log。</p></li>
 <li><p><strong>Garbage collection interval</strong>: because entry logs have interleaved ledgers, to free up space, the entry logs need to be rewritten. 垃圾收集间隔是 BookKeeper 执行垃圾收集的频率 这与 entry log 的小压缩和大压缩有关。 详情参阅<a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-compaction-settings">这里</a>。</p></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.6.3/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.6.3/cookbooks-encryption"><span>加密</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="#设置保留策略">设置保 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.6.3/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.6.3/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.6.4/cookbooks-retention-expiry.html b/content/docs/zh-CN/2.6.4/cookbooks-retention-expiry.html
index dde3fb5e..a2c4ca0 100644
--- a/content/docs/zh-CN/2.6.4/cookbooks-retention-expiry.html
+++ b/content/docs/zh-CN/2.6.4/cookbooks-retention-expiry.html
@@ -146,7 +146,7 @@ admin.namespaces().setRetention(namespace, policies);
 <h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -272,7 +272,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <li><p><strong>Entry log rollover period</strong>: multiple ledgers in BookKeeper are interleaved into an <a href="https://bookkeeper.apache.org/docs/4.11.1/getting-started/concepts/#entry-logs">entry log</a>. 对于已删除的 ledger ,必须将条目日志 entry log 全部滚动。 Entry log 滚动周期是可配置的,但完全基于条目日志的大小。 详情参阅 <a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-settings">这里</a>。 Entry log 一经滚动,就可以进行垃圾回收 entry log。</p></li>
 <li><p><strong>Garbage collection interval</strong>: because entry logs have interleaved ledgers, to free up space, the entry logs need to be rewritten. 垃圾收集间隔是 BookKeeper 执行垃圾收集的频率 这与 entry log 的小压缩和大压缩有关。 详情参阅<a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-compaction-settings">这里</a>。</p></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.6.4/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.6.4/cookbooks-encryption"><span>加密</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="#设置保留策略">设置保 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.6.4/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.6.4/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.6.4/cookbooks-retention-expiry/index.html b/content/docs/zh-CN/2.6.4/cookbooks-retention-expiry/index.html
index dde3fb5e..a2c4ca0 100644
--- a/content/docs/zh-CN/2.6.4/cookbooks-retention-expiry/index.html
+++ b/content/docs/zh-CN/2.6.4/cookbooks-retention-expiry/index.html
@@ -146,7 +146,7 @@ admin.namespaces().setRetention(namespace, policies);
 <h4><a class="anchor" aria-hidden="true" id="java-1"></a><a href="#java-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -272,7 +272,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <li><p><strong>Entry log rollover period</strong>: multiple ledgers in BookKeeper are interleaved into an <a href="https://bookkeeper.apache.org/docs/4.11.1/getting-started/concepts/#entry-logs">entry log</a>. 对于已删除的 ledger ,必须将条目日志 entry log 全部滚动。 Entry log 滚动周期是可配置的,但完全基于条目日志的大小。 详情参阅 <a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-settings">这里</a>。 Entry log 一经滚动,就可以进行垃圾回收 entry log。</p></li>
 <li><p><strong>Garbage collection interval</strong>: because entry logs have interleaved ledgers, to free up space, the entry logs need to be rewritten. 垃圾收集间隔是 BookKeeper 执行垃圾收集的频率 这与 entry log 的小压缩和大压缩有关。 详情参阅<a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-compaction-settings">这里</a>。</p></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.6.4/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.6.4/cookbooks-encryption"><span>加密</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="#设置保留策略">设置保 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.6.4/cookbooks-partitioned"><span class="arrow-prev">← </span><span>分区主题</span></a><a class="docs-next button" href="/docs/zh-CN/2.6.4/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.7.0/admin-api-topics.html b/content/docs/zh-CN/2.7.0/admin-api-topics.html
index 9e3cc8b..95fdb74 100644
--- a/content/docs/zh-CN/2.7.0/admin-api-topics.html
+++ b/content/docs/zh-CN/2.7.0/admin-api-topics.html
@@ -391,7 +391,7 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-43909-content-43912" class="tab-pane" data-group="group_43909" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="设置去重快照间隔"></a><a href="#设置去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To set the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>设置主题级去重快照间隔,可以使用以下方法之一。</p>
 <blockquote>
 <p><strong>前提条件</strong> <code>brokerDeduplicationEnabled</code>必须设置为<code>true</code>。</p>
 </blockquote>
@@ -401,45 +401,45 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-43913-content-43916" class="tab-pane" data-group="group_43913" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setDeduplicationSnapshotInterval(topic, <span class="hljs-number">1000</span>)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="移除去重快照间隔"></a><a href="#移除去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To remove the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>移除主题级去重快照间隔,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-43917-tab-43918" class="nav-link active" data-group="group_43917" data-tab="tab-group-43917-content-43918">Pulsar-admin API</div><div id="tab-group-43917-tab-43919" class="nav-link" data-group="group_43917" data-tab="tab-group-43917-content-43919">REST API</div><div id="tab-group-43917-tab-43920" class="nav-link" data-group="group_43917" data-tab="tab-group-43917-content-43920">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-43917-content-43919" class="tab-pane" data-group="group_43917" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/deduplicationSnapshotInterval?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-43917-content-43920" class="tab-pane" data-group="group_43917" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-inactive-topic-policies"></a><a href="#configure-inactive-topic-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.5S1 [...]
-<h4><a class="anchor" aria-hidden="true" id="get-inactive-topic-policies"></a><a href="#get-inactive-topic-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 1 [...]
-<p>To get the topic-level inactive topic policies, use one of the following methods.</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.6 [...]
+<h4><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.6 [...]
+<p>获取主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-43921-tab-43922" class="nav-link active" data-group="group_43921" data-tab="tab-group-43921-content-43922">Pulsar-admin API</div><div id="tab-group-43921-tab-43923" class="nav-link" data-group="group_43921" data-tab="tab-group-43921-content-43923">REST API</div><div id="tab-group-43921-tab-43924" class="nav-link" data-group="group_43921" data-tab="tab-group-43921-content-43924">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-43921-content-43923" class="tab-pane" data-group="group_43921" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-43921-content-43924" class="tab-pane" data-group="group_43921" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-inactive-topic-policies"></a><a href="#set-inactive-topic-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 1 [...]
-<p>To set the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>设置主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-43925-tab-43926" class="nav-link active" data-group="group_43925" data-tab="tab-group-43925-content-43926">Pulsar-admin API</div><div id="tab-group-43925-tab-43927" class="nav-link" data-group="group_43925" data-tab="tab-group-43925-content-43927">REST API</div><div id="tab-group-43925-tab-43928" class="nav-link" data-group="group_43925" data-tab="tab-group-43925-content-43928">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-43925-content-43927" class="tab-pane" data-group="group_43925" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-43925-content-43928" class="tab-pane" data-group="group_43925" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setInactiveTopicPolicies(topic, inactiveTopicPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-inactive-topic-policies"></a><a href="#remove-inactive-topic-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 1 [...]
-<p>To remove the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>移除主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-43929-tab-43930" class="nav-link active" data-group="group_43929" data-tab="tab-group-43929-content-43930">Pulsar-admin API</div><div id="tab-group-43929-tab-43931" class="nav-link" data-group="group_43929" data-tab="tab-group-43929-content-43931">REST API</div><div id="tab-group-43929-tab-43932" class="nav-link" data-group="group_43929" data-tab="tab-group-43929-content-43932">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-43929-content-43931" class="tab-pane" data-group="group_43929" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-43929-content-43932" class="tab-pane" data-group="group_43929" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-offload-policies"></a><a href="#configure-offload-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 12H [...]
-<h4><a class="anchor" aria-hidden="true" id="get-offload-policies"></a><a href="#get-offload-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 [...]
-<p>To get the topic-level offload policies, use one of the following methods.</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. [...]
+<h4><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. [...]
+<p>获取主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-43933-tab-43934" class="nav-link active" data-group="group_43933" data-tab="tab-group-43933-content-43934">Pulsar-admin API</div><div id="tab-group-43933-tab-43935" class="nav-link" data-group="group_43933" data-tab="tab-group-43933-content-43935">REST API</div><div id="tab-group-43933-tab-43936" class="nav-link" data-group="group_43933" data-tab="tab-group-43933-content-43936">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-43933-content-43935" class="tab-pane" data-group="group_43933" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-43933-content-43936" class="tab-pane" data-group="group_43933" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getOffloadPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-offload-policies"></a><a href="#set-offload-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 [...]
-<p>To set the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>设置主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-43937-tab-43938" class="nav-link active" data-group="group_43937" data-tab="tab-group-43937-content-43938">Pulsar-admin API</div><div id="tab-group-43937-tab-43939" class="nav-link" data-group="group_43937" data-tab="tab-group-43937-content-43939">REST API</div><div id="tab-group-43937-tab-43940" class="nav-link" data-group="group_43937" data-tab="tab-group-43937-content-43940">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-43937-content-43939" class="tab-pane" data-group="group_43937" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-43937-content-43940" class="tab-pane" data-group="group_43937" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setOffloadPolicies(topic, offloadPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-offload-policies"></a><a href="#remove-offload-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 [...]
-<p>To remove the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>移除主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-43941-tab-43942" class="nav-link active" data-group="group_43941" data-tab="tab-group-43941-content-43942">Pulsar-admin API</div><div id="tab-group-43941-tab-43943" class="nav-link" data-group="group_43941" data-tab="tab-group-43941-content-43943">REST API</div><div id="tab-group-43941-tab-43944" class="nav-link" data-group="group_43941" data-tab="tab-group-43941-content-43944">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-43941-content-43943" class="tab-pane" data-group="group_43941" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-43941-content-43944" class="tab-pane" data-group="group_43941" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeOffloadPolicies(topic)<br /></code></pre>
@@ -683,9 +683,10 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 <p>默认情况下,Pulsar 主题由单个 broker 提供服务,这限制了主题的最大吞吐量。 <em>分区主题</em>可以跨越多个 broker,从而实现更高的吞吐量。</p>
 <p>你可以使用 Pulsar 客户端库发布到分区主题。 发布到分区主题时,必须指定路由模式。 如果在创建新的生产者时没有指定任何路由方式,则使用轮询路由模式。</p>
 <h3><a class="anchor" aria-hidden="true" id="routing-mode"></a><a href="#routing-mode" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. The routing mode determines which partition(internal topic) that each message should be published to.</p>
-<p>The following <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
- options are available.</p>
+<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. 路由模式决定了每条消息应该发往哪个分区(内部主题)。</p>
+<p>以下
+<a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
+ 选项是可用的。</p>
 <table>
 <thead>
 <tr><th style="text-align:left">发送模式</th><th style="text-align:left">说明</th></tr>
@@ -722,7 +723,7 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
     }
 }
 </code></pre>
-<p>With that implementation, you can send</p>
+<p>通过该实现,你可以发送:</p>
 <pre><code class="hljs css language-java">String pulsarBrokerRootUrl = <span class="hljs-string">"pulsar://localhost:6650"</span>;
 String topic = <span class="hljs-string">"persistent://my-tenant/my-cluster-my-namespace/my-topic"</span>;
 
@@ -734,7 +735,7 @@ Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = pulsarClient
 producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBytes());
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="使用-key-时如何选择分区"></a><a href="#使用-key-时如何选择分区" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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>If a message has a key, it supersedes the round robin routing policy. The following example illustrates how to choose the partition when using a key.</p>
+<p>If a message has a key, it supersedes the round robin routing policy. 以下示例说明当使用key时如何选择分区。</p>
 <pre><code class="hljs css language-java"><span class="hljs-comment">// 如果消息存在key,轮询路由策略将被替换</span>
         <span class="hljs-keyword">if</span> (msg.hasKey()) {
             <span class="hljs-keyword">return</span> signSafeMod(hash.makeHash(msg.getKey()), topicMetadata.numPartitions());
@@ -748,15 +749,15 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
 }
 </code></pre>
 <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>You can use <a href="/docs/zh-CN/2.7.0/admin-api-overview">Pulsar admin API</a> to create, check, and delete subscriptions.</p>
-<h3><a class="anchor" aria-hidden="true" id="create-subscription"></a><a href="#create-subscription" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
+<p>你可以使用 <a href="/docs/zh-CN/2.7.0/admin-api-overview">Pulsar admin Apl</a> 创建、检查和删除订阅。</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>You can create a subscription for a topic using one of the following methods.</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-43993-tab-43994" class="nav-link active" data-group="group_43993" data-tab="tab-group-43993-content-43994">pulsar-admin</div><div id="tab-group-43993-tab-43995" class="nav-link" data-group="group_43993" data-tab="tab-group-43993-content-43995">REST API</div><div id="tab-group-43993-tab-43996" class="nav-link" data-group="group_43993" data-tab="tab-group-43993-content-43996">Java</div></div><div class="tab-content"><div id="tab-gr [...]
 </span></div></div><div id="tab-group-43993-content-43995" class="tab-pane" data-group="group_43993" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/createSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>PUT</b> <i>/admin/v2/persistent/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-43993-content-43996" class="tab-pane" data-group="group_43993" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().createSubscription(topic, subscriptionName, MessageId.latest);<br /></code></pre>
 </span></div></div></div></div>
-### Get subscription
+### 获取订阅
 You can check all subscription names for a given topic using one of the following methods.
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-43997-tab-43998" class="nav-link active" data-group="group_43997" data-tab="tab-group-43997-content-43998">pulsar-admin</div><div id="tab-group-43997-tab-43999" class="nav-link" data-group="group_43997" data-tab="tab-group-43997-content-43999">REST API</div><div id="tab-group-43997-tab-44000" class="nav-link" data-group="group_43997" data-tab="tab-group-43997-content-44000">Java</div></div><div class="tab-content"><div id="tab-gr [...]
 </span></div></div><div id="tab-group-43997-content-43999" class="tab-pane" data-group="group_43997" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/getSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>GET</b> <i>/admin/v2/:schema/:tenant/:namespace/:topic/subscriptions</i></a>
@@ -769,7 +770,7 @@ When a subscription does not process messages any more, you can unsubscribe it u
 </span></div></div><div id="tab-group-44001-content-44003" class="tab-pane" data-group="group_44001" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/deleteSubscription?version=2.9.1&amp;apiVersion=v2"><b>DELETE</b> <i>/admin/v2/namespaces/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-44001-content-44004" class="tab-pane" data-group="group_44001" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().deleteSubscription(topic, subscriptionName);<br /></code></pre>
-</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.0/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.0/admin-api-functions"><span>Functions</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="#列出-to [...]
+</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.0/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.0/admin-api-functions"><span>Functions</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="#列出-to [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.7.0/admin-api-topics/index.html b/content/docs/zh-CN/2.7.0/admin-api-topics/index.html
index 9e3cc8b..95fdb74 100644
--- a/content/docs/zh-CN/2.7.0/admin-api-topics/index.html
+++ b/content/docs/zh-CN/2.7.0/admin-api-topics/index.html
@@ -391,7 +391,7 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-43909-content-43912" class="tab-pane" data-group="group_43909" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="设置去重快照间隔"></a><a href="#设置去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To set the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>设置主题级去重快照间隔,可以使用以下方法之一。</p>
 <blockquote>
 <p><strong>前提条件</strong> <code>brokerDeduplicationEnabled</code>必须设置为<code>true</code>。</p>
 </blockquote>
@@ -401,45 +401,45 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-43913-content-43916" class="tab-pane" data-group="group_43913" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setDeduplicationSnapshotInterval(topic, <span class="hljs-number">1000</span>)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="移除去重快照间隔"></a><a href="#移除去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To remove the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>移除主题级去重快照间隔,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-43917-tab-43918" class="nav-link active" data-group="group_43917" data-tab="tab-group-43917-content-43918">Pulsar-admin API</div><div id="tab-group-43917-tab-43919" class="nav-link" data-group="group_43917" data-tab="tab-group-43917-content-43919">REST API</div><div id="tab-group-43917-tab-43920" class="nav-link" data-group="group_43917" data-tab="tab-group-43917-content-43920">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-43917-content-43919" class="tab-pane" data-group="group_43917" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/deduplicationSnapshotInterval?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-43917-content-43920" class="tab-pane" data-group="group_43917" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-inactive-topic-policies"></a><a href="#configure-inactive-topic-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.5S1 [...]
-<h4><a class="anchor" aria-hidden="true" id="get-inactive-topic-policies"></a><a href="#get-inactive-topic-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 1 [...]
-<p>To get the topic-level inactive topic policies, use one of the following methods.</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.6 [...]
+<h4><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.6 [...]
+<p>获取主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-43921-tab-43922" class="nav-link active" data-group="group_43921" data-tab="tab-group-43921-content-43922">Pulsar-admin API</div><div id="tab-group-43921-tab-43923" class="nav-link" data-group="group_43921" data-tab="tab-group-43921-content-43923">REST API</div><div id="tab-group-43921-tab-43924" class="nav-link" data-group="group_43921" data-tab="tab-group-43921-content-43924">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-43921-content-43923" class="tab-pane" data-group="group_43921" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-43921-content-43924" class="tab-pane" data-group="group_43921" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-inactive-topic-policies"></a><a href="#set-inactive-topic-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 1 [...]
-<p>To set the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>设置主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-43925-tab-43926" class="nav-link active" data-group="group_43925" data-tab="tab-group-43925-content-43926">Pulsar-admin API</div><div id="tab-group-43925-tab-43927" class="nav-link" data-group="group_43925" data-tab="tab-group-43925-content-43927">REST API</div><div id="tab-group-43925-tab-43928" class="nav-link" data-group="group_43925" data-tab="tab-group-43925-content-43928">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-43925-content-43927" class="tab-pane" data-group="group_43925" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-43925-content-43928" class="tab-pane" data-group="group_43925" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setInactiveTopicPolicies(topic, inactiveTopicPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-inactive-topic-policies"></a><a href="#remove-inactive-topic-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 1 [...]
-<p>To remove the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>移除主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-43929-tab-43930" class="nav-link active" data-group="group_43929" data-tab="tab-group-43929-content-43930">Pulsar-admin API</div><div id="tab-group-43929-tab-43931" class="nav-link" data-group="group_43929" data-tab="tab-group-43929-content-43931">REST API</div><div id="tab-group-43929-tab-43932" class="nav-link" data-group="group_43929" data-tab="tab-group-43929-content-43932">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-43929-content-43931" class="tab-pane" data-group="group_43929" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-43929-content-43932" class="tab-pane" data-group="group_43929" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-offload-policies"></a><a href="#configure-offload-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 12H [...]
-<h4><a class="anchor" aria-hidden="true" id="get-offload-policies"></a><a href="#get-offload-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 [...]
-<p>To get the topic-level offload policies, use one of the following methods.</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. [...]
+<h4><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. [...]
+<p>获取主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-43933-tab-43934" class="nav-link active" data-group="group_43933" data-tab="tab-group-43933-content-43934">Pulsar-admin API</div><div id="tab-group-43933-tab-43935" class="nav-link" data-group="group_43933" data-tab="tab-group-43933-content-43935">REST API</div><div id="tab-group-43933-tab-43936" class="nav-link" data-group="group_43933" data-tab="tab-group-43933-content-43936">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-43933-content-43935" class="tab-pane" data-group="group_43933" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-43933-content-43936" class="tab-pane" data-group="group_43933" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getOffloadPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-offload-policies"></a><a href="#set-offload-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 [...]
-<p>To set the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>设置主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-43937-tab-43938" class="nav-link active" data-group="group_43937" data-tab="tab-group-43937-content-43938">Pulsar-admin API</div><div id="tab-group-43937-tab-43939" class="nav-link" data-group="group_43937" data-tab="tab-group-43937-content-43939">REST API</div><div id="tab-group-43937-tab-43940" class="nav-link" data-group="group_43937" data-tab="tab-group-43937-content-43940">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-43937-content-43939" class="tab-pane" data-group="group_43937" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-43937-content-43940" class="tab-pane" data-group="group_43937" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setOffloadPolicies(topic, offloadPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-offload-policies"></a><a href="#remove-offload-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 [...]
-<p>To remove the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>移除主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-43941-tab-43942" class="nav-link active" data-group="group_43941" data-tab="tab-group-43941-content-43942">Pulsar-admin API</div><div id="tab-group-43941-tab-43943" class="nav-link" data-group="group_43941" data-tab="tab-group-43941-content-43943">REST API</div><div id="tab-group-43941-tab-43944" class="nav-link" data-group="group_43941" data-tab="tab-group-43941-content-43944">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-43941-content-43943" class="tab-pane" data-group="group_43941" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-43941-content-43944" class="tab-pane" data-group="group_43941" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeOffloadPolicies(topic)<br /></code></pre>
@@ -683,9 +683,10 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 <p>默认情况下,Pulsar 主题由单个 broker 提供服务,这限制了主题的最大吞吐量。 <em>分区主题</em>可以跨越多个 broker,从而实现更高的吞吐量。</p>
 <p>你可以使用 Pulsar 客户端库发布到分区主题。 发布到分区主题时,必须指定路由模式。 如果在创建新的生产者时没有指定任何路由方式,则使用轮询路由模式。</p>
 <h3><a class="anchor" aria-hidden="true" id="routing-mode"></a><a href="#routing-mode" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. The routing mode determines which partition(internal topic) that each message should be published to.</p>
-<p>The following <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
- options are available.</p>
+<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. 路由模式决定了每条消息应该发往哪个分区(内部主题)。</p>
+<p>以下
+<a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
+ 选项是可用的。</p>
 <table>
 <thead>
 <tr><th style="text-align:left">发送模式</th><th style="text-align:left">说明</th></tr>
@@ -722,7 +723,7 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
     }
 }
 </code></pre>
-<p>With that implementation, you can send</p>
+<p>通过该实现,你可以发送:</p>
 <pre><code class="hljs css language-java">String pulsarBrokerRootUrl = <span class="hljs-string">"pulsar://localhost:6650"</span>;
 String topic = <span class="hljs-string">"persistent://my-tenant/my-cluster-my-namespace/my-topic"</span>;
 
@@ -734,7 +735,7 @@ Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = pulsarClient
 producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBytes());
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="使用-key-时如何选择分区"></a><a href="#使用-key-时如何选择分区" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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>If a message has a key, it supersedes the round robin routing policy. The following example illustrates how to choose the partition when using a key.</p>
+<p>If a message has a key, it supersedes the round robin routing policy. 以下示例说明当使用key时如何选择分区。</p>
 <pre><code class="hljs css language-java"><span class="hljs-comment">// 如果消息存在key,轮询路由策略将被替换</span>
         <span class="hljs-keyword">if</span> (msg.hasKey()) {
             <span class="hljs-keyword">return</span> signSafeMod(hash.makeHash(msg.getKey()), topicMetadata.numPartitions());
@@ -748,15 +749,15 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
 }
 </code></pre>
 <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>You can use <a href="/docs/zh-CN/2.7.0/admin-api-overview">Pulsar admin API</a> to create, check, and delete subscriptions.</p>
-<h3><a class="anchor" aria-hidden="true" id="create-subscription"></a><a href="#create-subscription" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
+<p>你可以使用 <a href="/docs/zh-CN/2.7.0/admin-api-overview">Pulsar admin Apl</a> 创建、检查和删除订阅。</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>You can create a subscription for a topic using one of the following methods.</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-43993-tab-43994" class="nav-link active" data-group="group_43993" data-tab="tab-group-43993-content-43994">pulsar-admin</div><div id="tab-group-43993-tab-43995" class="nav-link" data-group="group_43993" data-tab="tab-group-43993-content-43995">REST API</div><div id="tab-group-43993-tab-43996" class="nav-link" data-group="group_43993" data-tab="tab-group-43993-content-43996">Java</div></div><div class="tab-content"><div id="tab-gr [...]
 </span></div></div><div id="tab-group-43993-content-43995" class="tab-pane" data-group="group_43993" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/createSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>PUT</b> <i>/admin/v2/persistent/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-43993-content-43996" class="tab-pane" data-group="group_43993" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().createSubscription(topic, subscriptionName, MessageId.latest);<br /></code></pre>
 </span></div></div></div></div>
-### Get subscription
+### 获取订阅
 You can check all subscription names for a given topic using one of the following methods.
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-43997-tab-43998" class="nav-link active" data-group="group_43997" data-tab="tab-group-43997-content-43998">pulsar-admin</div><div id="tab-group-43997-tab-43999" class="nav-link" data-group="group_43997" data-tab="tab-group-43997-content-43999">REST API</div><div id="tab-group-43997-tab-44000" class="nav-link" data-group="group_43997" data-tab="tab-group-43997-content-44000">Java</div></div><div class="tab-content"><div id="tab-gr [...]
 </span></div></div><div id="tab-group-43997-content-43999" class="tab-pane" data-group="group_43997" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/getSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>GET</b> <i>/admin/v2/:schema/:tenant/:namespace/:topic/subscriptions</i></a>
@@ -769,7 +770,7 @@ When a subscription does not process messages any more, you can unsubscribe it u
 </span></div></div><div id="tab-group-44001-content-44003" class="tab-pane" data-group="group_44001" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/deleteSubscription?version=2.9.1&amp;apiVersion=v2"><b>DELETE</b> <i>/admin/v2/namespaces/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-44001-content-44004" class="tab-pane" data-group="group_44001" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().deleteSubscription(topic, subscriptionName);<br /></code></pre>
-</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.0/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.0/admin-api-functions"><span>Functions</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="#列出-to [...]
+</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.0/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.0/admin-api-functions"><span>Functions</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="#列出-to [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.7.0/cookbooks-retention-expiry.html b/content/docs/zh-CN/2.7.0/cookbooks-retention-expiry.html
index 47d2e2e..97dcd13 100644
--- a/content/docs/zh-CN/2.7.0/cookbooks-retention-expiry.html
+++ b/content/docs/zh-CN/2.7.0/cookbooks-retention-expiry.html
@@ -156,7 +156,7 @@ To disable the retention policy, you need to set both the size and time limit to
 <h4><a class="anchor" aria-hidden="true" id="java"></a><a href="#java" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -282,7 +282,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <li><p><strong>Entry log rollover period</strong>: multiple ledgers in BookKeeper are interleaved into an <a href="https://bookkeeper.apache.org/docs/4.11.1/getting-started/concepts/#entry-logs">entry log</a>. 对于已删除的 ledger ,必须将条目日志 entry log 全部滚动。 Entry log 滚动周期是可配置的,但完全基于条目日志的大小。 详情参阅 <a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-settings">这里</a>。 Entry log 一经滚动,就可以进行垃圾回收 entry log。</p></li>
 <li><p><strong>Garbage collection interval</strong>: because entry logs have interleaved ledgers, to free up space, the entry logs need to be rewritten. 垃圾收集间隔是 BookKeeper 执行垃圾收集的频率 这与 entry log 的小压缩和大压缩有关。 详情参阅<a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-compaction-settings">这里</a>。</p></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.0/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.0/cookbooks-encryption"><span>加密</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="#设置保留策略 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.0/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.0/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.7.0/cookbooks-retention-expiry/index.html b/content/docs/zh-CN/2.7.0/cookbooks-retention-expiry/index.html
index 47d2e2e..97dcd13 100644
--- a/content/docs/zh-CN/2.7.0/cookbooks-retention-expiry/index.html
+++ b/content/docs/zh-CN/2.7.0/cookbooks-retention-expiry/index.html
@@ -156,7 +156,7 @@ To disable the retention policy, you need to set both the size and time limit to
 <h4><a class="anchor" aria-hidden="true" id="java"></a><a href="#java" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -282,7 +282,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <li><p><strong>Entry log rollover period</strong>: multiple ledgers in BookKeeper are interleaved into an <a href="https://bookkeeper.apache.org/docs/4.11.1/getting-started/concepts/#entry-logs">entry log</a>. 对于已删除的 ledger ,必须将条目日志 entry log 全部滚动。 Entry log 滚动周期是可配置的,但完全基于条目日志的大小。 详情参阅 <a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-settings">这里</a>。 Entry log 一经滚动,就可以进行垃圾回收 entry log。</p></li>
 <li><p><strong>Garbage collection interval</strong>: because entry logs have interleaved ledgers, to free up space, the entry logs need to be rewritten. 垃圾收集间隔是 BookKeeper 执行垃圾收集的频率 这与 entry log 的小压缩和大压缩有关。 详情参阅<a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-compaction-settings">这里</a>。</p></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.0/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.0/cookbooks-encryption"><span>加密</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="#设置保留策略 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.0/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.0/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.7.1/admin-api-topics.html b/content/docs/zh-CN/2.7.1/admin-api-topics.html
index a2534f6..ac31186 100644
--- a/content/docs/zh-CN/2.7.1/admin-api-topics.html
+++ b/content/docs/zh-CN/2.7.1/admin-api-topics.html
@@ -391,7 +391,7 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-43304-content-43307" class="tab-pane" data-group="group_43304" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="设置去重快照间隔"></a><a href="#设置去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To set the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>设置主题级去重快照间隔,可以使用以下方法之一。</p>
 <blockquote>
 <p><strong>前提条件</strong> <code>brokerDeduplicationEnabled</code>必须设置为<code>true</code>。</p>
 </blockquote>
@@ -401,45 +401,45 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-43308-content-43311" class="tab-pane" data-group="group_43308" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setDeduplicationSnapshotInterval(topic, <span class="hljs-number">1000</span>)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="移除去重快照间隔"></a><a href="#移除去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To remove the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>移除主题级去重快照间隔,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-43312-tab-43313" class="nav-link active" data-group="group_43312" data-tab="tab-group-43312-content-43313">Pulsar-admin API</div><div id="tab-group-43312-tab-43314" class="nav-link" data-group="group_43312" data-tab="tab-group-43312-content-43314">REST API</div><div id="tab-group-43312-tab-43315" class="nav-link" data-group="group_43312" data-tab="tab-group-43312-content-43315">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-43312-content-43314" class="tab-pane" data-group="group_43312" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/deduplicationSnapshotInterval?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-43312-content-43315" class="tab-pane" data-group="group_43312" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-inactive-topic-policies"></a><a href="#configure-inactive-topic-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.5S1 [...]
-<h4><a class="anchor" aria-hidden="true" id="get-inactive-topic-policies"></a><a href="#get-inactive-topic-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 1 [...]
-<p>To get the topic-level inactive topic policies, use one of the following methods.</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.6 [...]
+<h4><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.6 [...]
+<p>获取主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-43316-tab-43317" class="nav-link active" data-group="group_43316" data-tab="tab-group-43316-content-43317">Pulsar-admin API</div><div id="tab-group-43316-tab-43318" class="nav-link" data-group="group_43316" data-tab="tab-group-43316-content-43318">REST API</div><div id="tab-group-43316-tab-43319" class="nav-link" data-group="group_43316" data-tab="tab-group-43316-content-43319">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-43316-content-43318" class="tab-pane" data-group="group_43316" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-43316-content-43319" class="tab-pane" data-group="group_43316" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-inactive-topic-policies"></a><a href="#set-inactive-topic-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 1 [...]
-<p>To set the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>设置主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-43320-tab-43321" class="nav-link active" data-group="group_43320" data-tab="tab-group-43320-content-43321">Pulsar-admin API</div><div id="tab-group-43320-tab-43322" class="nav-link" data-group="group_43320" data-tab="tab-group-43320-content-43322">REST API</div><div id="tab-group-43320-tab-43323" class="nav-link" data-group="group_43320" data-tab="tab-group-43320-content-43323">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-43320-content-43322" class="tab-pane" data-group="group_43320" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-43320-content-43323" class="tab-pane" data-group="group_43320" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setInactiveTopicPolicies(topic, inactiveTopicPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-inactive-topic-policies"></a><a href="#remove-inactive-topic-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 1 [...]
-<p>To remove the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>移除主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-43324-tab-43325" class="nav-link active" data-group="group_43324" data-tab="tab-group-43324-content-43325">Pulsar-admin API</div><div id="tab-group-43324-tab-43326" class="nav-link" data-group="group_43324" data-tab="tab-group-43324-content-43326">REST API</div><div id="tab-group-43324-tab-43327" class="nav-link" data-group="group_43324" data-tab="tab-group-43324-content-43327">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-43324-content-43326" class="tab-pane" data-group="group_43324" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-43324-content-43327" class="tab-pane" data-group="group_43324" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-offload-policies"></a><a href="#configure-offload-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 12H [...]
-<h4><a class="anchor" aria-hidden="true" id="get-offload-policies"></a><a href="#get-offload-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 [...]
-<p>To get the topic-level offload policies, use one of the following methods.</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. [...]
+<h4><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. [...]
+<p>获取主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-43328-tab-43329" class="nav-link active" data-group="group_43328" data-tab="tab-group-43328-content-43329">Pulsar-admin API</div><div id="tab-group-43328-tab-43330" class="nav-link" data-group="group_43328" data-tab="tab-group-43328-content-43330">REST API</div><div id="tab-group-43328-tab-43331" class="nav-link" data-group="group_43328" data-tab="tab-group-43328-content-43331">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-43328-content-43330" class="tab-pane" data-group="group_43328" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-43328-content-43331" class="tab-pane" data-group="group_43328" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getOffloadPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-offload-policies"></a><a href="#set-offload-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 [...]
-<p>To set the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>设置主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-43332-tab-43333" class="nav-link active" data-group="group_43332" data-tab="tab-group-43332-content-43333">Pulsar-admin API</div><div id="tab-group-43332-tab-43334" class="nav-link" data-group="group_43332" data-tab="tab-group-43332-content-43334">REST API</div><div id="tab-group-43332-tab-43335" class="nav-link" data-group="group_43332" data-tab="tab-group-43332-content-43335">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-43332-content-43334" class="tab-pane" data-group="group_43332" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-43332-content-43335" class="tab-pane" data-group="group_43332" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setOffloadPolicies(topic, offloadPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-offload-policies"></a><a href="#remove-offload-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 [...]
-<p>To remove the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>移除主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-43336-tab-43337" class="nav-link active" data-group="group_43336" data-tab="tab-group-43336-content-43337">Pulsar-admin API</div><div id="tab-group-43336-tab-43338" class="nav-link" data-group="group_43336" data-tab="tab-group-43336-content-43338">REST API</div><div id="tab-group-43336-tab-43339" class="nav-link" data-group="group_43336" data-tab="tab-group-43336-content-43339">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-43336-content-43338" class="tab-pane" data-group="group_43336" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-43336-content-43339" class="tab-pane" data-group="group_43336" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeOffloadPolicies(topic)<br /></code></pre>
@@ -683,9 +683,10 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 <p>默认情况下,Pulsar 主题由单个 broker 提供服务,这限制了主题的最大吞吐量。 <em>分区主题</em>可以跨越多个 broker,从而实现更高的吞吐量。</p>
 <p>你可以使用 Pulsar 客户端库发布到分区主题。 发布到分区主题时,必须指定路由模式。 如果在创建新的生产者时没有指定任何路由方式,则使用轮询路由模式。</p>
 <h3><a class="anchor" aria-hidden="true" id="routing-mode"></a><a href="#routing-mode" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. The routing mode determines which partition(internal topic) that each message should be published to.</p>
-<p>The following <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
- options are available.</p>
+<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. 路由模式决定了每条消息应该发往哪个分区(内部主题)。</p>
+<p>以下
+<a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
+ 选项是可用的。</p>
 <table>
 <thead>
 <tr><th style="text-align:left">发送模式</th><th style="text-align:left">说明</th></tr>
@@ -722,7 +723,7 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
     }
 }
 </code></pre>
-<p>With that implementation, you can send</p>
+<p>通过该实现,你可以发送:</p>
 <pre><code class="hljs css language-java">String pulsarBrokerRootUrl = <span class="hljs-string">"pulsar://localhost:6650"</span>;
 String topic = <span class="hljs-string">"persistent://my-tenant/my-cluster-my-namespace/my-topic"</span>;
 
@@ -734,7 +735,7 @@ Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = pulsarClient
 producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBytes());
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="使用-key-时如何选择分区"></a><a href="#使用-key-时如何选择分区" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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>If a message has a key, it supersedes the round robin routing policy. The following example illustrates how to choose the partition when using a key.</p>
+<p>If a message has a key, it supersedes the round robin routing policy. 以下示例说明当使用key时如何选择分区。</p>
 <pre><code class="hljs css language-java"><span class="hljs-comment">// 如果消息存在key,轮询路由策略将被替换</span>
         <span class="hljs-keyword">if</span> (msg.hasKey()) {
             <span class="hljs-keyword">return</span> signSafeMod(hash.makeHash(msg.getKey()), topicMetadata.numPartitions());
@@ -748,15 +749,15 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
 }
 </code></pre>
 <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>You can use <a href="/docs/zh-CN/2.7.1/admin-api-overview">Pulsar admin API</a> to create, check, and delete subscriptions.</p>
-<h3><a class="anchor" aria-hidden="true" id="create-subscription"></a><a href="#create-subscription" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
+<p>你可以使用 <a href="/docs/zh-CN/2.7.1/admin-api-overview">Pulsar admin Apl</a> 创建、检查和删除订阅。</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>You can create a subscription for a topic using one of the following methods.</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-43388-tab-43389" class="nav-link active" data-group="group_43388" data-tab="tab-group-43388-content-43389">pulsar-admin</div><div id="tab-group-43388-tab-43390" class="nav-link" data-group="group_43388" data-tab="tab-group-43388-content-43390">REST API</div><div id="tab-group-43388-tab-43391" class="nav-link" data-group="group_43388" data-tab="tab-group-43388-content-43391">Java</div></div><div class="tab-content"><div id="tab-gr [...]
 </span></div></div><div id="tab-group-43388-content-43390" class="tab-pane" data-group="group_43388" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/createSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>PUT</b> <i>/admin/v2/persistent/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-43388-content-43391" class="tab-pane" data-group="group_43388" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().createSubscription(topic, subscriptionName, MessageId.latest);<br /></code></pre>
 </span></div></div></div></div>
-### Get subscription
+### 获取订阅
 You can check all subscription names for a given topic using one of the following methods.
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-43392-tab-43393" class="nav-link active" data-group="group_43392" data-tab="tab-group-43392-content-43393">pulsar-admin</div><div id="tab-group-43392-tab-43394" class="nav-link" data-group="group_43392" data-tab="tab-group-43392-content-43394">REST API</div><div id="tab-group-43392-tab-43395" class="nav-link" data-group="group_43392" data-tab="tab-group-43392-content-43395">Java</div></div><div class="tab-content"><div id="tab-gr [...]
 </span></div></div><div id="tab-group-43392-content-43394" class="tab-pane" data-group="group_43392" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/getSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>GET</b> <i>/admin/v2/:schema/:tenant/:namespace/:topic/subscriptions</i></a>
@@ -769,7 +770,7 @@ When a subscription does not process messages any more, you can unsubscribe it u
 </span></div></div><div id="tab-group-43396-content-43398" class="tab-pane" data-group="group_43396" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/deleteSubscription?version=2.9.1&amp;apiVersion=v2"><b>DELETE</b> <i>/admin/v2/namespaces/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-43396-content-43399" class="tab-pane" data-group="group_43396" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().deleteSubscription(topic, subscriptionName);<br /></code></pre>
-</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.1/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.1/admin-api-functions"><span>Functions</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="#列出-to [...]
+</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.1/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.1/admin-api-functions"><span>Functions</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="#列出-to [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.7.1/admin-api-topics/index.html b/content/docs/zh-CN/2.7.1/admin-api-topics/index.html
index a2534f6..ac31186 100644
--- a/content/docs/zh-CN/2.7.1/admin-api-topics/index.html
+++ b/content/docs/zh-CN/2.7.1/admin-api-topics/index.html
@@ -391,7 +391,7 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-43304-content-43307" class="tab-pane" data-group="group_43304" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="设置去重快照间隔"></a><a href="#设置去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To set the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>设置主题级去重快照间隔,可以使用以下方法之一。</p>
 <blockquote>
 <p><strong>前提条件</strong> <code>brokerDeduplicationEnabled</code>必须设置为<code>true</code>。</p>
 </blockquote>
@@ -401,45 +401,45 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-43308-content-43311" class="tab-pane" data-group="group_43308" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setDeduplicationSnapshotInterval(topic, <span class="hljs-number">1000</span>)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="移除去重快照间隔"></a><a href="#移除去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To remove the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>移除主题级去重快照间隔,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-43312-tab-43313" class="nav-link active" data-group="group_43312" data-tab="tab-group-43312-content-43313">Pulsar-admin API</div><div id="tab-group-43312-tab-43314" class="nav-link" data-group="group_43312" data-tab="tab-group-43312-content-43314">REST API</div><div id="tab-group-43312-tab-43315" class="nav-link" data-group="group_43312" data-tab="tab-group-43312-content-43315">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-43312-content-43314" class="tab-pane" data-group="group_43312" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/deduplicationSnapshotInterval?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-43312-content-43315" class="tab-pane" data-group="group_43312" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-inactive-topic-policies"></a><a href="#configure-inactive-topic-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.5S1 [...]
-<h4><a class="anchor" aria-hidden="true" id="get-inactive-topic-policies"></a><a href="#get-inactive-topic-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 1 [...]
-<p>To get the topic-level inactive topic policies, use one of the following methods.</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.6 [...]
+<h4><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.6 [...]
+<p>获取主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-43316-tab-43317" class="nav-link active" data-group="group_43316" data-tab="tab-group-43316-content-43317">Pulsar-admin API</div><div id="tab-group-43316-tab-43318" class="nav-link" data-group="group_43316" data-tab="tab-group-43316-content-43318">REST API</div><div id="tab-group-43316-tab-43319" class="nav-link" data-group="group_43316" data-tab="tab-group-43316-content-43319">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-43316-content-43318" class="tab-pane" data-group="group_43316" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-43316-content-43319" class="tab-pane" data-group="group_43316" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-inactive-topic-policies"></a><a href="#set-inactive-topic-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 1 [...]
-<p>To set the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>设置主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-43320-tab-43321" class="nav-link active" data-group="group_43320" data-tab="tab-group-43320-content-43321">Pulsar-admin API</div><div id="tab-group-43320-tab-43322" class="nav-link" data-group="group_43320" data-tab="tab-group-43320-content-43322">REST API</div><div id="tab-group-43320-tab-43323" class="nav-link" data-group="group_43320" data-tab="tab-group-43320-content-43323">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-43320-content-43322" class="tab-pane" data-group="group_43320" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-43320-content-43323" class="tab-pane" data-group="group_43320" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setInactiveTopicPolicies(topic, inactiveTopicPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-inactive-topic-policies"></a><a href="#remove-inactive-topic-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 1 [...]
-<p>To remove the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>移除主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-43324-tab-43325" class="nav-link active" data-group="group_43324" data-tab="tab-group-43324-content-43325">Pulsar-admin API</div><div id="tab-group-43324-tab-43326" class="nav-link" data-group="group_43324" data-tab="tab-group-43324-content-43326">REST API</div><div id="tab-group-43324-tab-43327" class="nav-link" data-group="group_43324" data-tab="tab-group-43324-content-43327">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-43324-content-43326" class="tab-pane" data-group="group_43324" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-43324-content-43327" class="tab-pane" data-group="group_43324" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-offload-policies"></a><a href="#configure-offload-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 12H [...]
-<h4><a class="anchor" aria-hidden="true" id="get-offload-policies"></a><a href="#get-offload-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 [...]
-<p>To get the topic-level offload policies, use one of the following methods.</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. [...]
+<h4><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. [...]
+<p>获取主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-43328-tab-43329" class="nav-link active" data-group="group_43328" data-tab="tab-group-43328-content-43329">Pulsar-admin API</div><div id="tab-group-43328-tab-43330" class="nav-link" data-group="group_43328" data-tab="tab-group-43328-content-43330">REST API</div><div id="tab-group-43328-tab-43331" class="nav-link" data-group="group_43328" data-tab="tab-group-43328-content-43331">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-43328-content-43330" class="tab-pane" data-group="group_43328" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-43328-content-43331" class="tab-pane" data-group="group_43328" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getOffloadPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-offload-policies"></a><a href="#set-offload-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 [...]
-<p>To set the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>设置主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-43332-tab-43333" class="nav-link active" data-group="group_43332" data-tab="tab-group-43332-content-43333">Pulsar-admin API</div><div id="tab-group-43332-tab-43334" class="nav-link" data-group="group_43332" data-tab="tab-group-43332-content-43334">REST API</div><div id="tab-group-43332-tab-43335" class="nav-link" data-group="group_43332" data-tab="tab-group-43332-content-43335">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-43332-content-43334" class="tab-pane" data-group="group_43332" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-43332-content-43335" class="tab-pane" data-group="group_43332" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setOffloadPolicies(topic, offloadPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-offload-policies"></a><a href="#remove-offload-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 [...]
-<p>To remove the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>移除主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-43336-tab-43337" class="nav-link active" data-group="group_43336" data-tab="tab-group-43336-content-43337">Pulsar-admin API</div><div id="tab-group-43336-tab-43338" class="nav-link" data-group="group_43336" data-tab="tab-group-43336-content-43338">REST API</div><div id="tab-group-43336-tab-43339" class="nav-link" data-group="group_43336" data-tab="tab-group-43336-content-43339">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-43336-content-43338" class="tab-pane" data-group="group_43336" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-43336-content-43339" class="tab-pane" data-group="group_43336" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeOffloadPolicies(topic)<br /></code></pre>
@@ -683,9 +683,10 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 <p>默认情况下,Pulsar 主题由单个 broker 提供服务,这限制了主题的最大吞吐量。 <em>分区主题</em>可以跨越多个 broker,从而实现更高的吞吐量。</p>
 <p>你可以使用 Pulsar 客户端库发布到分区主题。 发布到分区主题时,必须指定路由模式。 如果在创建新的生产者时没有指定任何路由方式,则使用轮询路由模式。</p>
 <h3><a class="anchor" aria-hidden="true" id="routing-mode"></a><a href="#routing-mode" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. The routing mode determines which partition(internal topic) that each message should be published to.</p>
-<p>The following <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
- options are available.</p>
+<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. 路由模式决定了每条消息应该发往哪个分区(内部主题)。</p>
+<p>以下
+<a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
+ 选项是可用的。</p>
 <table>
 <thead>
 <tr><th style="text-align:left">发送模式</th><th style="text-align:left">说明</th></tr>
@@ -722,7 +723,7 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
     }
 }
 </code></pre>
-<p>With that implementation, you can send</p>
+<p>通过该实现,你可以发送:</p>
 <pre><code class="hljs css language-java">String pulsarBrokerRootUrl = <span class="hljs-string">"pulsar://localhost:6650"</span>;
 String topic = <span class="hljs-string">"persistent://my-tenant/my-cluster-my-namespace/my-topic"</span>;
 
@@ -734,7 +735,7 @@ Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = pulsarClient
 producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBytes());
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="使用-key-时如何选择分区"></a><a href="#使用-key-时如何选择分区" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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>If a message has a key, it supersedes the round robin routing policy. The following example illustrates how to choose the partition when using a key.</p>
+<p>If a message has a key, it supersedes the round robin routing policy. 以下示例说明当使用key时如何选择分区。</p>
 <pre><code class="hljs css language-java"><span class="hljs-comment">// 如果消息存在key,轮询路由策略将被替换</span>
         <span class="hljs-keyword">if</span> (msg.hasKey()) {
             <span class="hljs-keyword">return</span> signSafeMod(hash.makeHash(msg.getKey()), topicMetadata.numPartitions());
@@ -748,15 +749,15 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
 }
 </code></pre>
 <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>You can use <a href="/docs/zh-CN/2.7.1/admin-api-overview">Pulsar admin API</a> to create, check, and delete subscriptions.</p>
-<h3><a class="anchor" aria-hidden="true" id="create-subscription"></a><a href="#create-subscription" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
+<p>你可以使用 <a href="/docs/zh-CN/2.7.1/admin-api-overview">Pulsar admin Apl</a> 创建、检查和删除订阅。</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>You can create a subscription for a topic using one of the following methods.</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-43388-tab-43389" class="nav-link active" data-group="group_43388" data-tab="tab-group-43388-content-43389">pulsar-admin</div><div id="tab-group-43388-tab-43390" class="nav-link" data-group="group_43388" data-tab="tab-group-43388-content-43390">REST API</div><div id="tab-group-43388-tab-43391" class="nav-link" data-group="group_43388" data-tab="tab-group-43388-content-43391">Java</div></div><div class="tab-content"><div id="tab-gr [...]
 </span></div></div><div id="tab-group-43388-content-43390" class="tab-pane" data-group="group_43388" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/createSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>PUT</b> <i>/admin/v2/persistent/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-43388-content-43391" class="tab-pane" data-group="group_43388" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().createSubscription(topic, subscriptionName, MessageId.latest);<br /></code></pre>
 </span></div></div></div></div>
-### Get subscription
+### 获取订阅
 You can check all subscription names for a given topic using one of the following methods.
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-43392-tab-43393" class="nav-link active" data-group="group_43392" data-tab="tab-group-43392-content-43393">pulsar-admin</div><div id="tab-group-43392-tab-43394" class="nav-link" data-group="group_43392" data-tab="tab-group-43392-content-43394">REST API</div><div id="tab-group-43392-tab-43395" class="nav-link" data-group="group_43392" data-tab="tab-group-43392-content-43395">Java</div></div><div class="tab-content"><div id="tab-gr [...]
 </span></div></div><div id="tab-group-43392-content-43394" class="tab-pane" data-group="group_43392" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/getSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>GET</b> <i>/admin/v2/:schema/:tenant/:namespace/:topic/subscriptions</i></a>
@@ -769,7 +770,7 @@ When a subscription does not process messages any more, you can unsubscribe it u
 </span></div></div><div id="tab-group-43396-content-43398" class="tab-pane" data-group="group_43396" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/deleteSubscription?version=2.9.1&amp;apiVersion=v2"><b>DELETE</b> <i>/admin/v2/namespaces/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-43396-content-43399" class="tab-pane" data-group="group_43396" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().deleteSubscription(topic, subscriptionName);<br /></code></pre>
-</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.1/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.1/admin-api-functions"><span>Functions</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="#列出-to [...]
+</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.1/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.1/admin-api-functions"><span>Functions</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="#列出-to [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.7.1/cookbooks-retention-expiry.html b/content/docs/zh-CN/2.7.1/cookbooks-retention-expiry.html
index b916d68..6779735 100644
--- a/content/docs/zh-CN/2.7.1/cookbooks-retention-expiry.html
+++ b/content/docs/zh-CN/2.7.1/cookbooks-retention-expiry.html
@@ -156,7 +156,7 @@ To disable the retention policy, you need to set both the size and time limit to
 <h4><a class="anchor" aria-hidden="true" id="java"></a><a href="#java" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -282,7 +282,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <li><p><strong>Entry log rollover period</strong>: multiple ledgers in BookKeeper are interleaved into an <a href="https://bookkeeper.apache.org/docs/4.11.1/getting-started/concepts/#entry-logs">entry log</a>. 对于已删除的 ledger ,必须将条目日志 entry log 全部滚动。 Entry log 滚动周期是可配置的,但完全基于条目日志的大小。 详情参阅 <a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-settings">这里</a>。 Entry log 一经滚动,就可以进行垃圾回收 entry log。</p></li>
 <li><p><strong>Garbage collection interval</strong>: because entry logs have interleaved ledgers, to free up space, the entry logs need to be rewritten. 垃圾收集间隔是 BookKeeper 执行垃圾收集的频率 这与 entry log 的小压缩和大压缩有关。 详情参阅<a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-compaction-settings">这里</a>。</p></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.1/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.1/cookbooks-encryption"><span>加密</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="#设置保留策略 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.1/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.1/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.7.1/cookbooks-retention-expiry/index.html b/content/docs/zh-CN/2.7.1/cookbooks-retention-expiry/index.html
index b916d68..6779735 100644
--- a/content/docs/zh-CN/2.7.1/cookbooks-retention-expiry/index.html
+++ b/content/docs/zh-CN/2.7.1/cookbooks-retention-expiry/index.html
@@ -156,7 +156,7 @@ To disable the retention policy, you need to set both the size and time limit to
 <h4><a class="anchor" aria-hidden="true" id="java"></a><a href="#java" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -282,7 +282,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <li><p><strong>Entry log rollover period</strong>: multiple ledgers in BookKeeper are interleaved into an <a href="https://bookkeeper.apache.org/docs/4.11.1/getting-started/concepts/#entry-logs">entry log</a>. 对于已删除的 ledger ,必须将条目日志 entry log 全部滚动。 Entry log 滚动周期是可配置的,但完全基于条目日志的大小。 详情参阅 <a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-settings">这里</a>。 Entry log 一经滚动,就可以进行垃圾回收 entry log。</p></li>
 <li><p><strong>Garbage collection interval</strong>: because entry logs have interleaved ledgers, to free up space, the entry logs need to be rewritten. 垃圾收集间隔是 BookKeeper 执行垃圾收集的频率 这与 entry log 的小压缩和大压缩有关。 详情参阅<a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-compaction-settings">这里</a>。</p></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.1/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.1/cookbooks-encryption"><span>加密</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="#设置保留策略 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.1/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.1/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.7.2/admin-api-topics.html b/content/docs/zh-CN/2.7.2/admin-api-topics.html
index d1e4ccc..db9b067 100644
--- a/content/docs/zh-CN/2.7.2/admin-api-topics.html
+++ b/content/docs/zh-CN/2.7.2/admin-api-topics.html
@@ -391,7 +391,7 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-42697-content-42700" class="tab-pane" data-group="group_42697" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="设置去重快照间隔"></a><a href="#设置去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To set the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>设置主题级去重快照间隔,可以使用以下方法之一。</p>
 <blockquote>
 <p><strong>前提条件</strong> <code>brokerDeduplicationEnabled</code>必须设置为<code>true</code>。</p>
 </blockquote>
@@ -401,45 +401,45 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-42701-content-42704" class="tab-pane" data-group="group_42701" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setDeduplicationSnapshotInterval(topic, <span class="hljs-number">1000</span>)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="移除去重快照间隔"></a><a href="#移除去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To remove the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>移除主题级去重快照间隔,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-42705-tab-42706" class="nav-link active" data-group="group_42705" data-tab="tab-group-42705-content-42706">Pulsar-admin API</div><div id="tab-group-42705-tab-42707" class="nav-link" data-group="group_42705" data-tab="tab-group-42705-content-42707">REST API</div><div id="tab-group-42705-tab-42708" class="nav-link" data-group="group_42705" data-tab="tab-group-42705-content-42708">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-42705-content-42707" class="tab-pane" data-group="group_42705" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/deduplicationSnapshotInterval?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-42705-content-42708" class="tab-pane" data-group="group_42705" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-inactive-topic-policies"></a><a href="#configure-inactive-topic-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.5S1 [...]
-<h4><a class="anchor" aria-hidden="true" id="get-inactive-topic-policies"></a><a href="#get-inactive-topic-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 1 [...]
-<p>To get the topic-level inactive topic policies, use one of the following methods.</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.6 [...]
+<h4><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.6 [...]
+<p>获取主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-42709-tab-42710" class="nav-link active" data-group="group_42709" data-tab="tab-group-42709-content-42710">Pulsar-admin API</div><div id="tab-group-42709-tab-42711" class="nav-link" data-group="group_42709" data-tab="tab-group-42709-content-42711">REST API</div><div id="tab-group-42709-tab-42712" class="nav-link" data-group="group_42709" data-tab="tab-group-42709-content-42712">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-42709-content-42711" class="tab-pane" data-group="group_42709" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-42709-content-42712" class="tab-pane" data-group="group_42709" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-inactive-topic-policies"></a><a href="#set-inactive-topic-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 1 [...]
-<p>To set the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>设置主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-42713-tab-42714" class="nav-link active" data-group="group_42713" data-tab="tab-group-42713-content-42714">Pulsar-admin API</div><div id="tab-group-42713-tab-42715" class="nav-link" data-group="group_42713" data-tab="tab-group-42713-content-42715">REST API</div><div id="tab-group-42713-tab-42716" class="nav-link" data-group="group_42713" data-tab="tab-group-42713-content-42716">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-42713-content-42715" class="tab-pane" data-group="group_42713" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-42713-content-42716" class="tab-pane" data-group="group_42713" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setInactiveTopicPolicies(topic, inactiveTopicPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-inactive-topic-policies"></a><a href="#remove-inactive-topic-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 1 [...]
-<p>To remove the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>移除主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-42717-tab-42718" class="nav-link active" data-group="group_42717" data-tab="tab-group-42717-content-42718">Pulsar-admin API</div><div id="tab-group-42717-tab-42719" class="nav-link" data-group="group_42717" data-tab="tab-group-42717-content-42719">REST API</div><div id="tab-group-42717-tab-42720" class="nav-link" data-group="group_42717" data-tab="tab-group-42717-content-42720">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-42717-content-42719" class="tab-pane" data-group="group_42717" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-42717-content-42720" class="tab-pane" data-group="group_42717" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-offload-policies"></a><a href="#configure-offload-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 12H [...]
-<h4><a class="anchor" aria-hidden="true" id="get-offload-policies"></a><a href="#get-offload-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 [...]
-<p>To get the topic-level offload policies, use one of the following methods.</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. [...]
+<h4><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. [...]
+<p>获取主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-42721-tab-42722" class="nav-link active" data-group="group_42721" data-tab="tab-group-42721-content-42722">Pulsar-admin API</div><div id="tab-group-42721-tab-42723" class="nav-link" data-group="group_42721" data-tab="tab-group-42721-content-42723">REST API</div><div id="tab-group-42721-tab-42724" class="nav-link" data-group="group_42721" data-tab="tab-group-42721-content-42724">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-42721-content-42723" class="tab-pane" data-group="group_42721" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-42721-content-42724" class="tab-pane" data-group="group_42721" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getOffloadPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-offload-policies"></a><a href="#set-offload-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 [...]
-<p>To set the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>设置主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-42725-tab-42726" class="nav-link active" data-group="group_42725" data-tab="tab-group-42725-content-42726">Pulsar-admin API</div><div id="tab-group-42725-tab-42727" class="nav-link" data-group="group_42725" data-tab="tab-group-42725-content-42727">REST API</div><div id="tab-group-42725-tab-42728" class="nav-link" data-group="group_42725" data-tab="tab-group-42725-content-42728">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-42725-content-42727" class="tab-pane" data-group="group_42725" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-42725-content-42728" class="tab-pane" data-group="group_42725" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setOffloadPolicies(topic, offloadPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-offload-policies"></a><a href="#remove-offload-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 [...]
-<p>To remove the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>移除主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-42729-tab-42730" class="nav-link active" data-group="group_42729" data-tab="tab-group-42729-content-42730">Pulsar-admin API</div><div id="tab-group-42729-tab-42731" class="nav-link" data-group="group_42729" data-tab="tab-group-42729-content-42731">REST API</div><div id="tab-group-42729-tab-42732" class="nav-link" data-group="group_42729" data-tab="tab-group-42729-content-42732">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-42729-content-42731" class="tab-pane" data-group="group_42729" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-42729-content-42732" class="tab-pane" data-group="group_42729" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeOffloadPolicies(topic)<br /></code></pre>
@@ -683,9 +683,10 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 <p>默认情况下,Pulsar 主题由单个 broker 提供服务,这限制了主题的最大吞吐量。 <em>分区主题</em>可以跨越多个 broker,从而实现更高的吞吐量。</p>
 <p>你可以使用 Pulsar 客户端库发布到分区主题。 发布到分区主题时,必须指定路由模式。 如果在创建新的生产者时没有指定任何路由方式,则使用轮询路由模式。</p>
 <h3><a class="anchor" aria-hidden="true" id="routing-mode"></a><a href="#routing-mode" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. The routing mode determines which partition(internal topic) that each message should be published to.</p>
-<p>The following <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
- options are available.</p>
+<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. 路由模式决定了每条消息应该发往哪个分区(内部主题)。</p>
+<p>以下
+<a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
+ 选项是可用的。</p>
 <table>
 <thead>
 <tr><th style="text-align:left">发送模式</th><th style="text-align:left">说明</th></tr>
@@ -722,7 +723,7 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
     }
 }
 </code></pre>
-<p>With that implementation, you can send</p>
+<p>通过该实现,你可以发送:</p>
 <pre><code class="hljs css language-java">String pulsarBrokerRootUrl = <span class="hljs-string">"pulsar://localhost:6650"</span>;
 String topic = <span class="hljs-string">"persistent://my-tenant/my-cluster-my-namespace/my-topic"</span>;
 
@@ -734,7 +735,7 @@ Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = pulsarClient
 producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBytes());
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="使用-key-时如何选择分区"></a><a href="#使用-key-时如何选择分区" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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>If a message has a key, it supersedes the round robin routing policy. The following example illustrates how to choose the partition when using a key.</p>
+<p>If a message has a key, it supersedes the round robin routing policy. 以下示例说明当使用key时如何选择分区。</p>
 <pre><code class="hljs css language-java"><span class="hljs-comment">// 如果消息存在key,轮询路由策略将被替换</span>
         <span class="hljs-keyword">if</span> (msg.hasKey()) {
             <span class="hljs-keyword">return</span> signSafeMod(hash.makeHash(msg.getKey()), topicMetadata.numPartitions());
@@ -748,15 +749,15 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
 }
 </code></pre>
 <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>You can use <a href="/docs/zh-CN/2.7.2/admin-api-overview">Pulsar admin API</a> to create, check, and delete subscriptions.</p>
-<h3><a class="anchor" aria-hidden="true" id="create-subscription"></a><a href="#create-subscription" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
+<p>你可以使用 <a href="/docs/zh-CN/2.7.2/admin-api-overview">Pulsar admin Apl</a> 创建、检查和删除订阅。</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>You can create a subscription for a topic using one of the following methods.</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-42781-tab-42782" class="nav-link active" data-group="group_42781" data-tab="tab-group-42781-content-42782">pulsar-admin</div><div id="tab-group-42781-tab-42783" class="nav-link" data-group="group_42781" data-tab="tab-group-42781-content-42783">REST API</div><div id="tab-group-42781-tab-42784" class="nav-link" data-group="group_42781" data-tab="tab-group-42781-content-42784">Java</div></div><div class="tab-content"><div id="tab-gr [...]
 </span></div></div><div id="tab-group-42781-content-42783" class="tab-pane" data-group="group_42781" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/createSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>PUT</b> <i>/admin/v2/persistent/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-42781-content-42784" class="tab-pane" data-group="group_42781" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().createSubscription(topic, subscriptionName, MessageId.latest);<br /></code></pre>
 </span></div></div></div></div>
-### Get subscription
+### 获取订阅
 You can check all subscription names for a given topic using one of the following methods.
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-42785-tab-42786" class="nav-link active" data-group="group_42785" data-tab="tab-group-42785-content-42786">pulsar-admin</div><div id="tab-group-42785-tab-42787" class="nav-link" data-group="group_42785" data-tab="tab-group-42785-content-42787">REST API</div><div id="tab-group-42785-tab-42788" class="nav-link" data-group="group_42785" data-tab="tab-group-42785-content-42788">Java</div></div><div class="tab-content"><div id="tab-gr [...]
 </span></div></div><div id="tab-group-42785-content-42787" class="tab-pane" data-group="group_42785" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/getSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>GET</b> <i>/admin/v2/:schema/:tenant/:namespace/:topic/subscriptions</i></a>
@@ -769,7 +770,7 @@ When a subscription does not process messages any more, you can unsubscribe it u
 </span></div></div><div id="tab-group-42789-content-42791" class="tab-pane" data-group="group_42789" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/deleteSubscription?version=2.9.1&amp;apiVersion=v2"><b>DELETE</b> <i>/admin/v2/namespaces/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-42789-content-42792" class="tab-pane" data-group="group_42789" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().deleteSubscription(topic, subscriptionName);<br /></code></pre>
-</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.2/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.2/admin-api-functions"><span>Functions</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="#列出-to [...]
+</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.2/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.2/admin-api-functions"><span>Functions</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="#列出-to [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.7.2/admin-api-topics/index.html b/content/docs/zh-CN/2.7.2/admin-api-topics/index.html
index d1e4ccc..db9b067 100644
--- a/content/docs/zh-CN/2.7.2/admin-api-topics/index.html
+++ b/content/docs/zh-CN/2.7.2/admin-api-topics/index.html
@@ -391,7 +391,7 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-42697-content-42700" class="tab-pane" data-group="group_42697" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="设置去重快照间隔"></a><a href="#设置去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To set the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>设置主题级去重快照间隔,可以使用以下方法之一。</p>
 <blockquote>
 <p><strong>前提条件</strong> <code>brokerDeduplicationEnabled</code>必须设置为<code>true</code>。</p>
 </blockquote>
@@ -401,45 +401,45 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-42701-content-42704" class="tab-pane" data-group="group_42701" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setDeduplicationSnapshotInterval(topic, <span class="hljs-number">1000</span>)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="移除去重快照间隔"></a><a href="#移除去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To remove the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>移除主题级去重快照间隔,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-42705-tab-42706" class="nav-link active" data-group="group_42705" data-tab="tab-group-42705-content-42706">Pulsar-admin API</div><div id="tab-group-42705-tab-42707" class="nav-link" data-group="group_42705" data-tab="tab-group-42705-content-42707">REST API</div><div id="tab-group-42705-tab-42708" class="nav-link" data-group="group_42705" data-tab="tab-group-42705-content-42708">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-42705-content-42707" class="tab-pane" data-group="group_42705" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/deduplicationSnapshotInterval?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-42705-content-42708" class="tab-pane" data-group="group_42705" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-inactive-topic-policies"></a><a href="#configure-inactive-topic-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.5S1 [...]
-<h4><a class="anchor" aria-hidden="true" id="get-inactive-topic-policies"></a><a href="#get-inactive-topic-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 1 [...]
-<p>To get the topic-level inactive topic policies, use one of the following methods.</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.6 [...]
+<h4><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.6 [...]
+<p>获取主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-42709-tab-42710" class="nav-link active" data-group="group_42709" data-tab="tab-group-42709-content-42710">Pulsar-admin API</div><div id="tab-group-42709-tab-42711" class="nav-link" data-group="group_42709" data-tab="tab-group-42709-content-42711">REST API</div><div id="tab-group-42709-tab-42712" class="nav-link" data-group="group_42709" data-tab="tab-group-42709-content-42712">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-42709-content-42711" class="tab-pane" data-group="group_42709" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-42709-content-42712" class="tab-pane" data-group="group_42709" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-inactive-topic-policies"></a><a href="#set-inactive-topic-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 1 [...]
-<p>To set the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>设置主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-42713-tab-42714" class="nav-link active" data-group="group_42713" data-tab="tab-group-42713-content-42714">Pulsar-admin API</div><div id="tab-group-42713-tab-42715" class="nav-link" data-group="group_42713" data-tab="tab-group-42713-content-42715">REST API</div><div id="tab-group-42713-tab-42716" class="nav-link" data-group="group_42713" data-tab="tab-group-42713-content-42716">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-42713-content-42715" class="tab-pane" data-group="group_42713" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-42713-content-42716" class="tab-pane" data-group="group_42713" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setInactiveTopicPolicies(topic, inactiveTopicPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-inactive-topic-policies"></a><a href="#remove-inactive-topic-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 1 [...]
-<p>To remove the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>移除主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-42717-tab-42718" class="nav-link active" data-group="group_42717" data-tab="tab-group-42717-content-42718">Pulsar-admin API</div><div id="tab-group-42717-tab-42719" class="nav-link" data-group="group_42717" data-tab="tab-group-42717-content-42719">REST API</div><div id="tab-group-42717-tab-42720" class="nav-link" data-group="group_42717" data-tab="tab-group-42717-content-42720">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-42717-content-42719" class="tab-pane" data-group="group_42717" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-42717-content-42720" class="tab-pane" data-group="group_42717" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-offload-policies"></a><a href="#configure-offload-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 12H [...]
-<h4><a class="anchor" aria-hidden="true" id="get-offload-policies"></a><a href="#get-offload-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 [...]
-<p>To get the topic-level offload policies, use one of the following methods.</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. [...]
+<h4><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. [...]
+<p>获取主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-42721-tab-42722" class="nav-link active" data-group="group_42721" data-tab="tab-group-42721-content-42722">Pulsar-admin API</div><div id="tab-group-42721-tab-42723" class="nav-link" data-group="group_42721" data-tab="tab-group-42721-content-42723">REST API</div><div id="tab-group-42721-tab-42724" class="nav-link" data-group="group_42721" data-tab="tab-group-42721-content-42724">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-42721-content-42723" class="tab-pane" data-group="group_42721" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-42721-content-42724" class="tab-pane" data-group="group_42721" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getOffloadPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-offload-policies"></a><a href="#set-offload-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 [...]
-<p>To set the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>设置主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-42725-tab-42726" class="nav-link active" data-group="group_42725" data-tab="tab-group-42725-content-42726">Pulsar-admin API</div><div id="tab-group-42725-tab-42727" class="nav-link" data-group="group_42725" data-tab="tab-group-42725-content-42727">REST API</div><div id="tab-group-42725-tab-42728" class="nav-link" data-group="group_42725" data-tab="tab-group-42725-content-42728">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-42725-content-42727" class="tab-pane" data-group="group_42725" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-42725-content-42728" class="tab-pane" data-group="group_42725" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setOffloadPolicies(topic, offloadPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-offload-policies"></a><a href="#remove-offload-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 [...]
-<p>To remove the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>移除主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-42729-tab-42730" class="nav-link active" data-group="group_42729" data-tab="tab-group-42729-content-42730">Pulsar-admin API</div><div id="tab-group-42729-tab-42731" class="nav-link" data-group="group_42729" data-tab="tab-group-42729-content-42731">REST API</div><div id="tab-group-42729-tab-42732" class="nav-link" data-group="group_42729" data-tab="tab-group-42729-content-42732">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-42729-content-42731" class="tab-pane" data-group="group_42729" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-42729-content-42732" class="tab-pane" data-group="group_42729" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeOffloadPolicies(topic)<br /></code></pre>
@@ -683,9 +683,10 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 <p>默认情况下,Pulsar 主题由单个 broker 提供服务,这限制了主题的最大吞吐量。 <em>分区主题</em>可以跨越多个 broker,从而实现更高的吞吐量。</p>
 <p>你可以使用 Pulsar 客户端库发布到分区主题。 发布到分区主题时,必须指定路由模式。 如果在创建新的生产者时没有指定任何路由方式,则使用轮询路由模式。</p>
 <h3><a class="anchor" aria-hidden="true" id="routing-mode"></a><a href="#routing-mode" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. The routing mode determines which partition(internal topic) that each message should be published to.</p>
-<p>The following <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
- options are available.</p>
+<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. 路由模式决定了每条消息应该发往哪个分区(内部主题)。</p>
+<p>以下
+<a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
+ 选项是可用的。</p>
 <table>
 <thead>
 <tr><th style="text-align:left">发送模式</th><th style="text-align:left">说明</th></tr>
@@ -722,7 +723,7 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
     }
 }
 </code></pre>
-<p>With that implementation, you can send</p>
+<p>通过该实现,你可以发送:</p>
 <pre><code class="hljs css language-java">String pulsarBrokerRootUrl = <span class="hljs-string">"pulsar://localhost:6650"</span>;
 String topic = <span class="hljs-string">"persistent://my-tenant/my-cluster-my-namespace/my-topic"</span>;
 
@@ -734,7 +735,7 @@ Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = pulsarClient
 producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBytes());
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="使用-key-时如何选择分区"></a><a href="#使用-key-时如何选择分区" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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>If a message has a key, it supersedes the round robin routing policy. The following example illustrates how to choose the partition when using a key.</p>
+<p>If a message has a key, it supersedes the round robin routing policy. 以下示例说明当使用key时如何选择分区。</p>
 <pre><code class="hljs css language-java"><span class="hljs-comment">// 如果消息存在key,轮询路由策略将被替换</span>
         <span class="hljs-keyword">if</span> (msg.hasKey()) {
             <span class="hljs-keyword">return</span> signSafeMod(hash.makeHash(msg.getKey()), topicMetadata.numPartitions());
@@ -748,15 +749,15 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
 }
 </code></pre>
 <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>You can use <a href="/docs/zh-CN/2.7.2/admin-api-overview">Pulsar admin API</a> to create, check, and delete subscriptions.</p>
-<h3><a class="anchor" aria-hidden="true" id="create-subscription"></a><a href="#create-subscription" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
+<p>你可以使用 <a href="/docs/zh-CN/2.7.2/admin-api-overview">Pulsar admin Apl</a> 创建、检查和删除订阅。</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>You can create a subscription for a topic using one of the following methods.</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-42781-tab-42782" class="nav-link active" data-group="group_42781" data-tab="tab-group-42781-content-42782">pulsar-admin</div><div id="tab-group-42781-tab-42783" class="nav-link" data-group="group_42781" data-tab="tab-group-42781-content-42783">REST API</div><div id="tab-group-42781-tab-42784" class="nav-link" data-group="group_42781" data-tab="tab-group-42781-content-42784">Java</div></div><div class="tab-content"><div id="tab-gr [...]
 </span></div></div><div id="tab-group-42781-content-42783" class="tab-pane" data-group="group_42781" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/createSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>PUT</b> <i>/admin/v2/persistent/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-42781-content-42784" class="tab-pane" data-group="group_42781" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().createSubscription(topic, subscriptionName, MessageId.latest);<br /></code></pre>
 </span></div></div></div></div>
-### Get subscription
+### 获取订阅
 You can check all subscription names for a given topic using one of the following methods.
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-42785-tab-42786" class="nav-link active" data-group="group_42785" data-tab="tab-group-42785-content-42786">pulsar-admin</div><div id="tab-group-42785-tab-42787" class="nav-link" data-group="group_42785" data-tab="tab-group-42785-content-42787">REST API</div><div id="tab-group-42785-tab-42788" class="nav-link" data-group="group_42785" data-tab="tab-group-42785-content-42788">Java</div></div><div class="tab-content"><div id="tab-gr [...]
 </span></div></div><div id="tab-group-42785-content-42787" class="tab-pane" data-group="group_42785" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/getSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>GET</b> <i>/admin/v2/:schema/:tenant/:namespace/:topic/subscriptions</i></a>
@@ -769,7 +770,7 @@ When a subscription does not process messages any more, you can unsubscribe it u
 </span></div></div><div id="tab-group-42789-content-42791" class="tab-pane" data-group="group_42789" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/deleteSubscription?version=2.9.1&amp;apiVersion=v2"><b>DELETE</b> <i>/admin/v2/namespaces/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-42789-content-42792" class="tab-pane" data-group="group_42789" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().deleteSubscription(topic, subscriptionName);<br /></code></pre>
-</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.2/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.2/admin-api-functions"><span>Functions</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="#列出-to [...]
+</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.2/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.2/admin-api-functions"><span>Functions</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="#列出-to [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.7.2/cookbooks-retention-expiry.html b/content/docs/zh-CN/2.7.2/cookbooks-retention-expiry.html
index 3eb59476..65c9ffa 100644
--- a/content/docs/zh-CN/2.7.2/cookbooks-retention-expiry.html
+++ b/content/docs/zh-CN/2.7.2/cookbooks-retention-expiry.html
@@ -156,7 +156,7 @@ To disable the retention policy, you need to set both the size and time limit to
 <h4><a class="anchor" aria-hidden="true" id="java"></a><a href="#java" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -282,7 +282,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <li><p><strong>Entry log rollover period</strong>: multiple ledgers in BookKeeper are interleaved into an <a href="https://bookkeeper.apache.org/docs/4.11.1/getting-started/concepts/#entry-logs">entry log</a>. 对于已删除的 ledger ,必须将条目日志 entry log 全部滚动。 Entry log 滚动周期是可配置的,但完全基于条目日志的大小。 详情参阅 <a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-settings">这里</a>。 Entry log 一经滚动,就可以进行垃圾回收 entry log。</p></li>
 <li><p><strong>Garbage collection interval</strong>: because entry logs have interleaved ledgers, to free up space, the entry logs need to be rewritten. 垃圾收集间隔是 BookKeeper 执行垃圾收集的频率 这与 entry log 的小压缩和大压缩有关。 详情参阅<a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-compaction-settings">这里</a>。</p></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.2/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.2/cookbooks-encryption"><span>加密</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="#设置保留策略 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.2/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.2/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.7.2/cookbooks-retention-expiry/index.html b/content/docs/zh-CN/2.7.2/cookbooks-retention-expiry/index.html
index 3eb59476..65c9ffa 100644
--- a/content/docs/zh-CN/2.7.2/cookbooks-retention-expiry/index.html
+++ b/content/docs/zh-CN/2.7.2/cookbooks-retention-expiry/index.html
@@ -156,7 +156,7 @@ To disable the retention policy, you need to set both the size and time limit to
 <h4><a class="anchor" aria-hidden="true" id="java"></a><a href="#java" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -282,7 +282,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <li><p><strong>Entry log rollover period</strong>: multiple ledgers in BookKeeper are interleaved into an <a href="https://bookkeeper.apache.org/docs/4.11.1/getting-started/concepts/#entry-logs">entry log</a>. 对于已删除的 ledger ,必须将条目日志 entry log 全部滚动。 Entry log 滚动周期是可配置的,但完全基于条目日志的大小。 详情参阅 <a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-settings">这里</a>。 Entry log 一经滚动,就可以进行垃圾回收 entry log。</p></li>
 <li><p><strong>Garbage collection interval</strong>: because entry logs have interleaved ledgers, to free up space, the entry logs need to be rewritten. 垃圾收集间隔是 BookKeeper 执行垃圾收集的频率 这与 entry log 的小压缩和大压缩有关。 详情参阅<a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-compaction-settings">这里</a>。</p></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.2/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.2/cookbooks-encryption"><span>加密</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="#设置保留策略 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.2/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.2/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.7.3/admin-api-topics.html b/content/docs/zh-CN/2.7.3/admin-api-topics.html
index d7d57d9..a159cd3 100644
--- a/content/docs/zh-CN/2.7.3/admin-api-topics.html
+++ b/content/docs/zh-CN/2.7.3/admin-api-topics.html
@@ -391,7 +391,7 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-42090-content-42093" class="tab-pane" data-group="group_42090" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="设置去重快照间隔"></a><a href="#设置去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To set the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>设置主题级去重快照间隔,可以使用以下方法之一。</p>
 <blockquote>
 <p><strong>前提条件</strong> <code>brokerDeduplicationEnabled</code>必须设置为<code>true</code>。</p>
 </blockquote>
@@ -401,45 +401,45 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-42094-content-42097" class="tab-pane" data-group="group_42094" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setDeduplicationSnapshotInterval(topic, <span class="hljs-number">1000</span>)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="移除去重快照间隔"></a><a href="#移除去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To remove the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>移除主题级去重快照间隔,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-42098-tab-42099" class="nav-link active" data-group="group_42098" data-tab="tab-group-42098-content-42099">Pulsar-admin API</div><div id="tab-group-42098-tab-42100" class="nav-link" data-group="group_42098" data-tab="tab-group-42098-content-42100">REST API</div><div id="tab-group-42098-tab-42101" class="nav-link" data-group="group_42098" data-tab="tab-group-42098-content-42101">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-42098-content-42100" class="tab-pane" data-group="group_42098" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/deduplicationSnapshotInterval?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-42098-content-42101" class="tab-pane" data-group="group_42098" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-inactive-topic-policies"></a><a href="#configure-inactive-topic-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.5S1 [...]
-<h4><a class="anchor" aria-hidden="true" id="get-inactive-topic-policies"></a><a href="#get-inactive-topic-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 1 [...]
-<p>To get the topic-level inactive topic policies, use one of the following methods.</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.6 [...]
+<h4><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.6 [...]
+<p>获取主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-42102-tab-42103" class="nav-link active" data-group="group_42102" data-tab="tab-group-42102-content-42103">Pulsar-admin API</div><div id="tab-group-42102-tab-42104" class="nav-link" data-group="group_42102" data-tab="tab-group-42102-content-42104">REST API</div><div id="tab-group-42102-tab-42105" class="nav-link" data-group="group_42102" data-tab="tab-group-42102-content-42105">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-42102-content-42104" class="tab-pane" data-group="group_42102" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-42102-content-42105" class="tab-pane" data-group="group_42102" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-inactive-topic-policies"></a><a href="#set-inactive-topic-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 1 [...]
-<p>To set the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>设置主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-42106-tab-42107" class="nav-link active" data-group="group_42106" data-tab="tab-group-42106-content-42107">Pulsar-admin API</div><div id="tab-group-42106-tab-42108" class="nav-link" data-group="group_42106" data-tab="tab-group-42106-content-42108">REST API</div><div id="tab-group-42106-tab-42109" class="nav-link" data-group="group_42106" data-tab="tab-group-42106-content-42109">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-42106-content-42108" class="tab-pane" data-group="group_42106" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-42106-content-42109" class="tab-pane" data-group="group_42106" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setInactiveTopicPolicies(topic, inactiveTopicPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-inactive-topic-policies"></a><a href="#remove-inactive-topic-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 1 [...]
-<p>To remove the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>移除主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-42110-tab-42111" class="nav-link active" data-group="group_42110" data-tab="tab-group-42110-content-42111">Pulsar-admin API</div><div id="tab-group-42110-tab-42112" class="nav-link" data-group="group_42110" data-tab="tab-group-42110-content-42112">REST API</div><div id="tab-group-42110-tab-42113" class="nav-link" data-group="group_42110" data-tab="tab-group-42110-content-42113">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-42110-content-42112" class="tab-pane" data-group="group_42110" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-42110-content-42113" class="tab-pane" data-group="group_42110" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-offload-policies"></a><a href="#configure-offload-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 12H [...]
-<h4><a class="anchor" aria-hidden="true" id="get-offload-policies"></a><a href="#get-offload-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 [...]
-<p>To get the topic-level offload policies, use one of the following methods.</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. [...]
+<h4><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. [...]
+<p>获取主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-42114-tab-42115" class="nav-link active" data-group="group_42114" data-tab="tab-group-42114-content-42115">Pulsar-admin API</div><div id="tab-group-42114-tab-42116" class="nav-link" data-group="group_42114" data-tab="tab-group-42114-content-42116">REST API</div><div id="tab-group-42114-tab-42117" class="nav-link" data-group="group_42114" data-tab="tab-group-42114-content-42117">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-42114-content-42116" class="tab-pane" data-group="group_42114" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-42114-content-42117" class="tab-pane" data-group="group_42114" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getOffloadPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-offload-policies"></a><a href="#set-offload-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 [...]
-<p>To set the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>设置主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-42118-tab-42119" class="nav-link active" data-group="group_42118" data-tab="tab-group-42118-content-42119">Pulsar-admin API</div><div id="tab-group-42118-tab-42120" class="nav-link" data-group="group_42118" data-tab="tab-group-42118-content-42120">REST API</div><div id="tab-group-42118-tab-42121" class="nav-link" data-group="group_42118" data-tab="tab-group-42118-content-42121">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-42118-content-42120" class="tab-pane" data-group="group_42118" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-42118-content-42121" class="tab-pane" data-group="group_42118" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setOffloadPolicies(topic, offloadPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-offload-policies"></a><a href="#remove-offload-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 [...]
-<p>To remove the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>移除主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-42122-tab-42123" class="nav-link active" data-group="group_42122" data-tab="tab-group-42122-content-42123">Pulsar-admin API</div><div id="tab-group-42122-tab-42124" class="nav-link" data-group="group_42122" data-tab="tab-group-42122-content-42124">REST API</div><div id="tab-group-42122-tab-42125" class="nav-link" data-group="group_42122" data-tab="tab-group-42122-content-42125">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-42122-content-42124" class="tab-pane" data-group="group_42122" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-42122-content-42125" class="tab-pane" data-group="group_42122" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeOffloadPolicies(topic)<br /></code></pre>
@@ -683,9 +683,10 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 <p>默认情况下,Pulsar 主题由单个 broker 提供服务,这限制了主题的最大吞吐量。 <em>分区主题</em>可以跨越多个 broker,从而实现更高的吞吐量。</p>
 <p>你可以使用 Pulsar 客户端库发布到分区主题。 发布到分区主题时,必须指定路由模式。 如果在创建新的生产者时没有指定任何路由方式,则使用轮询路由模式。</p>
 <h3><a class="anchor" aria-hidden="true" id="routing-mode"></a><a href="#routing-mode" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. The routing mode determines which partition(internal topic) that each message should be published to.</p>
-<p>The following <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
- options are available.</p>
+<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. 路由模式决定了每条消息应该发往哪个分区(内部主题)。</p>
+<p>以下
+<a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
+ 选项是可用的。</p>
 <table>
 <thead>
 <tr><th style="text-align:left">发送模式</th><th style="text-align:left">说明</th></tr>
@@ -722,7 +723,7 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
     }
 }
 </code></pre>
-<p>With that implementation, you can send</p>
+<p>通过该实现,你可以发送:</p>
 <pre><code class="hljs css language-java">String pulsarBrokerRootUrl = <span class="hljs-string">"pulsar://localhost:6650"</span>;
 String topic = <span class="hljs-string">"persistent://my-tenant/my-cluster-my-namespace/my-topic"</span>;
 
@@ -734,7 +735,7 @@ Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = pulsarClient
 producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBytes());
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="使用-key-时如何选择分区"></a><a href="#使用-key-时如何选择分区" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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>If a message has a key, it supersedes the round robin routing policy. The following example illustrates how to choose the partition when using a key.</p>
+<p>If a message has a key, it supersedes the round robin routing policy. 以下示例说明当使用key时如何选择分区。</p>
 <pre><code class="hljs css language-java"><span class="hljs-comment">// 如果消息存在key,轮询路由策略将被替换</span>
         <span class="hljs-keyword">if</span> (msg.hasKey()) {
             <span class="hljs-keyword">return</span> signSafeMod(hash.makeHash(msg.getKey()), topicMetadata.numPartitions());
@@ -748,15 +749,15 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
 }
 </code></pre>
 <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>You can use <a href="/docs/zh-CN/2.7.3/admin-api-overview">Pulsar admin API</a> to create, check, and delete subscriptions.</p>
-<h3><a class="anchor" aria-hidden="true" id="create-subscription"></a><a href="#create-subscription" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
+<p>你可以使用 <a href="/docs/zh-CN/2.7.3/admin-api-overview">Pulsar admin Apl</a> 创建、检查和删除订阅。</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>You can create a subscription for a topic using one of the following methods.</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-42174-tab-42175" class="nav-link active" data-group="group_42174" data-tab="tab-group-42174-content-42175">pulsar-admin</div><div id="tab-group-42174-tab-42176" class="nav-link" data-group="group_42174" data-tab="tab-group-42174-content-42176">REST API</div><div id="tab-group-42174-tab-42177" class="nav-link" data-group="group_42174" data-tab="tab-group-42174-content-42177">Java</div></div><div class="tab-content"><div id="tab-gr [...]
 </span></div></div><div id="tab-group-42174-content-42176" class="tab-pane" data-group="group_42174" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/createSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>PUT</b> <i>/admin/v2/persistent/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-42174-content-42177" class="tab-pane" data-group="group_42174" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().createSubscription(topic, subscriptionName, MessageId.latest);<br /></code></pre>
 </span></div></div></div></div>
-### Get subscription
+### 获取订阅
 You can check all subscription names for a given topic using one of the following methods.
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-42178-tab-42179" class="nav-link active" data-group="group_42178" data-tab="tab-group-42178-content-42179">pulsar-admin</div><div id="tab-group-42178-tab-42180" class="nav-link" data-group="group_42178" data-tab="tab-group-42178-content-42180">REST API</div><div id="tab-group-42178-tab-42181" class="nav-link" data-group="group_42178" data-tab="tab-group-42178-content-42181">Java</div></div><div class="tab-content"><div id="tab-gr [...]
 </span></div></div><div id="tab-group-42178-content-42180" class="tab-pane" data-group="group_42178" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/getSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>GET</b> <i>/admin/v2/:schema/:tenant/:namespace/:topic/subscriptions</i></a>
@@ -769,7 +770,7 @@ When a subscription does not process messages any more, you can unsubscribe it u
 </span></div></div><div id="tab-group-42182-content-42184" class="tab-pane" data-group="group_42182" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/deleteSubscription?version=2.9.1&amp;apiVersion=v2"><b>DELETE</b> <i>/admin/v2/namespaces/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-42182-content-42185" class="tab-pane" data-group="group_42182" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().deleteSubscription(topic, subscriptionName);<br /></code></pre>
-</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.3/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.3/admin-api-functions"><span>Functions</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="#列出-to [...]
+</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.3/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.3/admin-api-functions"><span>Functions</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="#列出-to [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.7.3/admin-api-topics/index.html b/content/docs/zh-CN/2.7.3/admin-api-topics/index.html
index d7d57d9..a159cd3 100644
--- a/content/docs/zh-CN/2.7.3/admin-api-topics/index.html
+++ b/content/docs/zh-CN/2.7.3/admin-api-topics/index.html
@@ -391,7 +391,7 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-42090-content-42093" class="tab-pane" data-group="group_42090" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="设置去重快照间隔"></a><a href="#设置去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To set the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>设置主题级去重快照间隔,可以使用以下方法之一。</p>
 <blockquote>
 <p><strong>前提条件</strong> <code>brokerDeduplicationEnabled</code>必须设置为<code>true</code>。</p>
 </blockquote>
@@ -401,45 +401,45 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-42094-content-42097" class="tab-pane" data-group="group_42094" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setDeduplicationSnapshotInterval(topic, <span class="hljs-number">1000</span>)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="移除去重快照间隔"></a><a href="#移除去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To remove the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>移除主题级去重快照间隔,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-42098-tab-42099" class="nav-link active" data-group="group_42098" data-tab="tab-group-42098-content-42099">Pulsar-admin API</div><div id="tab-group-42098-tab-42100" class="nav-link" data-group="group_42098" data-tab="tab-group-42098-content-42100">REST API</div><div id="tab-group-42098-tab-42101" class="nav-link" data-group="group_42098" data-tab="tab-group-42098-content-42101">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-42098-content-42100" class="tab-pane" data-group="group_42098" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/deduplicationSnapshotInterval?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-42098-content-42101" class="tab-pane" data-group="group_42098" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-inactive-topic-policies"></a><a href="#configure-inactive-topic-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.5S1 [...]
-<h4><a class="anchor" aria-hidden="true" id="get-inactive-topic-policies"></a><a href="#get-inactive-topic-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 1 [...]
-<p>To get the topic-level inactive topic policies, use one of the following methods.</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.6 [...]
+<h4><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.6 [...]
+<p>获取主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-42102-tab-42103" class="nav-link active" data-group="group_42102" data-tab="tab-group-42102-content-42103">Pulsar-admin API</div><div id="tab-group-42102-tab-42104" class="nav-link" data-group="group_42102" data-tab="tab-group-42102-content-42104">REST API</div><div id="tab-group-42102-tab-42105" class="nav-link" data-group="group_42102" data-tab="tab-group-42102-content-42105">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-42102-content-42104" class="tab-pane" data-group="group_42102" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-42102-content-42105" class="tab-pane" data-group="group_42102" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-inactive-topic-policies"></a><a href="#set-inactive-topic-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 1 [...]
-<p>To set the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>设置主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-42106-tab-42107" class="nav-link active" data-group="group_42106" data-tab="tab-group-42106-content-42107">Pulsar-admin API</div><div id="tab-group-42106-tab-42108" class="nav-link" data-group="group_42106" data-tab="tab-group-42106-content-42108">REST API</div><div id="tab-group-42106-tab-42109" class="nav-link" data-group="group_42106" data-tab="tab-group-42106-content-42109">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-42106-content-42108" class="tab-pane" data-group="group_42106" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-42106-content-42109" class="tab-pane" data-group="group_42106" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setInactiveTopicPolicies(topic, inactiveTopicPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-inactive-topic-policies"></a><a href="#remove-inactive-topic-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 1 [...]
-<p>To remove the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>移除主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-42110-tab-42111" class="nav-link active" data-group="group_42110" data-tab="tab-group-42110-content-42111">Pulsar-admin API</div><div id="tab-group-42110-tab-42112" class="nav-link" data-group="group_42110" data-tab="tab-group-42110-content-42112">REST API</div><div id="tab-group-42110-tab-42113" class="nav-link" data-group="group_42110" data-tab="tab-group-42110-content-42113">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-42110-content-42112" class="tab-pane" data-group="group_42110" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-42110-content-42113" class="tab-pane" data-group="group_42110" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-offload-policies"></a><a href="#configure-offload-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 12H [...]
-<h4><a class="anchor" aria-hidden="true" id="get-offload-policies"></a><a href="#get-offload-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 [...]
-<p>To get the topic-level offload policies, use one of the following methods.</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. [...]
+<h4><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. [...]
+<p>获取主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-42114-tab-42115" class="nav-link active" data-group="group_42114" data-tab="tab-group-42114-content-42115">Pulsar-admin API</div><div id="tab-group-42114-tab-42116" class="nav-link" data-group="group_42114" data-tab="tab-group-42114-content-42116">REST API</div><div id="tab-group-42114-tab-42117" class="nav-link" data-group="group_42114" data-tab="tab-group-42114-content-42117">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-42114-content-42116" class="tab-pane" data-group="group_42114" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-42114-content-42117" class="tab-pane" data-group="group_42114" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getOffloadPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-offload-policies"></a><a href="#set-offload-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 [...]
-<p>To set the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>设置主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-42118-tab-42119" class="nav-link active" data-group="group_42118" data-tab="tab-group-42118-content-42119">Pulsar-admin API</div><div id="tab-group-42118-tab-42120" class="nav-link" data-group="group_42118" data-tab="tab-group-42118-content-42120">REST API</div><div id="tab-group-42118-tab-42121" class="nav-link" data-group="group_42118" data-tab="tab-group-42118-content-42121">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-42118-content-42120" class="tab-pane" data-group="group_42118" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-42118-content-42121" class="tab-pane" data-group="group_42118" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setOffloadPolicies(topic, offloadPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-offload-policies"></a><a href="#remove-offload-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 [...]
-<p>To remove the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>移除主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-42122-tab-42123" class="nav-link active" data-group="group_42122" data-tab="tab-group-42122-content-42123">Pulsar-admin API</div><div id="tab-group-42122-tab-42124" class="nav-link" data-group="group_42122" data-tab="tab-group-42122-content-42124">REST API</div><div id="tab-group-42122-tab-42125" class="nav-link" data-group="group_42122" data-tab="tab-group-42122-content-42125">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-42122-content-42124" class="tab-pane" data-group="group_42122" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-42122-content-42125" class="tab-pane" data-group="group_42122" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeOffloadPolicies(topic)<br /></code></pre>
@@ -683,9 +683,10 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 <p>默认情况下,Pulsar 主题由单个 broker 提供服务,这限制了主题的最大吞吐量。 <em>分区主题</em>可以跨越多个 broker,从而实现更高的吞吐量。</p>
 <p>你可以使用 Pulsar 客户端库发布到分区主题。 发布到分区主题时,必须指定路由模式。 如果在创建新的生产者时没有指定任何路由方式,则使用轮询路由模式。</p>
 <h3><a class="anchor" aria-hidden="true" id="routing-mode"></a><a href="#routing-mode" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. The routing mode determines which partition(internal topic) that each message should be published to.</p>
-<p>The following <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
- options are available.</p>
+<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. 路由模式决定了每条消息应该发往哪个分区(内部主题)。</p>
+<p>以下
+<a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
+ 选项是可用的。</p>
 <table>
 <thead>
 <tr><th style="text-align:left">发送模式</th><th style="text-align:left">说明</th></tr>
@@ -722,7 +723,7 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
     }
 }
 </code></pre>
-<p>With that implementation, you can send</p>
+<p>通过该实现,你可以发送:</p>
 <pre><code class="hljs css language-java">String pulsarBrokerRootUrl = <span class="hljs-string">"pulsar://localhost:6650"</span>;
 String topic = <span class="hljs-string">"persistent://my-tenant/my-cluster-my-namespace/my-topic"</span>;
 
@@ -734,7 +735,7 @@ Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = pulsarClient
 producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBytes());
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="使用-key-时如何选择分区"></a><a href="#使用-key-时如何选择分区" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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>If a message has a key, it supersedes the round robin routing policy. The following example illustrates how to choose the partition when using a key.</p>
+<p>If a message has a key, it supersedes the round robin routing policy. 以下示例说明当使用key时如何选择分区。</p>
 <pre><code class="hljs css language-java"><span class="hljs-comment">// 如果消息存在key,轮询路由策略将被替换</span>
         <span class="hljs-keyword">if</span> (msg.hasKey()) {
             <span class="hljs-keyword">return</span> signSafeMod(hash.makeHash(msg.getKey()), topicMetadata.numPartitions());
@@ -748,15 +749,15 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
 }
 </code></pre>
 <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>You can use <a href="/docs/zh-CN/2.7.3/admin-api-overview">Pulsar admin API</a> to create, check, and delete subscriptions.</p>
-<h3><a class="anchor" aria-hidden="true" id="create-subscription"></a><a href="#create-subscription" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
+<p>你可以使用 <a href="/docs/zh-CN/2.7.3/admin-api-overview">Pulsar admin Apl</a> 创建、检查和删除订阅。</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>You can create a subscription for a topic using one of the following methods.</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-42174-tab-42175" class="nav-link active" data-group="group_42174" data-tab="tab-group-42174-content-42175">pulsar-admin</div><div id="tab-group-42174-tab-42176" class="nav-link" data-group="group_42174" data-tab="tab-group-42174-content-42176">REST API</div><div id="tab-group-42174-tab-42177" class="nav-link" data-group="group_42174" data-tab="tab-group-42174-content-42177">Java</div></div><div class="tab-content"><div id="tab-gr [...]
 </span></div></div><div id="tab-group-42174-content-42176" class="tab-pane" data-group="group_42174" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/createSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>PUT</b> <i>/admin/v2/persistent/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-42174-content-42177" class="tab-pane" data-group="group_42174" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().createSubscription(topic, subscriptionName, MessageId.latest);<br /></code></pre>
 </span></div></div></div></div>
-### Get subscription
+### 获取订阅
 You can check all subscription names for a given topic using one of the following methods.
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-42178-tab-42179" class="nav-link active" data-group="group_42178" data-tab="tab-group-42178-content-42179">pulsar-admin</div><div id="tab-group-42178-tab-42180" class="nav-link" data-group="group_42178" data-tab="tab-group-42178-content-42180">REST API</div><div id="tab-group-42178-tab-42181" class="nav-link" data-group="group_42178" data-tab="tab-group-42178-content-42181">Java</div></div><div class="tab-content"><div id="tab-gr [...]
 </span></div></div><div id="tab-group-42178-content-42180" class="tab-pane" data-group="group_42178" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/getSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>GET</b> <i>/admin/v2/:schema/:tenant/:namespace/:topic/subscriptions</i></a>
@@ -769,7 +770,7 @@ When a subscription does not process messages any more, you can unsubscribe it u
 </span></div></div><div id="tab-group-42182-content-42184" class="tab-pane" data-group="group_42182" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/deleteSubscription?version=2.9.1&amp;apiVersion=v2"><b>DELETE</b> <i>/admin/v2/namespaces/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-42182-content-42185" class="tab-pane" data-group="group_42182" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().deleteSubscription(topic, subscriptionName);<br /></code></pre>
-</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.3/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.3/admin-api-functions"><span>Functions</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="#列出-to [...]
+</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.3/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.3/admin-api-functions"><span>Functions</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="#列出-to [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.7.3/cookbooks-retention-expiry.html b/content/docs/zh-CN/2.7.3/cookbooks-retention-expiry.html
index f18cbc0..81f5bdd 100644
--- a/content/docs/zh-CN/2.7.3/cookbooks-retention-expiry.html
+++ b/content/docs/zh-CN/2.7.3/cookbooks-retention-expiry.html
@@ -156,7 +156,7 @@ To disable the retention policy, you need to set both the size and time limit to
 <h4><a class="anchor" aria-hidden="true" id="java"></a><a href="#java" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -282,7 +282,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <li><p><strong>Entry log rollover period</strong>: multiple ledgers in BookKeeper are interleaved into an <a href="https://bookkeeper.apache.org/docs/4.11.1/getting-started/concepts/#entry-logs">entry log</a>. 对于已删除的 ledger ,必须将条目日志 entry log 全部滚动。 Entry log 滚动周期是可配置的,但完全基于条目日志的大小。 详情参阅 <a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-settings">这里</a>。 Entry log 一经滚动,就可以进行垃圾回收 entry log。</p></li>
 <li><p><strong>Garbage collection interval</strong>: because entry logs have interleaved ledgers, to free up space, the entry logs need to be rewritten. 垃圾收集间隔是 BookKeeper 执行垃圾收集的频率 这与 entry log 的小压缩和大压缩有关。 详情参阅<a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-compaction-settings">这里</a>。</p></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.3/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.3/cookbooks-encryption"><span>加密</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="#设置保留策略 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.3/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.3/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.7.3/cookbooks-retention-expiry/index.html b/content/docs/zh-CN/2.7.3/cookbooks-retention-expiry/index.html
index f18cbc0..81f5bdd 100644
--- a/content/docs/zh-CN/2.7.3/cookbooks-retention-expiry/index.html
+++ b/content/docs/zh-CN/2.7.3/cookbooks-retention-expiry/index.html
@@ -156,7 +156,7 @@ To disable the retention policy, you need to set both the size and time limit to
 <h4><a class="anchor" aria-hidden="true" id="java"></a><a href="#java" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -282,7 +282,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <li><p><strong>Entry log rollover period</strong>: multiple ledgers in BookKeeper are interleaved into an <a href="https://bookkeeper.apache.org/docs/4.11.1/getting-started/concepts/#entry-logs">entry log</a>. 对于已删除的 ledger ,必须将条目日志 entry log 全部滚动。 Entry log 滚动周期是可配置的,但完全基于条目日志的大小。 详情参阅 <a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-settings">这里</a>。 Entry log 一经滚动,就可以进行垃圾回收 entry log。</p></li>
 <li><p><strong>Garbage collection interval</strong>: because entry logs have interleaved ledgers, to free up space, the entry logs need to be rewritten. 垃圾收集间隔是 BookKeeper 执行垃圾收集的频率 这与 entry log 的小压缩和大压缩有关。 详情参阅<a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-compaction-settings">这里</a>。</p></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.3/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.3/cookbooks-encryption"><span>加密</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="#设置保留策略 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.3/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.3/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.7.4/admin-api-topics.html b/content/docs/zh-CN/2.7.4/admin-api-topics.html
index 7ad7e84..54035f2 100644
--- a/content/docs/zh-CN/2.7.4/admin-api-topics.html
+++ b/content/docs/zh-CN/2.7.4/admin-api-topics.html
@@ -391,7 +391,7 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-41483-content-41486" class="tab-pane" data-group="group_41483" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="设置去重快照间隔"></a><a href="#设置去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To set the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>设置主题级去重快照间隔,可以使用以下方法之一。</p>
 <blockquote>
 <p><strong>前提条件</strong> <code>brokerDeduplicationEnabled</code>必须设置为<code>true</code>。</p>
 </blockquote>
@@ -401,45 +401,45 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-41487-content-41490" class="tab-pane" data-group="group_41487" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setDeduplicationSnapshotInterval(topic, <span class="hljs-number">1000</span>)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="移除去重快照间隔"></a><a href="#移除去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To remove the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>移除主题级去重快照间隔,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-41491-tab-41492" class="nav-link active" data-group="group_41491" data-tab="tab-group-41491-content-41492">Pulsar-admin API</div><div id="tab-group-41491-tab-41493" class="nav-link" data-group="group_41491" data-tab="tab-group-41491-content-41493">REST API</div><div id="tab-group-41491-tab-41494" class="nav-link" data-group="group_41491" data-tab="tab-group-41491-content-41494">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-41491-content-41493" class="tab-pane" data-group="group_41491" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/deduplicationSnapshotInterval?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-41491-content-41494" class="tab-pane" data-group="group_41491" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-inactive-topic-policies"></a><a href="#configure-inactive-topic-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.5S1 [...]
-<h4><a class="anchor" aria-hidden="true" id="get-inactive-topic-policies"></a><a href="#get-inactive-topic-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 1 [...]
-<p>To get the topic-level inactive topic policies, use one of the following methods.</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.6 [...]
+<h4><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.6 [...]
+<p>获取主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-41495-tab-41496" class="nav-link active" data-group="group_41495" data-tab="tab-group-41495-content-41496">Pulsar-admin API</div><div id="tab-group-41495-tab-41497" class="nav-link" data-group="group_41495" data-tab="tab-group-41495-content-41497">REST API</div><div id="tab-group-41495-tab-41498" class="nav-link" data-group="group_41495" data-tab="tab-group-41495-content-41498">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-41495-content-41497" class="tab-pane" data-group="group_41495" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-41495-content-41498" class="tab-pane" data-group="group_41495" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-inactive-topic-policies"></a><a href="#set-inactive-topic-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 1 [...]
-<p>To set the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>设置主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-41499-tab-41500" class="nav-link active" data-group="group_41499" data-tab="tab-group-41499-content-41500">Pulsar-admin API</div><div id="tab-group-41499-tab-41501" class="nav-link" data-group="group_41499" data-tab="tab-group-41499-content-41501">REST API</div><div id="tab-group-41499-tab-41502" class="nav-link" data-group="group_41499" data-tab="tab-group-41499-content-41502">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-41499-content-41501" class="tab-pane" data-group="group_41499" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-41499-content-41502" class="tab-pane" data-group="group_41499" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setInactiveTopicPolicies(topic, inactiveTopicPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-inactive-topic-policies"></a><a href="#remove-inactive-topic-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 1 [...]
-<p>To remove the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>移除主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-41503-tab-41504" class="nav-link active" data-group="group_41503" data-tab="tab-group-41503-content-41504">Pulsar-admin API</div><div id="tab-group-41503-tab-41505" class="nav-link" data-group="group_41503" data-tab="tab-group-41503-content-41505">REST API</div><div id="tab-group-41503-tab-41506" class="nav-link" data-group="group_41503" data-tab="tab-group-41503-content-41506">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-41503-content-41505" class="tab-pane" data-group="group_41503" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-41503-content-41506" class="tab-pane" data-group="group_41503" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-offload-policies"></a><a href="#configure-offload-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 12H [...]
-<h4><a class="anchor" aria-hidden="true" id="get-offload-policies"></a><a href="#get-offload-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 [...]
-<p>To get the topic-level offload policies, use one of the following methods.</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. [...]
+<h4><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. [...]
+<p>获取主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-41507-tab-41508" class="nav-link active" data-group="group_41507" data-tab="tab-group-41507-content-41508">Pulsar-admin API</div><div id="tab-group-41507-tab-41509" class="nav-link" data-group="group_41507" data-tab="tab-group-41507-content-41509">REST API</div><div id="tab-group-41507-tab-41510" class="nav-link" data-group="group_41507" data-tab="tab-group-41507-content-41510">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-41507-content-41509" class="tab-pane" data-group="group_41507" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-41507-content-41510" class="tab-pane" data-group="group_41507" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getOffloadPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-offload-policies"></a><a href="#set-offload-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 [...]
-<p>To set the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>设置主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-41511-tab-41512" class="nav-link active" data-group="group_41511" data-tab="tab-group-41511-content-41512">Pulsar-admin API</div><div id="tab-group-41511-tab-41513" class="nav-link" data-group="group_41511" data-tab="tab-group-41511-content-41513">REST API</div><div id="tab-group-41511-tab-41514" class="nav-link" data-group="group_41511" data-tab="tab-group-41511-content-41514">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-41511-content-41513" class="tab-pane" data-group="group_41511" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-41511-content-41514" class="tab-pane" data-group="group_41511" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setOffloadPolicies(topic, offloadPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-offload-policies"></a><a href="#remove-offload-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 [...]
-<p>To remove the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>移除主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-41515-tab-41516" class="nav-link active" data-group="group_41515" data-tab="tab-group-41515-content-41516">Pulsar-admin API</div><div id="tab-group-41515-tab-41517" class="nav-link" data-group="group_41515" data-tab="tab-group-41515-content-41517">REST API</div><div id="tab-group-41515-tab-41518" class="nav-link" data-group="group_41515" data-tab="tab-group-41515-content-41518">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-41515-content-41517" class="tab-pane" data-group="group_41515" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-41515-content-41518" class="tab-pane" data-group="group_41515" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeOffloadPolicies(topic)<br /></code></pre>
@@ -683,9 +683,10 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 <p>默认情况下,Pulsar 主题由单个 broker 提供服务,这限制了主题的最大吞吐量。 <em>分区主题</em>可以跨越多个 broker,从而实现更高的吞吐量。</p>
 <p>你可以使用 Pulsar 客户端库发布到分区主题。 发布到分区主题时,必须指定路由模式。 如果在创建新的生产者时没有指定任何路由方式,则使用轮询路由模式。</p>
 <h3><a class="anchor" aria-hidden="true" id="routing-mode"></a><a href="#routing-mode" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. The routing mode determines which partition(internal topic) that each message should be published to.</p>
-<p>The following <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
- options are available.</p>
+<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. 路由模式决定了每条消息应该发往哪个分区(内部主题)。</p>
+<p>以下
+<a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
+ 选项是可用的。</p>
 <table>
 <thead>
 <tr><th style="text-align:left">发送模式</th><th style="text-align:left">说明</th></tr>
@@ -722,7 +723,7 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
     }
 }
 </code></pre>
-<p>With that implementation, you can send</p>
+<p>通过该实现,你可以发送:</p>
 <pre><code class="hljs css language-java">String pulsarBrokerRootUrl = <span class="hljs-string">"pulsar://localhost:6650"</span>;
 String topic = <span class="hljs-string">"persistent://my-tenant/my-cluster-my-namespace/my-topic"</span>;
 
@@ -734,7 +735,7 @@ Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = pulsarClient
 producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBytes());
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="使用-key-时如何选择分区"></a><a href="#使用-key-时如何选择分区" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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>If a message has a key, it supersedes the round robin routing policy. The following example illustrates how to choose the partition when using a key.</p>
+<p>If a message has a key, it supersedes the round robin routing policy. 以下示例说明当使用key时如何选择分区。</p>
 <pre><code class="hljs css language-java"><span class="hljs-comment">// 如果消息存在key,轮询路由策略将被替换</span>
         <span class="hljs-keyword">if</span> (msg.hasKey()) {
             <span class="hljs-keyword">return</span> signSafeMod(hash.makeHash(msg.getKey()), topicMetadata.numPartitions());
@@ -748,15 +749,15 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
 }
 </code></pre>
 <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>You can use <a href="/docs/zh-CN/2.7.4/admin-api-overview">Pulsar admin API</a> to create, check, and delete subscriptions.</p>
-<h3><a class="anchor" aria-hidden="true" id="create-subscription"></a><a href="#create-subscription" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
+<p>你可以使用 <a href="/docs/zh-CN/2.7.4/admin-api-overview">Pulsar admin Apl</a> 创建、检查和删除订阅。</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>You can create a subscription for a topic using one of the following methods.</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-41567-tab-41568" class="nav-link active" data-group="group_41567" data-tab="tab-group-41567-content-41568">pulsar-admin</div><div id="tab-group-41567-tab-41569" class="nav-link" data-group="group_41567" data-tab="tab-group-41567-content-41569">REST API</div><div id="tab-group-41567-tab-41570" class="nav-link" data-group="group_41567" data-tab="tab-group-41567-content-41570">Java</div></div><div class="tab-content"><div id="tab-gr [...]
 </span></div></div><div id="tab-group-41567-content-41569" class="tab-pane" data-group="group_41567" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/createSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>PUT</b> <i>/admin/v2/persistent/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-41567-content-41570" class="tab-pane" data-group="group_41567" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().createSubscription(topic, subscriptionName, MessageId.latest);<br /></code></pre>
 </span></div></div></div></div>
-### Get subscription
+### 获取订阅
 You can check all subscription names for a given topic using one of the following methods.
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-41571-tab-41572" class="nav-link active" data-group="group_41571" data-tab="tab-group-41571-content-41572">pulsar-admin</div><div id="tab-group-41571-tab-41573" class="nav-link" data-group="group_41571" data-tab="tab-group-41571-content-41573">REST API</div><div id="tab-group-41571-tab-41574" class="nav-link" data-group="group_41571" data-tab="tab-group-41571-content-41574">Java</div></div><div class="tab-content"><div id="tab-gr [...]
 </span></div></div><div id="tab-group-41571-content-41573" class="tab-pane" data-group="group_41571" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/getSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>GET</b> <i>/admin/v2/:schema/:tenant/:namespace/:topic/subscriptions</i></a>
@@ -769,7 +770,7 @@ When a subscription does not process messages any more, you can unsubscribe it u
 </span></div></div><div id="tab-group-41575-content-41577" class="tab-pane" data-group="group_41575" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/deleteSubscription?version=2.9.1&amp;apiVersion=v2"><b>DELETE</b> <i>/admin/v2/namespaces/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-41575-content-41578" class="tab-pane" data-group="group_41575" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().deleteSubscription(topic, subscriptionName);<br /></code></pre>
-</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.4/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.4/admin-api-functions"><span>Functions</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="#列出-to [...]
+</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.4/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.4/admin-api-functions"><span>Functions</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="#列出-to [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.7.4/admin-api-topics/index.html b/content/docs/zh-CN/2.7.4/admin-api-topics/index.html
index 7ad7e84..54035f2 100644
--- a/content/docs/zh-CN/2.7.4/admin-api-topics/index.html
+++ b/content/docs/zh-CN/2.7.4/admin-api-topics/index.html
@@ -391,7 +391,7 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-41483-content-41486" class="tab-pane" data-group="group_41483" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="设置去重快照间隔"></a><a href="#设置去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To set the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>设置主题级去重快照间隔,可以使用以下方法之一。</p>
 <blockquote>
 <p><strong>前提条件</strong> <code>brokerDeduplicationEnabled</code>必须设置为<code>true</code>。</p>
 </blockquote>
@@ -401,45 +401,45 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-41487-content-41490" class="tab-pane" data-group="group_41487" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setDeduplicationSnapshotInterval(topic, <span class="hljs-number">1000</span>)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="移除去重快照间隔"></a><a href="#移除去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To remove the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>移除主题级去重快照间隔,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-41491-tab-41492" class="nav-link active" data-group="group_41491" data-tab="tab-group-41491-content-41492">Pulsar-admin API</div><div id="tab-group-41491-tab-41493" class="nav-link" data-group="group_41491" data-tab="tab-group-41491-content-41493">REST API</div><div id="tab-group-41491-tab-41494" class="nav-link" data-group="group_41491" data-tab="tab-group-41491-content-41494">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-41491-content-41493" class="tab-pane" data-group="group_41491" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/deduplicationSnapshotInterval?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-41491-content-41494" class="tab-pane" data-group="group_41491" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-inactive-topic-policies"></a><a href="#configure-inactive-topic-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.5S1 [...]
-<h4><a class="anchor" aria-hidden="true" id="get-inactive-topic-policies"></a><a href="#get-inactive-topic-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 1 [...]
-<p>To get the topic-level inactive topic policies, use one of the following methods.</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.6 [...]
+<h4><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.6 [...]
+<p>获取主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-41495-tab-41496" class="nav-link active" data-group="group_41495" data-tab="tab-group-41495-content-41496">Pulsar-admin API</div><div id="tab-group-41495-tab-41497" class="nav-link" data-group="group_41495" data-tab="tab-group-41495-content-41497">REST API</div><div id="tab-group-41495-tab-41498" class="nav-link" data-group="group_41495" data-tab="tab-group-41495-content-41498">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-41495-content-41497" class="tab-pane" data-group="group_41495" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-41495-content-41498" class="tab-pane" data-group="group_41495" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-inactive-topic-policies"></a><a href="#set-inactive-topic-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 1 [...]
-<p>To set the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>设置主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-41499-tab-41500" class="nav-link active" data-group="group_41499" data-tab="tab-group-41499-content-41500">Pulsar-admin API</div><div id="tab-group-41499-tab-41501" class="nav-link" data-group="group_41499" data-tab="tab-group-41499-content-41501">REST API</div><div id="tab-group-41499-tab-41502" class="nav-link" data-group="group_41499" data-tab="tab-group-41499-content-41502">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-41499-content-41501" class="tab-pane" data-group="group_41499" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-41499-content-41502" class="tab-pane" data-group="group_41499" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setInactiveTopicPolicies(topic, inactiveTopicPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-inactive-topic-policies"></a><a href="#remove-inactive-topic-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 1 [...]
-<p>To remove the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>移除主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-41503-tab-41504" class="nav-link active" data-group="group_41503" data-tab="tab-group-41503-content-41504">Pulsar-admin API</div><div id="tab-group-41503-tab-41505" class="nav-link" data-group="group_41503" data-tab="tab-group-41503-content-41505">REST API</div><div id="tab-group-41503-tab-41506" class="nav-link" data-group="group_41503" data-tab="tab-group-41503-content-41506">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-41503-content-41505" class="tab-pane" data-group="group_41503" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-41503-content-41506" class="tab-pane" data-group="group_41503" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-offload-policies"></a><a href="#configure-offload-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 12H [...]
-<h4><a class="anchor" aria-hidden="true" id="get-offload-policies"></a><a href="#get-offload-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 [...]
-<p>To get the topic-level offload policies, use one of the following methods.</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. [...]
+<h4><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. [...]
+<p>获取主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-41507-tab-41508" class="nav-link active" data-group="group_41507" data-tab="tab-group-41507-content-41508">Pulsar-admin API</div><div id="tab-group-41507-tab-41509" class="nav-link" data-group="group_41507" data-tab="tab-group-41507-content-41509">REST API</div><div id="tab-group-41507-tab-41510" class="nav-link" data-group="group_41507" data-tab="tab-group-41507-content-41510">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-41507-content-41509" class="tab-pane" data-group="group_41507" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-41507-content-41510" class="tab-pane" data-group="group_41507" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getOffloadPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-offload-policies"></a><a href="#set-offload-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 [...]
-<p>To set the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>设置主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-41511-tab-41512" class="nav-link active" data-group="group_41511" data-tab="tab-group-41511-content-41512">Pulsar-admin API</div><div id="tab-group-41511-tab-41513" class="nav-link" data-group="group_41511" data-tab="tab-group-41511-content-41513">REST API</div><div id="tab-group-41511-tab-41514" class="nav-link" data-group="group_41511" data-tab="tab-group-41511-content-41514">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-41511-content-41513" class="tab-pane" data-group="group_41511" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-41511-content-41514" class="tab-pane" data-group="group_41511" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setOffloadPolicies(topic, offloadPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-offload-policies"></a><a href="#remove-offload-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 [...]
-<p>To remove the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>移除主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-41515-tab-41516" class="nav-link active" data-group="group_41515" data-tab="tab-group-41515-content-41516">Pulsar-admin API</div><div id="tab-group-41515-tab-41517" class="nav-link" data-group="group_41515" data-tab="tab-group-41515-content-41517">REST API</div><div id="tab-group-41515-tab-41518" class="nav-link" data-group="group_41515" data-tab="tab-group-41515-content-41518">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-41515-content-41517" class="tab-pane" data-group="group_41515" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-41515-content-41518" class="tab-pane" data-group="group_41515" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeOffloadPolicies(topic)<br /></code></pre>
@@ -683,9 +683,10 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 <p>默认情况下,Pulsar 主题由单个 broker 提供服务,这限制了主题的最大吞吐量。 <em>分区主题</em>可以跨越多个 broker,从而实现更高的吞吐量。</p>
 <p>你可以使用 Pulsar 客户端库发布到分区主题。 发布到分区主题时,必须指定路由模式。 如果在创建新的生产者时没有指定任何路由方式,则使用轮询路由模式。</p>
 <h3><a class="anchor" aria-hidden="true" id="routing-mode"></a><a href="#routing-mode" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. The routing mode determines which partition(internal topic) that each message should be published to.</p>
-<p>The following <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
- options are available.</p>
+<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. 路由模式决定了每条消息应该发往哪个分区(内部主题)。</p>
+<p>以下
+<a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
+ 选项是可用的。</p>
 <table>
 <thead>
 <tr><th style="text-align:left">发送模式</th><th style="text-align:left">说明</th></tr>
@@ -722,7 +723,7 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
     }
 }
 </code></pre>
-<p>With that implementation, you can send</p>
+<p>通过该实现,你可以发送:</p>
 <pre><code class="hljs css language-java">String pulsarBrokerRootUrl = <span class="hljs-string">"pulsar://localhost:6650"</span>;
 String topic = <span class="hljs-string">"persistent://my-tenant/my-cluster-my-namespace/my-topic"</span>;
 
@@ -734,7 +735,7 @@ Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = pulsarClient
 producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBytes());
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="使用-key-时如何选择分区"></a><a href="#使用-key-时如何选择分区" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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>If a message has a key, it supersedes the round robin routing policy. The following example illustrates how to choose the partition when using a key.</p>
+<p>If a message has a key, it supersedes the round robin routing policy. 以下示例说明当使用key时如何选择分区。</p>
 <pre><code class="hljs css language-java"><span class="hljs-comment">// 如果消息存在key,轮询路由策略将被替换</span>
         <span class="hljs-keyword">if</span> (msg.hasKey()) {
             <span class="hljs-keyword">return</span> signSafeMod(hash.makeHash(msg.getKey()), topicMetadata.numPartitions());
@@ -748,15 +749,15 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
 }
 </code></pre>
 <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>You can use <a href="/docs/zh-CN/2.7.4/admin-api-overview">Pulsar admin API</a> to create, check, and delete subscriptions.</p>
-<h3><a class="anchor" aria-hidden="true" id="create-subscription"></a><a href="#create-subscription" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
+<p>你可以使用 <a href="/docs/zh-CN/2.7.4/admin-api-overview">Pulsar admin Apl</a> 创建、检查和删除订阅。</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>You can create a subscription for a topic using one of the following methods.</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-41567-tab-41568" class="nav-link active" data-group="group_41567" data-tab="tab-group-41567-content-41568">pulsar-admin</div><div id="tab-group-41567-tab-41569" class="nav-link" data-group="group_41567" data-tab="tab-group-41567-content-41569">REST API</div><div id="tab-group-41567-tab-41570" class="nav-link" data-group="group_41567" data-tab="tab-group-41567-content-41570">Java</div></div><div class="tab-content"><div id="tab-gr [...]
 </span></div></div><div id="tab-group-41567-content-41569" class="tab-pane" data-group="group_41567" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/createSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>PUT</b> <i>/admin/v2/persistent/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-41567-content-41570" class="tab-pane" data-group="group_41567" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().createSubscription(topic, subscriptionName, MessageId.latest);<br /></code></pre>
 </span></div></div></div></div>
-### Get subscription
+### 获取订阅
 You can check all subscription names for a given topic using one of the following methods.
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-41571-tab-41572" class="nav-link active" data-group="group_41571" data-tab="tab-group-41571-content-41572">pulsar-admin</div><div id="tab-group-41571-tab-41573" class="nav-link" data-group="group_41571" data-tab="tab-group-41571-content-41573">REST API</div><div id="tab-group-41571-tab-41574" class="nav-link" data-group="group_41571" data-tab="tab-group-41571-content-41574">Java</div></div><div class="tab-content"><div id="tab-gr [...]
 </span></div></div><div id="tab-group-41571-content-41573" class="tab-pane" data-group="group_41571" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/getSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>GET</b> <i>/admin/v2/:schema/:tenant/:namespace/:topic/subscriptions</i></a>
@@ -769,7 +770,7 @@ When a subscription does not process messages any more, you can unsubscribe it u
 </span></div></div><div id="tab-group-41575-content-41577" class="tab-pane" data-group="group_41575" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/deleteSubscription?version=2.9.1&amp;apiVersion=v2"><b>DELETE</b> <i>/admin/v2/namespaces/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-41575-content-41578" class="tab-pane" data-group="group_41575" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().deleteSubscription(topic, subscriptionName);<br /></code></pre>
-</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.4/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.4/admin-api-functions"><span>Functions</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="#列出-to [...]
+</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.4/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.4/admin-api-functions"><span>Functions</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="#列出-to [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.7.4/cookbooks-retention-expiry.html b/content/docs/zh-CN/2.7.4/cookbooks-retention-expiry.html
index 5738afc..0c01103 100644
--- a/content/docs/zh-CN/2.7.4/cookbooks-retention-expiry.html
+++ b/content/docs/zh-CN/2.7.4/cookbooks-retention-expiry.html
@@ -156,7 +156,7 @@ To disable the retention policy, you need to set both the size and time limit to
 <h4><a class="anchor" aria-hidden="true" id="java"></a><a href="#java" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -282,7 +282,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <li><p><strong>Entry log rollover period</strong>: multiple ledgers in BookKeeper are interleaved into an <a href="https://bookkeeper.apache.org/docs/4.11.1/getting-started/concepts/#entry-logs">entry log</a>. 对于已删除的 ledger ,必须将条目日志 entry log 全部滚动。 Entry log 滚动周期是可配置的,但完全基于条目日志的大小。 详情参阅 <a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-settings">这里</a>。 Entry log 一经滚动,就可以进行垃圾回收 entry log。</p></li>
 <li><p><strong>Garbage collection interval</strong>: because entry logs have interleaved ledgers, to free up space, the entry logs need to be rewritten. 垃圾收集间隔是 BookKeeper 执行垃圾收集的频率 这与 entry log 的小压缩和大压缩有关。 详情参阅<a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-compaction-settings">这里</a>。</p></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.4/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.4/cookbooks-encryption"><span>加密</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="#设置保留策略 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.4/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.4/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.7.4/cookbooks-retention-expiry/index.html b/content/docs/zh-CN/2.7.4/cookbooks-retention-expiry/index.html
index 5738afc..0c01103 100644
--- a/content/docs/zh-CN/2.7.4/cookbooks-retention-expiry/index.html
+++ b/content/docs/zh-CN/2.7.4/cookbooks-retention-expiry/index.html
@@ -156,7 +156,7 @@ To disable the retention policy, you need to set both the size and time limit to
 <h4><a class="anchor" aria-hidden="true" id="java"></a><a href="#java" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -282,7 +282,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <li><p><strong>Entry log rollover period</strong>: multiple ledgers in BookKeeper are interleaved into an <a href="https://bookkeeper.apache.org/docs/4.11.1/getting-started/concepts/#entry-logs">entry log</a>. 对于已删除的 ledger ,必须将条目日志 entry log 全部滚动。 Entry log 滚动周期是可配置的,但完全基于条目日志的大小。 详情参阅 <a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-settings">这里</a>。 Entry log 一经滚动,就可以进行垃圾回收 entry log。</p></li>
 <li><p><strong>Garbage collection interval</strong>: because entry logs have interleaved ledgers, to free up space, the entry logs need to be rewritten. 垃圾收集间隔是 BookKeeper 执行垃圾收集的频率 这与 entry log 的小压缩和大压缩有关。 详情参阅<a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-compaction-settings">这里</a>。</p></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.4/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.4/cookbooks-encryption"><span>加密</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="#设置保留策略 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.7.4/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.7.4/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.8.0/admin-api-topics.html b/content/docs/zh-CN/2.8.0/admin-api-topics.html
index 36314d6..754e88f 100644
--- a/content/docs/zh-CN/2.8.0/admin-api-topics.html
+++ b/content/docs/zh-CN/2.8.0/admin-api-topics.html
@@ -416,7 +416,7 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-40848-content-40851" class="tab-pane" data-group="group_40848" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="设置去重快照间隔"></a><a href="#设置去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To set the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>设置主题级去重快照间隔,可以使用以下方法之一。</p>
 <blockquote>
 <p><strong>前提条件</strong> <code>brokerDeduplicationEnabled</code>必须设置为<code>true</code>。</p>
 </blockquote>
@@ -426,45 +426,45 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-40852-content-40855" class="tab-pane" data-group="group_40852" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setDeduplicationSnapshotInterval(topic, <span class="hljs-number">1000</span>)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="移除去重快照间隔"></a><a href="#移除去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To remove the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>移除主题级去重快照间隔,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-40856-tab-40857" class="nav-link active" data-group="group_40856" data-tab="tab-group-40856-content-40857">Pulsar-admin API</div><div id="tab-group-40856-tab-40858" class="nav-link" data-group="group_40856" data-tab="tab-group-40856-content-40858">REST API</div><div id="tab-group-40856-tab-40859" class="nav-link" data-group="group_40856" data-tab="tab-group-40856-content-40859">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-40856-content-40858" class="tab-pane" data-group="group_40856" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/deduplicationSnapshotInterval?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-40856-content-40859" class="tab-pane" data-group="group_40856" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-inactive-topic-policies"></a><a href="#configure-inactive-topic-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.5S1 [...]
-<h4><a class="anchor" aria-hidden="true" id="get-inactive-topic-policies"></a><a href="#get-inactive-topic-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 1 [...]
-<p>To get the topic-level inactive topic policies, use one of the following methods.</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.6 [...]
+<h4><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.6 [...]
+<p>获取主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-40860-tab-40861" class="nav-link active" data-group="group_40860" data-tab="tab-group-40860-content-40861">Pulsar-admin API</div><div id="tab-group-40860-tab-40862" class="nav-link" data-group="group_40860" data-tab="tab-group-40860-content-40862">REST API</div><div id="tab-group-40860-tab-40863" class="nav-link" data-group="group_40860" data-tab="tab-group-40860-content-40863">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-40860-content-40862" class="tab-pane" data-group="group_40860" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-40860-content-40863" class="tab-pane" data-group="group_40860" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-inactive-topic-policies"></a><a href="#set-inactive-topic-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 1 [...]
-<p>To set the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>设置主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-40864-tab-40865" class="nav-link active" data-group="group_40864" data-tab="tab-group-40864-content-40865">Pulsar-admin API</div><div id="tab-group-40864-tab-40866" class="nav-link" data-group="group_40864" data-tab="tab-group-40864-content-40866">REST API</div><div id="tab-group-40864-tab-40867" class="nav-link" data-group="group_40864" data-tab="tab-group-40864-content-40867">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-40864-content-40866" class="tab-pane" data-group="group_40864" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-40864-content-40867" class="tab-pane" data-group="group_40864" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setInactiveTopicPolicies(topic, inactiveTopicPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-inactive-topic-policies"></a><a href="#remove-inactive-topic-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 1 [...]
-<p>To remove the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>移除主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-40868-tab-40869" class="nav-link active" data-group="group_40868" data-tab="tab-group-40868-content-40869">Pulsar-admin API</div><div id="tab-group-40868-tab-40870" class="nav-link" data-group="group_40868" data-tab="tab-group-40868-content-40870">REST API</div><div id="tab-group-40868-tab-40871" class="nav-link" data-group="group_40868" data-tab="tab-group-40868-content-40871">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-40868-content-40870" class="tab-pane" data-group="group_40868" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-40868-content-40871" class="tab-pane" data-group="group_40868" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-offload-policies"></a><a href="#configure-offload-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 12H [...]
-<h4><a class="anchor" aria-hidden="true" id="get-offload-policies"></a><a href="#get-offload-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 [...]
-<p>To get the topic-level offload policies, use one of the following methods.</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. [...]
+<h4><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. [...]
+<p>获取主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-40872-tab-40873" class="nav-link active" data-group="group_40872" data-tab="tab-group-40872-content-40873">Pulsar-admin API</div><div id="tab-group-40872-tab-40874" class="nav-link" data-group="group_40872" data-tab="tab-group-40872-content-40874">REST API</div><div id="tab-group-40872-tab-40875" class="nav-link" data-group="group_40872" data-tab="tab-group-40872-content-40875">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-40872-content-40874" class="tab-pane" data-group="group_40872" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-40872-content-40875" class="tab-pane" data-group="group_40872" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getOffloadPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-offload-policies"></a><a href="#set-offload-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 [...]
-<p>To set the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>设置主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-40876-tab-40877" class="nav-link active" data-group="group_40876" data-tab="tab-group-40876-content-40877">Pulsar-admin API</div><div id="tab-group-40876-tab-40878" class="nav-link" data-group="group_40876" data-tab="tab-group-40876-content-40878">REST API</div><div id="tab-group-40876-tab-40879" class="nav-link" data-group="group_40876" data-tab="tab-group-40876-content-40879">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-40876-content-40878" class="tab-pane" data-group="group_40876" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-40876-content-40879" class="tab-pane" data-group="group_40876" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setOffloadPolicies(topic, offloadPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-offload-policies"></a><a href="#remove-offload-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 [...]
-<p>To remove the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>移除主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-40880-tab-40881" class="nav-link active" data-group="group_40880" data-tab="tab-group-40880-content-40881">Pulsar-admin API</div><div id="tab-group-40880-tab-40882" class="nav-link" data-group="group_40880" data-tab="tab-group-40880-content-40882">REST API</div><div id="tab-group-40880-tab-40883" class="nav-link" data-group="group_40880" data-tab="tab-group-40880-content-40883">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-40880-content-40882" class="tab-pane" data-group="group_40880" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-40880-content-40883" class="tab-pane" data-group="group_40880" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeOffloadPolicies(topic)<br /></code></pre>
@@ -710,9 +710,10 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 <p>默认情况下,Pulsar 主题由单个 broker 提供服务,这限制了主题的最大吞吐量。 <em>分区主题</em>可以跨越多个 broker,从而实现更高的吞吐量。</p>
 <p>你可以使用 Pulsar 客户端库发布到分区主题。 发布到分区主题时,必须指定路由模式。 如果在创建新的生产者时没有指定任何路由方式,则使用轮询路由模式。</p>
 <h3><a class="anchor" aria-hidden="true" id="routing-mode"></a><a href="#routing-mode" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. The routing mode determines which partition(internal topic) that each message should be published to.</p>
-<p>The following <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
- options are available.</p>
+<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. 路由模式决定了每条消息应该发往哪个分区(内部主题)。</p>
+<p>以下
+<a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
+ 选项是可用的。</p>
 <table>
 <thead>
 <tr><th style="text-align:left">发送模式</th><th style="text-align:left">说明</th></tr>
@@ -749,7 +750,7 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
     }
 }
 </code></pre>
-<p>With that implementation, you can send</p>
+<p>通过该实现,你可以发送:</p>
 <pre><code class="hljs css language-java">String pulsarBrokerRootUrl = <span class="hljs-string">"pulsar://localhost:6650"</span>;
 String topic = <span class="hljs-string">"persistent://my-tenant/my-cluster-my-namespace/my-topic"</span>;
 
@@ -761,7 +762,7 @@ Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = pulsarClient
 producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBytes());
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="使用-key-时如何选择分区"></a><a href="#使用-key-时如何选择分区" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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>If a message has a key, it supersedes the round robin routing policy. The following example illustrates how to choose the partition when using a key.</p>
+<p>If a message has a key, it supersedes the round robin routing policy. 以下示例说明当使用key时如何选择分区。</p>
 <pre><code class="hljs css language-java"><span class="hljs-comment">// 如果消息存在key,轮询路由策略将被替换</span>
         <span class="hljs-keyword">if</span> (msg.hasKey()) {
             <span class="hljs-keyword">return</span> signSafeMod(hash.makeHash(msg.getKey()), topicMetadata.numPartitions());
@@ -775,15 +776,15 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
 }
 </code></pre>
 <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>You can use <a href="/docs/zh-CN/2.8.0/admin-api-overview">Pulsar admin API</a> to create, check, and delete subscriptions.</p>
-<h3><a class="anchor" aria-hidden="true" id="create-subscription"></a><a href="#create-subscription" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
+<p>你可以使用 <a href="/docs/zh-CN/2.8.0/admin-api-overview">Pulsar admin Apl</a> 创建、检查和删除订阅。</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>You can create a subscription for a topic using one of the following methods.</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-40932-tab-40933" class="nav-link active" data-group="group_40932" data-tab="tab-group-40932-content-40933">pulsar-admin</div><div id="tab-group-40932-tab-40934" class="nav-link" data-group="group_40932" data-tab="tab-group-40932-content-40934">REST API</div><div id="tab-group-40932-tab-40935" class="nav-link" data-group="group_40932" data-tab="tab-group-40932-content-40935">Java</div></div><div class="tab-content"><div id="tab-gr [...]
 </span></div></div><div id="tab-group-40932-content-40934" class="tab-pane" data-group="group_40932" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/createSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>PUT</b> <i>/admin/v2/persistent/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-40932-content-40935" class="tab-pane" data-group="group_40932" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().createSubscription(topic, subscriptionName, MessageId.latest);<br /></code></pre>
 </span></div></div></div></div>
-### Get subscription
+### 获取订阅
 You can check all subscription names for a given topic using one of the following methods.
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-40936-tab-40937" class="nav-link active" data-group="group_40936" data-tab="tab-group-40936-content-40937">pulsar-admin</div><div id="tab-group-40936-tab-40938" class="nav-link" data-group="group_40936" data-tab="tab-group-40936-content-40938">REST API</div><div id="tab-group-40936-tab-40939" class="nav-link" data-group="group_40936" data-tab="tab-group-40936-content-40939">Java</div></div><div class="tab-content"><div id="tab-gr [...]
 </span></div></div><div id="tab-group-40936-content-40938" class="tab-pane" data-group="group_40936" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/getSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>GET</b> <i>/admin/v2/:schema/:tenant/:namespace/:topic/subscriptions</i></a>
@@ -796,7 +797,7 @@ When a subscription does not process messages any more, you can unsubscribe it u
 </span></div></div><div id="tab-group-40940-content-40942" class="tab-pane" data-group="group_40940" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/deleteSubscription?version=2.9.1&amp;apiVersion=v2"><b>DELETE</b> <i>/admin/v2/namespaces/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-40940-content-40943" class="tab-pane" data-group="group_40940" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().deleteSubscription(topic, subscriptionName);<br /></code></pre>
-</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.8.0/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.8.0/admin-api-functions"><span>Functions</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="#列出-to [...]
+</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.8.0/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.8.0/admin-api-functions"><span>Functions</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="#列出-to [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.8.0/admin-api-topics/index.html b/content/docs/zh-CN/2.8.0/admin-api-topics/index.html
index 36314d6..754e88f 100644
--- a/content/docs/zh-CN/2.8.0/admin-api-topics/index.html
+++ b/content/docs/zh-CN/2.8.0/admin-api-topics/index.html
@@ -416,7 +416,7 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-40848-content-40851" class="tab-pane" data-group="group_40848" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="设置去重快照间隔"></a><a href="#设置去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To set the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>设置主题级去重快照间隔,可以使用以下方法之一。</p>
 <blockquote>
 <p><strong>前提条件</strong> <code>brokerDeduplicationEnabled</code>必须设置为<code>true</code>。</p>
 </blockquote>
@@ -426,45 +426,45 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-40852-content-40855" class="tab-pane" data-group="group_40852" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setDeduplicationSnapshotInterval(topic, <span class="hljs-number">1000</span>)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="移除去重快照间隔"></a><a href="#移除去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To remove the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>移除主题级去重快照间隔,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-40856-tab-40857" class="nav-link active" data-group="group_40856" data-tab="tab-group-40856-content-40857">Pulsar-admin API</div><div id="tab-group-40856-tab-40858" class="nav-link" data-group="group_40856" data-tab="tab-group-40856-content-40858">REST API</div><div id="tab-group-40856-tab-40859" class="nav-link" data-group="group_40856" data-tab="tab-group-40856-content-40859">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-40856-content-40858" class="tab-pane" data-group="group_40856" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/deduplicationSnapshotInterval?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-40856-content-40859" class="tab-pane" data-group="group_40856" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-inactive-topic-policies"></a><a href="#configure-inactive-topic-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.5S1 [...]
-<h4><a class="anchor" aria-hidden="true" id="get-inactive-topic-policies"></a><a href="#get-inactive-topic-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 1 [...]
-<p>To get the topic-level inactive topic policies, use one of the following methods.</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.6 [...]
+<h4><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.6 [...]
+<p>获取主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-40860-tab-40861" class="nav-link active" data-group="group_40860" data-tab="tab-group-40860-content-40861">Pulsar-admin API</div><div id="tab-group-40860-tab-40862" class="nav-link" data-group="group_40860" data-tab="tab-group-40860-content-40862">REST API</div><div id="tab-group-40860-tab-40863" class="nav-link" data-group="group_40860" data-tab="tab-group-40860-content-40863">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-40860-content-40862" class="tab-pane" data-group="group_40860" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-40860-content-40863" class="tab-pane" data-group="group_40860" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-inactive-topic-policies"></a><a href="#set-inactive-topic-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 1 [...]
-<p>To set the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>设置主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-40864-tab-40865" class="nav-link active" data-group="group_40864" data-tab="tab-group-40864-content-40865">Pulsar-admin API</div><div id="tab-group-40864-tab-40866" class="nav-link" data-group="group_40864" data-tab="tab-group-40864-content-40866">REST API</div><div id="tab-group-40864-tab-40867" class="nav-link" data-group="group_40864" data-tab="tab-group-40864-content-40867">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-40864-content-40866" class="tab-pane" data-group="group_40864" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-40864-content-40867" class="tab-pane" data-group="group_40864" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setInactiveTopicPolicies(topic, inactiveTopicPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-inactive-topic-policies"></a><a href="#remove-inactive-topic-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 1 [...]
-<p>To remove the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>移除主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-40868-tab-40869" class="nav-link active" data-group="group_40868" data-tab="tab-group-40868-content-40869">Pulsar-admin API</div><div id="tab-group-40868-tab-40870" class="nav-link" data-group="group_40868" data-tab="tab-group-40868-content-40870">REST API</div><div id="tab-group-40868-tab-40871" class="nav-link" data-group="group_40868" data-tab="tab-group-40868-content-40871">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-40868-content-40870" class="tab-pane" data-group="group_40868" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-40868-content-40871" class="tab-pane" data-group="group_40868" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-offload-policies"></a><a href="#configure-offload-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 12H [...]
-<h4><a class="anchor" aria-hidden="true" id="get-offload-policies"></a><a href="#get-offload-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 [...]
-<p>To get the topic-level offload policies, use one of the following methods.</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. [...]
+<h4><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. [...]
+<p>获取主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-40872-tab-40873" class="nav-link active" data-group="group_40872" data-tab="tab-group-40872-content-40873">Pulsar-admin API</div><div id="tab-group-40872-tab-40874" class="nav-link" data-group="group_40872" data-tab="tab-group-40872-content-40874">REST API</div><div id="tab-group-40872-tab-40875" class="nav-link" data-group="group_40872" data-tab="tab-group-40872-content-40875">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-40872-content-40874" class="tab-pane" data-group="group_40872" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-40872-content-40875" class="tab-pane" data-group="group_40872" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getOffloadPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-offload-policies"></a><a href="#set-offload-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 [...]
-<p>To set the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>设置主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-40876-tab-40877" class="nav-link active" data-group="group_40876" data-tab="tab-group-40876-content-40877">Pulsar-admin API</div><div id="tab-group-40876-tab-40878" class="nav-link" data-group="group_40876" data-tab="tab-group-40876-content-40878">REST API</div><div id="tab-group-40876-tab-40879" class="nav-link" data-group="group_40876" data-tab="tab-group-40876-content-40879">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-40876-content-40878" class="tab-pane" data-group="group_40876" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-40876-content-40879" class="tab-pane" data-group="group_40876" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setOffloadPolicies(topic, offloadPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-offload-policies"></a><a href="#remove-offload-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 [...]
-<p>To remove the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>移除主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-40880-tab-40881" class="nav-link active" data-group="group_40880" data-tab="tab-group-40880-content-40881">Pulsar-admin API</div><div id="tab-group-40880-tab-40882" class="nav-link" data-group="group_40880" data-tab="tab-group-40880-content-40882">REST API</div><div id="tab-group-40880-tab-40883" class="nav-link" data-group="group_40880" data-tab="tab-group-40880-content-40883">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-40880-content-40882" class="tab-pane" data-group="group_40880" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-40880-content-40883" class="tab-pane" data-group="group_40880" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeOffloadPolicies(topic)<br /></code></pre>
@@ -710,9 +710,10 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 <p>默认情况下,Pulsar 主题由单个 broker 提供服务,这限制了主题的最大吞吐量。 <em>分区主题</em>可以跨越多个 broker,从而实现更高的吞吐量。</p>
 <p>你可以使用 Pulsar 客户端库发布到分区主题。 发布到分区主题时,必须指定路由模式。 如果在创建新的生产者时没有指定任何路由方式,则使用轮询路由模式。</p>
 <h3><a class="anchor" aria-hidden="true" id="routing-mode"></a><a href="#routing-mode" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. The routing mode determines which partition(internal topic) that each message should be published to.</p>
-<p>The following <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
- options are available.</p>
+<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. 路由模式决定了每条消息应该发往哪个分区(内部主题)。</p>
+<p>以下
+<a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
+ 选项是可用的。</p>
 <table>
 <thead>
 <tr><th style="text-align:left">发送模式</th><th style="text-align:left">说明</th></tr>
@@ -749,7 +750,7 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
     }
 }
 </code></pre>
-<p>With that implementation, you can send</p>
+<p>通过该实现,你可以发送:</p>
 <pre><code class="hljs css language-java">String pulsarBrokerRootUrl = <span class="hljs-string">"pulsar://localhost:6650"</span>;
 String topic = <span class="hljs-string">"persistent://my-tenant/my-cluster-my-namespace/my-topic"</span>;
 
@@ -761,7 +762,7 @@ Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = pulsarClient
 producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBytes());
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="使用-key-时如何选择分区"></a><a href="#使用-key-时如何选择分区" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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>If a message has a key, it supersedes the round robin routing policy. The following example illustrates how to choose the partition when using a key.</p>
+<p>If a message has a key, it supersedes the round robin routing policy. 以下示例说明当使用key时如何选择分区。</p>
 <pre><code class="hljs css language-java"><span class="hljs-comment">// 如果消息存在key,轮询路由策略将被替换</span>
         <span class="hljs-keyword">if</span> (msg.hasKey()) {
             <span class="hljs-keyword">return</span> signSafeMod(hash.makeHash(msg.getKey()), topicMetadata.numPartitions());
@@ -775,15 +776,15 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
 }
 </code></pre>
 <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>You can use <a href="/docs/zh-CN/2.8.0/admin-api-overview">Pulsar admin API</a> to create, check, and delete subscriptions.</p>
-<h3><a class="anchor" aria-hidden="true" id="create-subscription"></a><a href="#create-subscription" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
+<p>你可以使用 <a href="/docs/zh-CN/2.8.0/admin-api-overview">Pulsar admin Apl</a> 创建、检查和删除订阅。</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>You can create a subscription for a topic using one of the following methods.</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-40932-tab-40933" class="nav-link active" data-group="group_40932" data-tab="tab-group-40932-content-40933">pulsar-admin</div><div id="tab-group-40932-tab-40934" class="nav-link" data-group="group_40932" data-tab="tab-group-40932-content-40934">REST API</div><div id="tab-group-40932-tab-40935" class="nav-link" data-group="group_40932" data-tab="tab-group-40932-content-40935">Java</div></div><div class="tab-content"><div id="tab-gr [...]
 </span></div></div><div id="tab-group-40932-content-40934" class="tab-pane" data-group="group_40932" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/createSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>PUT</b> <i>/admin/v2/persistent/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-40932-content-40935" class="tab-pane" data-group="group_40932" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().createSubscription(topic, subscriptionName, MessageId.latest);<br /></code></pre>
 </span></div></div></div></div>
-### Get subscription
+### 获取订阅
 You can check all subscription names for a given topic using one of the following methods.
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-40936-tab-40937" class="nav-link active" data-group="group_40936" data-tab="tab-group-40936-content-40937">pulsar-admin</div><div id="tab-group-40936-tab-40938" class="nav-link" data-group="group_40936" data-tab="tab-group-40936-content-40938">REST API</div><div id="tab-group-40936-tab-40939" class="nav-link" data-group="group_40936" data-tab="tab-group-40936-content-40939">Java</div></div><div class="tab-content"><div id="tab-gr [...]
 </span></div></div><div id="tab-group-40936-content-40938" class="tab-pane" data-group="group_40936" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/getSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>GET</b> <i>/admin/v2/:schema/:tenant/:namespace/:topic/subscriptions</i></a>
@@ -796,7 +797,7 @@ When a subscription does not process messages any more, you can unsubscribe it u
 </span></div></div><div id="tab-group-40940-content-40942" class="tab-pane" data-group="group_40940" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/deleteSubscription?version=2.9.1&amp;apiVersion=v2"><b>DELETE</b> <i>/admin/v2/namespaces/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-40940-content-40943" class="tab-pane" data-group="group_40940" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().deleteSubscription(topic, subscriptionName);<br /></code></pre>
-</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.8.0/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.8.0/admin-api-functions"><span>Functions</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="#列出-to [...]
+</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.8.0/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.8.0/admin-api-functions"><span>Functions</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="#列出-to [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.8.0/cookbooks-retention-expiry.html b/content/docs/zh-CN/2.8.0/cookbooks-retention-expiry.html
index 238bf57..fcd8a4b 100644
--- a/content/docs/zh-CN/2.8.0/cookbooks-retention-expiry.html
+++ b/content/docs/zh-CN/2.8.0/cookbooks-retention-expiry.html
@@ -156,7 +156,7 @@ To disable the retention policy, you need to set both the size and time limit to
 <h4><a class="anchor" aria-hidden="true" id="java"></a><a href="#java" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -283,7 +283,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <li><p><strong>Entry log rollover period</strong>: multiple ledgers in BookKeeper are interleaved into an <a href="https://bookkeeper.apache.org/docs/4.11.1/getting-started/concepts/#entry-logs">entry log</a>. 对于已删除的 ledger ,必须将条目日志 entry log 全部滚动。 Entry log 滚动周期是可配置的,但完全基于条目日志的大小。 详情参阅 <a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-settings">这里</a>。 Entry log 一经滚动,就可以进行垃圾回收 entry log。</p></li>
 <li><p><strong>Garbage collection interval</strong>: because entry logs have interleaved ledgers, to free up space, the entry logs need to be rewritten. 垃圾收集间隔是 BookKeeper 执行垃圾收集的频率 这与 entry log 的小压缩和大压缩有关。 详情参阅<a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-compaction-settings">这里</a>。</p></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.8.0/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.8.0/cookbooks-encryption"><span>加密</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="#设置保留策略 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.8.0/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.8.0/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.8.0/cookbooks-retention-expiry/index.html b/content/docs/zh-CN/2.8.0/cookbooks-retention-expiry/index.html
index 238bf57..fcd8a4b 100644
--- a/content/docs/zh-CN/2.8.0/cookbooks-retention-expiry/index.html
+++ b/content/docs/zh-CN/2.8.0/cookbooks-retention-expiry/index.html
@@ -156,7 +156,7 @@ To disable the retention policy, you need to set both the size and time limit to
 <h4><a class="anchor" aria-hidden="true" id="java"></a><a href="#java" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -283,7 +283,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <li><p><strong>Entry log rollover period</strong>: multiple ledgers in BookKeeper are interleaved into an <a href="https://bookkeeper.apache.org/docs/4.11.1/getting-started/concepts/#entry-logs">entry log</a>. 对于已删除的 ledger ,必须将条目日志 entry log 全部滚动。 Entry log 滚动周期是可配置的,但完全基于条目日志的大小。 详情参阅 <a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-settings">这里</a>。 Entry log 一经滚动,就可以进行垃圾回收 entry log。</p></li>
 <li><p><strong>Garbage collection interval</strong>: because entry logs have interleaved ledgers, to free up space, the entry logs need to be rewritten. 垃圾收集间隔是 BookKeeper 执行垃圾收集的频率 这与 entry log 的小压缩和大压缩有关。 详情参阅<a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-compaction-settings">这里</a>。</p></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.8.0/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.8.0/cookbooks-encryption"><span>加密</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="#设置保留策略 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.8.0/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.8.0/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.8.1/admin-api-topics.html b/content/docs/zh-CN/2.8.1/admin-api-topics.html
index cdaee64..2e8a61f 100644
--- a/content/docs/zh-CN/2.8.1/admin-api-topics.html
+++ b/content/docs/zh-CN/2.8.1/admin-api-topics.html
@@ -416,7 +416,7 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-40196-content-40199" class="tab-pane" data-group="group_40196" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="设置去重快照间隔"></a><a href="#设置去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To set the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>设置主题级去重快照间隔,可以使用以下方法之一。</p>
 <blockquote>
 <p><strong>前提条件</strong> <code>brokerDeduplicationEnabled</code>必须设置为<code>true</code>。</p>
 </blockquote>
@@ -426,45 +426,45 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-40200-content-40203" class="tab-pane" data-group="group_40200" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setDeduplicationSnapshotInterval(topic, <span class="hljs-number">1000</span>)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="移除去重快照间隔"></a><a href="#移除去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To remove the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>移除主题级去重快照间隔,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-40204-tab-40205" class="nav-link active" data-group="group_40204" data-tab="tab-group-40204-content-40205">Pulsar-admin API</div><div id="tab-group-40204-tab-40206" class="nav-link" data-group="group_40204" data-tab="tab-group-40204-content-40206">REST API</div><div id="tab-group-40204-tab-40207" class="nav-link" data-group="group_40204" data-tab="tab-group-40204-content-40207">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-40204-content-40206" class="tab-pane" data-group="group_40204" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/deduplicationSnapshotInterval?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-40204-content-40207" class="tab-pane" data-group="group_40204" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-inactive-topic-policies"></a><a href="#configure-inactive-topic-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.5S1 [...]
-<h4><a class="anchor" aria-hidden="true" id="get-inactive-topic-policies"></a><a href="#get-inactive-topic-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 1 [...]
-<p>To get the topic-level inactive topic policies, use one of the following methods.</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.6 [...]
+<h4><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.6 [...]
+<p>获取主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-40208-tab-40209" class="nav-link active" data-group="group_40208" data-tab="tab-group-40208-content-40209">Pulsar-admin API</div><div id="tab-group-40208-tab-40210" class="nav-link" data-group="group_40208" data-tab="tab-group-40208-content-40210">REST API</div><div id="tab-group-40208-tab-40211" class="nav-link" data-group="group_40208" data-tab="tab-group-40208-content-40211">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-40208-content-40210" class="tab-pane" data-group="group_40208" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-40208-content-40211" class="tab-pane" data-group="group_40208" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-inactive-topic-policies"></a><a href="#set-inactive-topic-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 1 [...]
-<p>To set the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>设置主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-40212-tab-40213" class="nav-link active" data-group="group_40212" data-tab="tab-group-40212-content-40213">Pulsar-admin API</div><div id="tab-group-40212-tab-40214" class="nav-link" data-group="group_40212" data-tab="tab-group-40212-content-40214">REST API</div><div id="tab-group-40212-tab-40215" class="nav-link" data-group="group_40212" data-tab="tab-group-40212-content-40215">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-40212-content-40214" class="tab-pane" data-group="group_40212" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-40212-content-40215" class="tab-pane" data-group="group_40212" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setInactiveTopicPolicies(topic, inactiveTopicPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-inactive-topic-policies"></a><a href="#remove-inactive-topic-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 1 [...]
-<p>To remove the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>移除主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-40216-tab-40217" class="nav-link active" data-group="group_40216" data-tab="tab-group-40216-content-40217">Pulsar-admin API</div><div id="tab-group-40216-tab-40218" class="nav-link" data-group="group_40216" data-tab="tab-group-40216-content-40218">REST API</div><div id="tab-group-40216-tab-40219" class="nav-link" data-group="group_40216" data-tab="tab-group-40216-content-40219">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-40216-content-40218" class="tab-pane" data-group="group_40216" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-40216-content-40219" class="tab-pane" data-group="group_40216" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-offload-policies"></a><a href="#configure-offload-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 12H [...]
-<h4><a class="anchor" aria-hidden="true" id="get-offload-policies"></a><a href="#get-offload-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 [...]
-<p>To get the topic-level offload policies, use one of the following methods.</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. [...]
+<h4><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. [...]
+<p>获取主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-40220-tab-40221" class="nav-link active" data-group="group_40220" data-tab="tab-group-40220-content-40221">Pulsar-admin API</div><div id="tab-group-40220-tab-40222" class="nav-link" data-group="group_40220" data-tab="tab-group-40220-content-40222">REST API</div><div id="tab-group-40220-tab-40223" class="nav-link" data-group="group_40220" data-tab="tab-group-40220-content-40223">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-40220-content-40222" class="tab-pane" data-group="group_40220" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-40220-content-40223" class="tab-pane" data-group="group_40220" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getOffloadPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-offload-policies"></a><a href="#set-offload-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 [...]
-<p>To set the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>设置主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-40224-tab-40225" class="nav-link active" data-group="group_40224" data-tab="tab-group-40224-content-40225">Pulsar-admin API</div><div id="tab-group-40224-tab-40226" class="nav-link" data-group="group_40224" data-tab="tab-group-40224-content-40226">REST API</div><div id="tab-group-40224-tab-40227" class="nav-link" data-group="group_40224" data-tab="tab-group-40224-content-40227">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-40224-content-40226" class="tab-pane" data-group="group_40224" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-40224-content-40227" class="tab-pane" data-group="group_40224" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setOffloadPolicies(topic, offloadPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-offload-policies"></a><a href="#remove-offload-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 [...]
-<p>To remove the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>移除主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-40228-tab-40229" class="nav-link active" data-group="group_40228" data-tab="tab-group-40228-content-40229">Pulsar-admin API</div><div id="tab-group-40228-tab-40230" class="nav-link" data-group="group_40228" data-tab="tab-group-40228-content-40230">REST API</div><div id="tab-group-40228-tab-40231" class="nav-link" data-group="group_40228" data-tab="tab-group-40228-content-40231">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-40228-content-40230" class="tab-pane" data-group="group_40228" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-40228-content-40231" class="tab-pane" data-group="group_40228" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeOffloadPolicies(topic)<br /></code></pre>
@@ -710,9 +710,10 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 <p>默认情况下,Pulsar 主题由单个 broker 提供服务,这限制了主题的最大吞吐量。 <em>分区主题</em>可以跨越多个 broker,从而实现更高的吞吐量。</p>
 <p>你可以使用 Pulsar 客户端库发布到分区主题。 发布到分区主题时,必须指定路由模式。 如果在创建新的生产者时没有指定任何路由方式,则使用轮询路由模式。</p>
 <h3><a class="anchor" aria-hidden="true" id="routing-mode"></a><a href="#routing-mode" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. The routing mode determines which partition(internal topic) that each message should be published to.</p>
-<p>The following <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
- options are available.</p>
+<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. 路由模式决定了每条消息应该发往哪个分区(内部主题)。</p>
+<p>以下
+<a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
+ 选项是可用的。</p>
 <table>
 <thead>
 <tr><th style="text-align:left">发送模式</th><th style="text-align:left">说明</th></tr>
@@ -749,7 +750,7 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
     }
 }
 </code></pre>
-<p>With that implementation, you can send</p>
+<p>通过该实现,你可以发送:</p>
 <pre><code class="hljs css language-java">String pulsarBrokerRootUrl = <span class="hljs-string">"pulsar://localhost:6650"</span>;
 String topic = <span class="hljs-string">"persistent://my-tenant/my-cluster-my-namespace/my-topic"</span>;
 
@@ -761,7 +762,7 @@ Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = pulsarClient
 producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBytes());
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="使用-key-时如何选择分区"></a><a href="#使用-key-时如何选择分区" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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>If a message has a key, it supersedes the round robin routing policy. The following example illustrates how to choose the partition when using a key.</p>
+<p>If a message has a key, it supersedes the round robin routing policy. 以下示例说明当使用key时如何选择分区。</p>
 <pre><code class="hljs css language-java"><span class="hljs-comment">// 如果消息存在key,轮询路由策略将被替换</span>
         <span class="hljs-keyword">if</span> (msg.hasKey()) {
             <span class="hljs-keyword">return</span> signSafeMod(hash.makeHash(msg.getKey()), topicMetadata.numPartitions());
@@ -775,15 +776,15 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
 }
 </code></pre>
 <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>You can use <a href="/docs/zh-CN/2.8.1/admin-api-overview">Pulsar admin API</a> to create, check, and delete subscriptions.</p>
-<h3><a class="anchor" aria-hidden="true" id="create-subscription"></a><a href="#create-subscription" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
+<p>你可以使用 <a href="/docs/zh-CN/2.8.1/admin-api-overview">Pulsar admin Apl</a> 创建、检查和删除订阅。</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>You can create a subscription for a topic using one of the following methods.</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-40280-tab-40281" class="nav-link active" data-group="group_40280" data-tab="tab-group-40280-content-40281">pulsar-admin</div><div id="tab-group-40280-tab-40282" class="nav-link" data-group="group_40280" data-tab="tab-group-40280-content-40282">REST API</div><div id="tab-group-40280-tab-40283" class="nav-link" data-group="group_40280" data-tab="tab-group-40280-content-40283">Java</div></div><div class="tab-content"><div id="tab-gr [...]
 </span></div></div><div id="tab-group-40280-content-40282" class="tab-pane" data-group="group_40280" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/createSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>PUT</b> <i>/admin/v2/persistent/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-40280-content-40283" class="tab-pane" data-group="group_40280" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().createSubscription(topic, subscriptionName, MessageId.latest);<br /></code></pre>
 </span></div></div></div></div>
-### Get subscription
+### 获取订阅
 You can check all subscription names for a given topic using one of the following methods.
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-40284-tab-40285" class="nav-link active" data-group="group_40284" data-tab="tab-group-40284-content-40285">pulsar-admin</div><div id="tab-group-40284-tab-40286" class="nav-link" data-group="group_40284" data-tab="tab-group-40284-content-40286">REST API</div><div id="tab-group-40284-tab-40287" class="nav-link" data-group="group_40284" data-tab="tab-group-40284-content-40287">Java</div></div><div class="tab-content"><div id="tab-gr [...]
 </span></div></div><div id="tab-group-40284-content-40286" class="tab-pane" data-group="group_40284" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/getSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>GET</b> <i>/admin/v2/:schema/:tenant/:namespace/:topic/subscriptions</i></a>
@@ -796,7 +797,7 @@ When a subscription does not process messages any more, you can unsubscribe it u
 </span></div></div><div id="tab-group-40288-content-40290" class="tab-pane" data-group="group_40288" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/deleteSubscription?version=2.9.1&amp;apiVersion=v2"><b>DELETE</b> <i>/admin/v2/namespaces/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-40288-content-40291" class="tab-pane" data-group="group_40288" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().deleteSubscription(topic, subscriptionName);<br /></code></pre>
-</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.8.1/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.8.1/admin-api-functions"><span>Functions</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="#列出-to [...]
+</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.8.1/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.8.1/admin-api-functions"><span>Functions</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="#列出-to [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.8.1/admin-api-topics/index.html b/content/docs/zh-CN/2.8.1/admin-api-topics/index.html
index cdaee64..2e8a61f 100644
--- a/content/docs/zh-CN/2.8.1/admin-api-topics/index.html
+++ b/content/docs/zh-CN/2.8.1/admin-api-topics/index.html
@@ -416,7 +416,7 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-40196-content-40199" class="tab-pane" data-group="group_40196" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="设置去重快照间隔"></a><a href="#设置去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To set the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>设置主题级去重快照间隔,可以使用以下方法之一。</p>
 <blockquote>
 <p><strong>前提条件</strong> <code>brokerDeduplicationEnabled</code>必须设置为<code>true</code>。</p>
 </blockquote>
@@ -426,45 +426,45 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-40200-content-40203" class="tab-pane" data-group="group_40200" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setDeduplicationSnapshotInterval(topic, <span class="hljs-number">1000</span>)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="移除去重快照间隔"></a><a href="#移除去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To remove the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>移除主题级去重快照间隔,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-40204-tab-40205" class="nav-link active" data-group="group_40204" data-tab="tab-group-40204-content-40205">Pulsar-admin API</div><div id="tab-group-40204-tab-40206" class="nav-link" data-group="group_40204" data-tab="tab-group-40204-content-40206">REST API</div><div id="tab-group-40204-tab-40207" class="nav-link" data-group="group_40204" data-tab="tab-group-40204-content-40207">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-40204-content-40206" class="tab-pane" data-group="group_40204" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/deduplicationSnapshotInterval?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-40204-content-40207" class="tab-pane" data-group="group_40204" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-inactive-topic-policies"></a><a href="#configure-inactive-topic-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.5S1 [...]
-<h4><a class="anchor" aria-hidden="true" id="get-inactive-topic-policies"></a><a href="#get-inactive-topic-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 1 [...]
-<p>To get the topic-level inactive topic policies, use one of the following methods.</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.6 [...]
+<h4><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.6 [...]
+<p>获取主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-40208-tab-40209" class="nav-link active" data-group="group_40208" data-tab="tab-group-40208-content-40209">Pulsar-admin API</div><div id="tab-group-40208-tab-40210" class="nav-link" data-group="group_40208" data-tab="tab-group-40208-content-40210">REST API</div><div id="tab-group-40208-tab-40211" class="nav-link" data-group="group_40208" data-tab="tab-group-40208-content-40211">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-40208-content-40210" class="tab-pane" data-group="group_40208" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-40208-content-40211" class="tab-pane" data-group="group_40208" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-inactive-topic-policies"></a><a href="#set-inactive-topic-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 1 [...]
-<p>To set the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>设置主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-40212-tab-40213" class="nav-link active" data-group="group_40212" data-tab="tab-group-40212-content-40213">Pulsar-admin API</div><div id="tab-group-40212-tab-40214" class="nav-link" data-group="group_40212" data-tab="tab-group-40212-content-40214">REST API</div><div id="tab-group-40212-tab-40215" class="nav-link" data-group="group_40212" data-tab="tab-group-40212-content-40215">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-40212-content-40214" class="tab-pane" data-group="group_40212" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-40212-content-40215" class="tab-pane" data-group="group_40212" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setInactiveTopicPolicies(topic, inactiveTopicPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-inactive-topic-policies"></a><a href="#remove-inactive-topic-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 1 [...]
-<p>To remove the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>移除主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-40216-tab-40217" class="nav-link active" data-group="group_40216" data-tab="tab-group-40216-content-40217">Pulsar-admin API</div><div id="tab-group-40216-tab-40218" class="nav-link" data-group="group_40216" data-tab="tab-group-40216-content-40218">REST API</div><div id="tab-group-40216-tab-40219" class="nav-link" data-group="group_40216" data-tab="tab-group-40216-content-40219">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-40216-content-40218" class="tab-pane" data-group="group_40216" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-40216-content-40219" class="tab-pane" data-group="group_40216" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-offload-policies"></a><a href="#configure-offload-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 12H [...]
-<h4><a class="anchor" aria-hidden="true" id="get-offload-policies"></a><a href="#get-offload-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 [...]
-<p>To get the topic-level offload policies, use one of the following methods.</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. [...]
+<h4><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. [...]
+<p>获取主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-40220-tab-40221" class="nav-link active" data-group="group_40220" data-tab="tab-group-40220-content-40221">Pulsar-admin API</div><div id="tab-group-40220-tab-40222" class="nav-link" data-group="group_40220" data-tab="tab-group-40220-content-40222">REST API</div><div id="tab-group-40220-tab-40223" class="nav-link" data-group="group_40220" data-tab="tab-group-40220-content-40223">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-40220-content-40222" class="tab-pane" data-group="group_40220" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-40220-content-40223" class="tab-pane" data-group="group_40220" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getOffloadPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-offload-policies"></a><a href="#set-offload-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 [...]
-<p>To set the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>设置主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-40224-tab-40225" class="nav-link active" data-group="group_40224" data-tab="tab-group-40224-content-40225">Pulsar-admin API</div><div id="tab-group-40224-tab-40226" class="nav-link" data-group="group_40224" data-tab="tab-group-40224-content-40226">REST API</div><div id="tab-group-40224-tab-40227" class="nav-link" data-group="group_40224" data-tab="tab-group-40224-content-40227">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-40224-content-40226" class="tab-pane" data-group="group_40224" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-40224-content-40227" class="tab-pane" data-group="group_40224" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setOffloadPolicies(topic, offloadPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-offload-policies"></a><a href="#remove-offload-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 [...]
-<p>To remove the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>移除主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-40228-tab-40229" class="nav-link active" data-group="group_40228" data-tab="tab-group-40228-content-40229">Pulsar-admin API</div><div id="tab-group-40228-tab-40230" class="nav-link" data-group="group_40228" data-tab="tab-group-40228-content-40230">REST API</div><div id="tab-group-40228-tab-40231" class="nav-link" data-group="group_40228" data-tab="tab-group-40228-content-40231">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-40228-content-40230" class="tab-pane" data-group="group_40228" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-40228-content-40231" class="tab-pane" data-group="group_40228" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeOffloadPolicies(topic)<br /></code></pre>
@@ -710,9 +710,10 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 <p>默认情况下,Pulsar 主题由单个 broker 提供服务,这限制了主题的最大吞吐量。 <em>分区主题</em>可以跨越多个 broker,从而实现更高的吞吐量。</p>
 <p>你可以使用 Pulsar 客户端库发布到分区主题。 发布到分区主题时,必须指定路由模式。 如果在创建新的生产者时没有指定任何路由方式,则使用轮询路由模式。</p>
 <h3><a class="anchor" aria-hidden="true" id="routing-mode"></a><a href="#routing-mode" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. The routing mode determines which partition(internal topic) that each message should be published to.</p>
-<p>The following <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
- options are available.</p>
+<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. 路由模式决定了每条消息应该发往哪个分区(内部主题)。</p>
+<p>以下
+<a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
+ 选项是可用的。</p>
 <table>
 <thead>
 <tr><th style="text-align:left">发送模式</th><th style="text-align:left">说明</th></tr>
@@ -749,7 +750,7 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
     }
 }
 </code></pre>
-<p>With that implementation, you can send</p>
+<p>通过该实现,你可以发送:</p>
 <pre><code class="hljs css language-java">String pulsarBrokerRootUrl = <span class="hljs-string">"pulsar://localhost:6650"</span>;
 String topic = <span class="hljs-string">"persistent://my-tenant/my-cluster-my-namespace/my-topic"</span>;
 
@@ -761,7 +762,7 @@ Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = pulsarClient
 producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBytes());
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="使用-key-时如何选择分区"></a><a href="#使用-key-时如何选择分区" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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>If a message has a key, it supersedes the round robin routing policy. The following example illustrates how to choose the partition when using a key.</p>
+<p>If a message has a key, it supersedes the round robin routing policy. 以下示例说明当使用key时如何选择分区。</p>
 <pre><code class="hljs css language-java"><span class="hljs-comment">// 如果消息存在key,轮询路由策略将被替换</span>
         <span class="hljs-keyword">if</span> (msg.hasKey()) {
             <span class="hljs-keyword">return</span> signSafeMod(hash.makeHash(msg.getKey()), topicMetadata.numPartitions());
@@ -775,15 +776,15 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
 }
 </code></pre>
 <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>You can use <a href="/docs/zh-CN/2.8.1/admin-api-overview">Pulsar admin API</a> to create, check, and delete subscriptions.</p>
-<h3><a class="anchor" aria-hidden="true" id="create-subscription"></a><a href="#create-subscription" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
+<p>你可以使用 <a href="/docs/zh-CN/2.8.1/admin-api-overview">Pulsar admin Apl</a> 创建、检查和删除订阅。</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>You can create a subscription for a topic using one of the following methods.</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-40280-tab-40281" class="nav-link active" data-group="group_40280" data-tab="tab-group-40280-content-40281">pulsar-admin</div><div id="tab-group-40280-tab-40282" class="nav-link" data-group="group_40280" data-tab="tab-group-40280-content-40282">REST API</div><div id="tab-group-40280-tab-40283" class="nav-link" data-group="group_40280" data-tab="tab-group-40280-content-40283">Java</div></div><div class="tab-content"><div id="tab-gr [...]
 </span></div></div><div id="tab-group-40280-content-40282" class="tab-pane" data-group="group_40280" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/createSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>PUT</b> <i>/admin/v2/persistent/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-40280-content-40283" class="tab-pane" data-group="group_40280" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().createSubscription(topic, subscriptionName, MessageId.latest);<br /></code></pre>
 </span></div></div></div></div>
-### Get subscription
+### 获取订阅
 You can check all subscription names for a given topic using one of the following methods.
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-40284-tab-40285" class="nav-link active" data-group="group_40284" data-tab="tab-group-40284-content-40285">pulsar-admin</div><div id="tab-group-40284-tab-40286" class="nav-link" data-group="group_40284" data-tab="tab-group-40284-content-40286">REST API</div><div id="tab-group-40284-tab-40287" class="nav-link" data-group="group_40284" data-tab="tab-group-40284-content-40287">Java</div></div><div class="tab-content"><div id="tab-gr [...]
 </span></div></div><div id="tab-group-40284-content-40286" class="tab-pane" data-group="group_40284" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/getSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>GET</b> <i>/admin/v2/:schema/:tenant/:namespace/:topic/subscriptions</i></a>
@@ -796,7 +797,7 @@ When a subscription does not process messages any more, you can unsubscribe it u
 </span></div></div><div id="tab-group-40288-content-40290" class="tab-pane" data-group="group_40288" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/deleteSubscription?version=2.9.1&amp;apiVersion=v2"><b>DELETE</b> <i>/admin/v2/namespaces/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-40288-content-40291" class="tab-pane" data-group="group_40288" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().deleteSubscription(topic, subscriptionName);<br /></code></pre>
-</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.8.1/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.8.1/admin-api-functions"><span>Functions</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="#列出-to [...]
+</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.8.1/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.8.1/admin-api-functions"><span>Functions</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="#列出-to [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.8.1/cookbooks-retention-expiry.html b/content/docs/zh-CN/2.8.1/cookbooks-retention-expiry.html
index 7a56ab6..f69021b 100644
--- a/content/docs/zh-CN/2.8.1/cookbooks-retention-expiry.html
+++ b/content/docs/zh-CN/2.8.1/cookbooks-retention-expiry.html
@@ -156,7 +156,7 @@ To disable the retention policy, you need to set both the size and time limit to
 <h4><a class="anchor" aria-hidden="true" id="java"></a><a href="#java" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -283,7 +283,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <li><p><strong>Entry log rollover period</strong>: multiple ledgers in BookKeeper are interleaved into an <a href="https://bookkeeper.apache.org/docs/4.11.1/getting-started/concepts/#entry-logs">entry log</a>. 对于已删除的 ledger ,必须将条目日志 entry log 全部滚动。 Entry log 滚动周期是可配置的,但完全基于条目日志的大小。 详情参阅 <a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-settings">这里</a>。 Entry log 一经滚动,就可以进行垃圾回收 entry log。</p></li>
 <li><p><strong>Garbage collection interval</strong>: because entry logs have interleaved ledgers, to free up space, the entry logs need to be rewritten. 垃圾收集间隔是 BookKeeper 执行垃圾收集的频率 这与 entry log 的小压缩和大压缩有关。 详情参阅<a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-compaction-settings">这里</a>。</p></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.8.1/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.8.1/cookbooks-encryption"><span>加密</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="#设置保留策略 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.8.1/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.8.1/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.8.1/cookbooks-retention-expiry/index.html b/content/docs/zh-CN/2.8.1/cookbooks-retention-expiry/index.html
index 7a56ab6..f69021b 100644
--- a/content/docs/zh-CN/2.8.1/cookbooks-retention-expiry/index.html
+++ b/content/docs/zh-CN/2.8.1/cookbooks-retention-expiry/index.html
@@ -156,7 +156,7 @@ To disable the retention policy, you need to set both the size and time limit to
 <h4><a class="anchor" aria-hidden="true" id="java"></a><a href="#java" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -283,7 +283,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <li><p><strong>Entry log rollover period</strong>: multiple ledgers in BookKeeper are interleaved into an <a href="https://bookkeeper.apache.org/docs/4.11.1/getting-started/concepts/#entry-logs">entry log</a>. 对于已删除的 ledger ,必须将条目日志 entry log 全部滚动。 Entry log 滚动周期是可配置的,但完全基于条目日志的大小。 详情参阅 <a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-settings">这里</a>。 Entry log 一经滚动,就可以进行垃圾回收 entry log。</p></li>
 <li><p><strong>Garbage collection interval</strong>: because entry logs have interleaved ledgers, to free up space, the entry logs need to be rewritten. 垃圾收集间隔是 BookKeeper 执行垃圾收集的频率 这与 entry log 的小压缩和大压缩有关。 详情参阅<a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-compaction-settings">这里</a>。</p></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.8.1/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.8.1/cookbooks-encryption"><span>加密</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="#设置保留策略 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.8.1/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.8.1/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.8.2/admin-api-topics.html b/content/docs/zh-CN/2.8.2/admin-api-topics.html
index a50f74a..3d0e015 100644
--- a/content/docs/zh-CN/2.8.2/admin-api-topics.html
+++ b/content/docs/zh-CN/2.8.2/admin-api-topics.html
@@ -426,7 +426,7 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-39544-content-39547" class="tab-pane" data-group="group_39544" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="设置去重快照间隔"></a><a href="#设置去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To set the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>设置主题级去重快照间隔,可以使用以下方法之一。</p>
 <blockquote>
 <p><strong>前提条件</strong> <code>brokerDeduplicationEnabled</code>必须设置为<code>true</code>。</p>
 </blockquote>
@@ -436,45 +436,45 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-39548-content-39551" class="tab-pane" data-group="group_39548" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setDeduplicationSnapshotInterval(topic, <span class="hljs-number">1000</span>)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="移除去重快照间隔"></a><a href="#移除去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To remove the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>移除主题级去重快照间隔,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-39552-tab-39553" class="nav-link active" data-group="group_39552" data-tab="tab-group-39552-content-39553">Pulsar-admin API</div><div id="tab-group-39552-tab-39554" class="nav-link" data-group="group_39552" data-tab="tab-group-39552-content-39554">REST API</div><div id="tab-group-39552-tab-39555" class="nav-link" data-group="group_39552" data-tab="tab-group-39552-content-39555">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-39552-content-39554" class="tab-pane" data-group="group_39552" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/deduplicationSnapshotInterval?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-39552-content-39555" class="tab-pane" data-group="group_39552" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-inactive-topic-policies"></a><a href="#configure-inactive-topic-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.5S1 [...]
-<h4><a class="anchor" aria-hidden="true" id="get-inactive-topic-policies"></a><a href="#get-inactive-topic-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 1 [...]
-<p>To get the topic-level inactive topic policies, use one of the following methods.</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.6 [...]
+<h4><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.6 [...]
+<p>获取主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-39556-tab-39557" class="nav-link active" data-group="group_39556" data-tab="tab-group-39556-content-39557">Pulsar-admin API</div><div id="tab-group-39556-tab-39558" class="nav-link" data-group="group_39556" data-tab="tab-group-39556-content-39558">REST API</div><div id="tab-group-39556-tab-39559" class="nav-link" data-group="group_39556" data-tab="tab-group-39556-content-39559">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-39556-content-39558" class="tab-pane" data-group="group_39556" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-39556-content-39559" class="tab-pane" data-group="group_39556" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-inactive-topic-policies"></a><a href="#set-inactive-topic-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 1 [...]
-<p>To set the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>设置主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-39560-tab-39561" class="nav-link active" data-group="group_39560" data-tab="tab-group-39560-content-39561">Pulsar-admin API</div><div id="tab-group-39560-tab-39562" class="nav-link" data-group="group_39560" data-tab="tab-group-39560-content-39562">REST API</div><div id="tab-group-39560-tab-39563" class="nav-link" data-group="group_39560" data-tab="tab-group-39560-content-39563">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-39560-content-39562" class="tab-pane" data-group="group_39560" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-39560-content-39563" class="tab-pane" data-group="group_39560" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setInactiveTopicPolicies(topic, inactiveTopicPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-inactive-topic-policies"></a><a href="#remove-inactive-topic-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 1 [...]
-<p>To remove the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>移除主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-39564-tab-39565" class="nav-link active" data-group="group_39564" data-tab="tab-group-39564-content-39565">Pulsar-admin API</div><div id="tab-group-39564-tab-39566" class="nav-link" data-group="group_39564" data-tab="tab-group-39564-content-39566">REST API</div><div id="tab-group-39564-tab-39567" class="nav-link" data-group="group_39564" data-tab="tab-group-39564-content-39567">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-39564-content-39566" class="tab-pane" data-group="group_39564" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-39564-content-39567" class="tab-pane" data-group="group_39564" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-offload-policies"></a><a href="#configure-offload-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 12H [...]
-<h4><a class="anchor" aria-hidden="true" id="get-offload-policies"></a><a href="#get-offload-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 [...]
-<p>To get the topic-level offload policies, use one of the following methods.</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. [...]
+<h4><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. [...]
+<p>获取主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-39568-tab-39569" class="nav-link active" data-group="group_39568" data-tab="tab-group-39568-content-39569">Pulsar-admin API</div><div id="tab-group-39568-tab-39570" class="nav-link" data-group="group_39568" data-tab="tab-group-39568-content-39570">REST API</div><div id="tab-group-39568-tab-39571" class="nav-link" data-group="group_39568" data-tab="tab-group-39568-content-39571">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-39568-content-39570" class="tab-pane" data-group="group_39568" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-39568-content-39571" class="tab-pane" data-group="group_39568" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getOffloadPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-offload-policies"></a><a href="#set-offload-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 [...]
-<p>To set the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>设置主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-39572-tab-39573" class="nav-link active" data-group="group_39572" data-tab="tab-group-39572-content-39573">Pulsar-admin API</div><div id="tab-group-39572-tab-39574" class="nav-link" data-group="group_39572" data-tab="tab-group-39572-content-39574">REST API</div><div id="tab-group-39572-tab-39575" class="nav-link" data-group="group_39572" data-tab="tab-group-39572-content-39575">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-39572-content-39574" class="tab-pane" data-group="group_39572" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-39572-content-39575" class="tab-pane" data-group="group_39572" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setOffloadPolicies(topic, offloadPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-offload-policies"></a><a href="#remove-offload-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 [...]
-<p>To remove the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>移除主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-39576-tab-39577" class="nav-link active" data-group="group_39576" data-tab="tab-group-39576-content-39577">Pulsar-admin API</div><div id="tab-group-39576-tab-39578" class="nav-link" data-group="group_39576" data-tab="tab-group-39576-content-39578">REST API</div><div id="tab-group-39576-tab-39579" class="nav-link" data-group="group_39576" data-tab="tab-group-39576-content-39579">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-39576-content-39578" class="tab-pane" data-group="group_39576" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-39576-content-39579" class="tab-pane" data-group="group_39576" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeOffloadPolicies(topic)<br /></code></pre>
@@ -720,9 +720,10 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 <p>默认情况下,Pulsar 主题由单个 broker 提供服务,这限制了主题的最大吞吐量。 <em>分区主题</em>可以跨越多个 broker,从而实现更高的吞吐量。</p>
 <p>你可以使用 Pulsar 客户端库发布到分区主题。 发布到分区主题时,必须指定路由模式。 如果在创建新的生产者时没有指定任何路由方式,则使用轮询路由模式。</p>
 <h3><a class="anchor" aria-hidden="true" id="routing-mode"></a><a href="#routing-mode" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. The routing mode determines which partition(internal topic) that each message should be published to.</p>
-<p>The following <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
- options are available.</p>
+<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. 路由模式决定了每条消息应该发往哪个分区(内部主题)。</p>
+<p>以下
+<a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
+ 选项是可用的。</p>
 <table>
 <thead>
 <tr><th style="text-align:left">发送模式</th><th style="text-align:left">说明</th></tr>
@@ -759,7 +760,7 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
     }
 }
 </code></pre>
-<p>With that implementation, you can send</p>
+<p>通过该实现,你可以发送:</p>
 <pre><code class="hljs css language-java">String pulsarBrokerRootUrl = <span class="hljs-string">"pulsar://localhost:6650"</span>;
 String topic = <span class="hljs-string">"persistent://my-tenant/my-cluster-my-namespace/my-topic"</span>;
 
@@ -771,7 +772,7 @@ Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = pulsarClient
 producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBytes());
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="使用-key-时如何选择分区"></a><a href="#使用-key-时如何选择分区" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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>If a message has a key, it supersedes the round robin routing policy. The following example illustrates how to choose the partition when using a key.</p>
+<p>If a message has a key, it supersedes the round robin routing policy. 以下示例说明当使用key时如何选择分区。</p>
 <pre><code class="hljs css language-java"><span class="hljs-comment">// 如果消息存在key,轮询路由策略将被替换</span>
         <span class="hljs-keyword">if</span> (msg.hasKey()) {
             <span class="hljs-keyword">return</span> signSafeMod(hash.makeHash(msg.getKey()), topicMetadata.numPartitions());
@@ -785,15 +786,15 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
 }
 </code></pre>
 <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>You can use <a href="/docs/zh-CN/2.8.2/admin-api-overview">Pulsar admin API</a> to create, check, and delete subscriptions.</p>
-<h3><a class="anchor" aria-hidden="true" id="create-subscription"></a><a href="#create-subscription" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
+<p>你可以使用 <a href="/docs/zh-CN/2.8.2/admin-api-overview">Pulsar admin Apl</a> 创建、检查和删除订阅。</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>You can create a subscription for a topic using one of the following methods.</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-39628-tab-39629" class="nav-link active" data-group="group_39628" data-tab="tab-group-39628-content-39629">pulsar-admin</div><div id="tab-group-39628-tab-39630" class="nav-link" data-group="group_39628" data-tab="tab-group-39628-content-39630">REST API</div><div id="tab-group-39628-tab-39631" class="nav-link" data-group="group_39628" data-tab="tab-group-39628-content-39631">Java</div></div><div class="tab-content"><div id="tab-gr [...]
 </span></div></div><div id="tab-group-39628-content-39630" class="tab-pane" data-group="group_39628" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/createSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>PUT</b> <i>/admin/v2/persistent/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-39628-content-39631" class="tab-pane" data-group="group_39628" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().createSubscription(topic, subscriptionName, MessageId.latest);<br /></code></pre>
 </span></div></div></div></div>
-### Get subscription
+### 获取订阅
 You can check all subscription names for a given topic using one of the following methods.
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-39632-tab-39633" class="nav-link active" data-group="group_39632" data-tab="tab-group-39632-content-39633">pulsar-admin</div><div id="tab-group-39632-tab-39634" class="nav-link" data-group="group_39632" data-tab="tab-group-39632-content-39634">REST API</div><div id="tab-group-39632-tab-39635" class="nav-link" data-group="group_39632" data-tab="tab-group-39632-content-39635">Java</div></div><div class="tab-content"><div id="tab-gr [...]
 </span></div></div><div id="tab-group-39632-content-39634" class="tab-pane" data-group="group_39632" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/getSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>GET</b> <i>/admin/v2/:schema/:tenant/:namespace/:topic/subscriptions</i></a>
@@ -806,7 +807,7 @@ When a subscription does not process messages any more, you can unsubscribe it u
 </span></div></div><div id="tab-group-39636-content-39638" class="tab-pane" data-group="group_39636" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/deleteSubscription?version=2.9.1&amp;apiVersion=v2"><b>DELETE</b> <i>/admin/v2/namespaces/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-39636-content-39639" class="tab-pane" data-group="group_39636" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().deleteSubscription(topic, subscriptionName);<br /></code></pre>
-</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.8.2/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.8.2/admin-api-functions"><span>Functions</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="#列出-to [...]
+</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.8.2/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.8.2/admin-api-functions"><span>Functions</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="#列出-to [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.8.2/admin-api-topics/index.html b/content/docs/zh-CN/2.8.2/admin-api-topics/index.html
index a50f74a..3d0e015 100644
--- a/content/docs/zh-CN/2.8.2/admin-api-topics/index.html
+++ b/content/docs/zh-CN/2.8.2/admin-api-topics/index.html
@@ -426,7 +426,7 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-39544-content-39547" class="tab-pane" data-group="group_39544" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="设置去重快照间隔"></a><a href="#设置去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To set the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>设置主题级去重快照间隔,可以使用以下方法之一。</p>
 <blockquote>
 <p><strong>前提条件</strong> <code>brokerDeduplicationEnabled</code>必须设置为<code>true</code>。</p>
 </blockquote>
@@ -436,45 +436,45 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-39548-content-39551" class="tab-pane" data-group="group_39548" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setDeduplicationSnapshotInterval(topic, <span class="hljs-number">1000</span>)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="移除去重快照间隔"></a><a href="#移除去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To remove the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>移除主题级去重快照间隔,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-39552-tab-39553" class="nav-link active" data-group="group_39552" data-tab="tab-group-39552-content-39553">Pulsar-admin API</div><div id="tab-group-39552-tab-39554" class="nav-link" data-group="group_39552" data-tab="tab-group-39552-content-39554">REST API</div><div id="tab-group-39552-tab-39555" class="nav-link" data-group="group_39552" data-tab="tab-group-39552-content-39555">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-39552-content-39554" class="tab-pane" data-group="group_39552" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/deduplicationSnapshotInterval?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-39552-content-39555" class="tab-pane" data-group="group_39552" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-inactive-topic-policies"></a><a href="#configure-inactive-topic-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.5S1 [...]
-<h4><a class="anchor" aria-hidden="true" id="get-inactive-topic-policies"></a><a href="#get-inactive-topic-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 1 [...]
-<p>To get the topic-level inactive topic policies, use one of the following methods.</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.6 [...]
+<h4><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.6 [...]
+<p>获取主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-39556-tab-39557" class="nav-link active" data-group="group_39556" data-tab="tab-group-39556-content-39557">Pulsar-admin API</div><div id="tab-group-39556-tab-39558" class="nav-link" data-group="group_39556" data-tab="tab-group-39556-content-39558">REST API</div><div id="tab-group-39556-tab-39559" class="nav-link" data-group="group_39556" data-tab="tab-group-39556-content-39559">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-39556-content-39558" class="tab-pane" data-group="group_39556" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-39556-content-39559" class="tab-pane" data-group="group_39556" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-inactive-topic-policies"></a><a href="#set-inactive-topic-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 1 [...]
-<p>To set the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>设置主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-39560-tab-39561" class="nav-link active" data-group="group_39560" data-tab="tab-group-39560-content-39561">Pulsar-admin API</div><div id="tab-group-39560-tab-39562" class="nav-link" data-group="group_39560" data-tab="tab-group-39560-content-39562">REST API</div><div id="tab-group-39560-tab-39563" class="nav-link" data-group="group_39560" data-tab="tab-group-39560-content-39563">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-39560-content-39562" class="tab-pane" data-group="group_39560" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-39560-content-39563" class="tab-pane" data-group="group_39560" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setInactiveTopicPolicies(topic, inactiveTopicPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-inactive-topic-policies"></a><a href="#remove-inactive-topic-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 1 [...]
-<p>To remove the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>移除主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-39564-tab-39565" class="nav-link active" data-group="group_39564" data-tab="tab-group-39564-content-39565">Pulsar-admin API</div><div id="tab-group-39564-tab-39566" class="nav-link" data-group="group_39564" data-tab="tab-group-39564-content-39566">REST API</div><div id="tab-group-39564-tab-39567" class="nav-link" data-group="group_39564" data-tab="tab-group-39564-content-39567">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-39564-content-39566" class="tab-pane" data-group="group_39564" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-39564-content-39567" class="tab-pane" data-group="group_39564" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-offload-policies"></a><a href="#configure-offload-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 12H [...]
-<h4><a class="anchor" aria-hidden="true" id="get-offload-policies"></a><a href="#get-offload-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 [...]
-<p>To get the topic-level offload policies, use one of the following methods.</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. [...]
+<h4><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. [...]
+<p>获取主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-39568-tab-39569" class="nav-link active" data-group="group_39568" data-tab="tab-group-39568-content-39569">Pulsar-admin API</div><div id="tab-group-39568-tab-39570" class="nav-link" data-group="group_39568" data-tab="tab-group-39568-content-39570">REST API</div><div id="tab-group-39568-tab-39571" class="nav-link" data-group="group_39568" data-tab="tab-group-39568-content-39571">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-39568-content-39570" class="tab-pane" data-group="group_39568" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-39568-content-39571" class="tab-pane" data-group="group_39568" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getOffloadPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-offload-policies"></a><a href="#set-offload-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 [...]
-<p>To set the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>设置主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-39572-tab-39573" class="nav-link active" data-group="group_39572" data-tab="tab-group-39572-content-39573">Pulsar-admin API</div><div id="tab-group-39572-tab-39574" class="nav-link" data-group="group_39572" data-tab="tab-group-39572-content-39574">REST API</div><div id="tab-group-39572-tab-39575" class="nav-link" data-group="group_39572" data-tab="tab-group-39572-content-39575">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-39572-content-39574" class="tab-pane" data-group="group_39572" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-39572-content-39575" class="tab-pane" data-group="group_39572" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setOffloadPolicies(topic, offloadPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-offload-policies"></a><a href="#remove-offload-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 [...]
-<p>To remove the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>移除主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-39576-tab-39577" class="nav-link active" data-group="group_39576" data-tab="tab-group-39576-content-39577">Pulsar-admin API</div><div id="tab-group-39576-tab-39578" class="nav-link" data-group="group_39576" data-tab="tab-group-39576-content-39578">REST API</div><div id="tab-group-39576-tab-39579" class="nav-link" data-group="group_39576" data-tab="tab-group-39576-content-39579">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-39576-content-39578" class="tab-pane" data-group="group_39576" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-39576-content-39579" class="tab-pane" data-group="group_39576" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeOffloadPolicies(topic)<br /></code></pre>
@@ -720,9 +720,10 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 <p>默认情况下,Pulsar 主题由单个 broker 提供服务,这限制了主题的最大吞吐量。 <em>分区主题</em>可以跨越多个 broker,从而实现更高的吞吐量。</p>
 <p>你可以使用 Pulsar 客户端库发布到分区主题。 发布到分区主题时,必须指定路由模式。 如果在创建新的生产者时没有指定任何路由方式,则使用轮询路由模式。</p>
 <h3><a class="anchor" aria-hidden="true" id="routing-mode"></a><a href="#routing-mode" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. The routing mode determines which partition(internal topic) that each message should be published to.</p>
-<p>The following <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
- options are available.</p>
+<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. 路由模式决定了每条消息应该发往哪个分区(内部主题)。</p>
+<p>以下
+<a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
+ 选项是可用的。</p>
 <table>
 <thead>
 <tr><th style="text-align:left">发送模式</th><th style="text-align:left">说明</th></tr>
@@ -759,7 +760,7 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
     }
 }
 </code></pre>
-<p>With that implementation, you can send</p>
+<p>通过该实现,你可以发送:</p>
 <pre><code class="hljs css language-java">String pulsarBrokerRootUrl = <span class="hljs-string">"pulsar://localhost:6650"</span>;
 String topic = <span class="hljs-string">"persistent://my-tenant/my-cluster-my-namespace/my-topic"</span>;
 
@@ -771,7 +772,7 @@ Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = pulsarClient
 producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBytes());
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="使用-key-时如何选择分区"></a><a href="#使用-key-时如何选择分区" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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>If a message has a key, it supersedes the round robin routing policy. The following example illustrates how to choose the partition when using a key.</p>
+<p>If a message has a key, it supersedes the round robin routing policy. 以下示例说明当使用key时如何选择分区。</p>
 <pre><code class="hljs css language-java"><span class="hljs-comment">// 如果消息存在key,轮询路由策略将被替换</span>
         <span class="hljs-keyword">if</span> (msg.hasKey()) {
             <span class="hljs-keyword">return</span> signSafeMod(hash.makeHash(msg.getKey()), topicMetadata.numPartitions());
@@ -785,15 +786,15 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
 }
 </code></pre>
 <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>You can use <a href="/docs/zh-CN/2.8.2/admin-api-overview">Pulsar admin API</a> to create, check, and delete subscriptions.</p>
-<h3><a class="anchor" aria-hidden="true" id="create-subscription"></a><a href="#create-subscription" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
+<p>你可以使用 <a href="/docs/zh-CN/2.8.2/admin-api-overview">Pulsar admin Apl</a> 创建、检查和删除订阅。</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>You can create a subscription for a topic using one of the following methods.</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-39628-tab-39629" class="nav-link active" data-group="group_39628" data-tab="tab-group-39628-content-39629">pulsar-admin</div><div id="tab-group-39628-tab-39630" class="nav-link" data-group="group_39628" data-tab="tab-group-39628-content-39630">REST API</div><div id="tab-group-39628-tab-39631" class="nav-link" data-group="group_39628" data-tab="tab-group-39628-content-39631">Java</div></div><div class="tab-content"><div id="tab-gr [...]
 </span></div></div><div id="tab-group-39628-content-39630" class="tab-pane" data-group="group_39628" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/createSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>PUT</b> <i>/admin/v2/persistent/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-39628-content-39631" class="tab-pane" data-group="group_39628" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().createSubscription(topic, subscriptionName, MessageId.latest);<br /></code></pre>
 </span></div></div></div></div>
-### Get subscription
+### 获取订阅
 You can check all subscription names for a given topic using one of the following methods.
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-39632-tab-39633" class="nav-link active" data-group="group_39632" data-tab="tab-group-39632-content-39633">pulsar-admin</div><div id="tab-group-39632-tab-39634" class="nav-link" data-group="group_39632" data-tab="tab-group-39632-content-39634">REST API</div><div id="tab-group-39632-tab-39635" class="nav-link" data-group="group_39632" data-tab="tab-group-39632-content-39635">Java</div></div><div class="tab-content"><div id="tab-gr [...]
 </span></div></div><div id="tab-group-39632-content-39634" class="tab-pane" data-group="group_39632" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/getSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>GET</b> <i>/admin/v2/:schema/:tenant/:namespace/:topic/subscriptions</i></a>
@@ -806,7 +807,7 @@ When a subscription does not process messages any more, you can unsubscribe it u
 </span></div></div><div id="tab-group-39636-content-39638" class="tab-pane" data-group="group_39636" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/deleteSubscription?version=2.9.1&amp;apiVersion=v2"><b>DELETE</b> <i>/admin/v2/namespaces/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-39636-content-39639" class="tab-pane" data-group="group_39636" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().deleteSubscription(topic, subscriptionName);<br /></code></pre>
-</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.8.2/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.8.2/admin-api-functions"><span>Functions</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="#列出-to [...]
+</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.8.2/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.8.2/admin-api-functions"><span>Functions</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="#列出-to [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.8.2/cookbooks-retention-expiry.html b/content/docs/zh-CN/2.8.2/cookbooks-retention-expiry.html
index 55662b8..b0409f6 100644
--- a/content/docs/zh-CN/2.8.2/cookbooks-retention-expiry.html
+++ b/content/docs/zh-CN/2.8.2/cookbooks-retention-expiry.html
@@ -156,7 +156,7 @@ To disable the retention policy, you need to set both the size and time limit to
 <h4><a class="anchor" aria-hidden="true" id="java"></a><a href="#java" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -283,7 +283,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <li><p><strong>Entry log rollover period</strong>: multiple ledgers in BookKeeper are interleaved into an <a href="https://bookkeeper.apache.org/docs/4.11.1/getting-started/concepts/#entry-logs">entry log</a>. 对于已删除的 ledger ,必须将条目日志 entry log 全部滚动。 Entry log 滚动周期是可配置的,但完全基于条目日志的大小。 详情参阅 <a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-settings">这里</a>。 Entry log 一经滚动,就可以进行垃圾回收 entry log。</p></li>
 <li><p><strong>Garbage collection interval</strong>: because entry logs have interleaved ledgers, to free up space, the entry logs need to be rewritten. 垃圾收集间隔是 BookKeeper 执行垃圾收集的频率 这与 entry log 的小压缩和大压缩有关。 详情参阅<a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-compaction-settings">这里</a>。</p></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.8.2/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.8.2/cookbooks-encryption"><span>加密</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="#设置保留策略 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.8.2/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.8.2/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.8.2/cookbooks-retention-expiry/index.html b/content/docs/zh-CN/2.8.2/cookbooks-retention-expiry/index.html
index 55662b8..b0409f6 100644
--- a/content/docs/zh-CN/2.8.2/cookbooks-retention-expiry/index.html
+++ b/content/docs/zh-CN/2.8.2/cookbooks-retention-expiry/index.html
@@ -156,7 +156,7 @@ To disable the retention policy, you need to set both the size and time limit to
 <h4><a class="anchor" aria-hidden="true" id="java"></a><a href="#java" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -283,7 +283,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <li><p><strong>Entry log rollover period</strong>: multiple ledgers in BookKeeper are interleaved into an <a href="https://bookkeeper.apache.org/docs/4.11.1/getting-started/concepts/#entry-logs">entry log</a>. 对于已删除的 ledger ,必须将条目日志 entry log 全部滚动。 Entry log 滚动周期是可配置的,但完全基于条目日志的大小。 详情参阅 <a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-settings">这里</a>。 Entry log 一经滚动,就可以进行垃圾回收 entry log。</p></li>
 <li><p><strong>Garbage collection interval</strong>: because entry logs have interleaved ledgers, to free up space, the entry logs need to be rewritten. 垃圾收集间隔是 BookKeeper 执行垃圾收集的频率 这与 entry log 的小压缩和大压缩有关。 详情参阅<a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-compaction-settings">这里</a>。</p></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.8.2/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.8.2/cookbooks-encryption"><span>加密</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="#设置保留策略 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.8.2/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.8.2/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.8.3/admin-api-topics.html b/content/docs/zh-CN/2.8.3/admin-api-topics.html
index 09e014a..5bb6ff5 100644
--- a/content/docs/zh-CN/2.8.3/admin-api-topics.html
+++ b/content/docs/zh-CN/2.8.3/admin-api-topics.html
@@ -426,7 +426,7 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-38878-content-38881" class="tab-pane" data-group="group_38878" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="设置去重快照间隔"></a><a href="#设置去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To set the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>设置主题级去重快照间隔,可以使用以下方法之一。</p>
 <blockquote>
 <p><strong>前提条件</strong> <code>brokerDeduplicationEnabled</code>必须设置为<code>true</code>。</p>
 </blockquote>
@@ -436,45 +436,45 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-38882-content-38885" class="tab-pane" data-group="group_38882" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setDeduplicationSnapshotInterval(topic, <span class="hljs-number">1000</span>)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="移除去重快照间隔"></a><a href="#移除去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To remove the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>移除主题级去重快照间隔,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-38886-tab-38887" class="nav-link active" data-group="group_38886" data-tab="tab-group-38886-content-38887">Pulsar-admin API</div><div id="tab-group-38886-tab-38888" class="nav-link" data-group="group_38886" data-tab="tab-group-38886-content-38888">REST API</div><div id="tab-group-38886-tab-38889" class="nav-link" data-group="group_38886" data-tab="tab-group-38886-content-38889">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-38886-content-38888" class="tab-pane" data-group="group_38886" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/deduplicationSnapshotInterval?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-38886-content-38889" class="tab-pane" data-group="group_38886" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-inactive-topic-policies"></a><a href="#configure-inactive-topic-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.5S1 [...]
-<h4><a class="anchor" aria-hidden="true" id="get-inactive-topic-policies"></a><a href="#get-inactive-topic-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 1 [...]
-<p>To get the topic-level inactive topic policies, use one of the following methods.</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.6 [...]
+<h4><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.6 [...]
+<p>获取主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-38890-tab-38891" class="nav-link active" data-group="group_38890" data-tab="tab-group-38890-content-38891">Pulsar-admin API</div><div id="tab-group-38890-tab-38892" class="nav-link" data-group="group_38890" data-tab="tab-group-38890-content-38892">REST API</div><div id="tab-group-38890-tab-38893" class="nav-link" data-group="group_38890" data-tab="tab-group-38890-content-38893">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-38890-content-38892" class="tab-pane" data-group="group_38890" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-38890-content-38893" class="tab-pane" data-group="group_38890" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-inactive-topic-policies"></a><a href="#set-inactive-topic-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 1 [...]
-<p>To set the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>设置主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-38894-tab-38895" class="nav-link active" data-group="group_38894" data-tab="tab-group-38894-content-38895">Pulsar-admin API</div><div id="tab-group-38894-tab-38896" class="nav-link" data-group="group_38894" data-tab="tab-group-38894-content-38896">REST API</div><div id="tab-group-38894-tab-38897" class="nav-link" data-group="group_38894" data-tab="tab-group-38894-content-38897">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-38894-content-38896" class="tab-pane" data-group="group_38894" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-38894-content-38897" class="tab-pane" data-group="group_38894" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setInactiveTopicPolicies(topic, inactiveTopicPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-inactive-topic-policies"></a><a href="#remove-inactive-topic-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 1 [...]
-<p>To remove the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>移除主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-38898-tab-38899" class="nav-link active" data-group="group_38898" data-tab="tab-group-38898-content-38899">Pulsar-admin API</div><div id="tab-group-38898-tab-38900" class="nav-link" data-group="group_38898" data-tab="tab-group-38898-content-38900">REST API</div><div id="tab-group-38898-tab-38901" class="nav-link" data-group="group_38898" data-tab="tab-group-38898-content-38901">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-38898-content-38900" class="tab-pane" data-group="group_38898" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-38898-content-38901" class="tab-pane" data-group="group_38898" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-offload-policies"></a><a href="#configure-offload-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 12H [...]
-<h4><a class="anchor" aria-hidden="true" id="get-offload-policies"></a><a href="#get-offload-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 [...]
-<p>To get the topic-level offload policies, use one of the following methods.</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. [...]
+<h4><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. [...]
+<p>获取主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-38902-tab-38903" class="nav-link active" data-group="group_38902" data-tab="tab-group-38902-content-38903">Pulsar-admin API</div><div id="tab-group-38902-tab-38904" class="nav-link" data-group="group_38902" data-tab="tab-group-38902-content-38904">REST API</div><div id="tab-group-38902-tab-38905" class="nav-link" data-group="group_38902" data-tab="tab-group-38902-content-38905">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-38902-content-38904" class="tab-pane" data-group="group_38902" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-38902-content-38905" class="tab-pane" data-group="group_38902" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getOffloadPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-offload-policies"></a><a href="#set-offload-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 [...]
-<p>To set the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>设置主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-38906-tab-38907" class="nav-link active" data-group="group_38906" data-tab="tab-group-38906-content-38907">Pulsar-admin API</div><div id="tab-group-38906-tab-38908" class="nav-link" data-group="group_38906" data-tab="tab-group-38906-content-38908">REST API</div><div id="tab-group-38906-tab-38909" class="nav-link" data-group="group_38906" data-tab="tab-group-38906-content-38909">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-38906-content-38908" class="tab-pane" data-group="group_38906" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-38906-content-38909" class="tab-pane" data-group="group_38906" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setOffloadPolicies(topic, offloadPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-offload-policies"></a><a href="#remove-offload-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 [...]
-<p>To remove the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>移除主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-38910-tab-38911" class="nav-link active" data-group="group_38910" data-tab="tab-group-38910-content-38911">Pulsar-admin API</div><div id="tab-group-38910-tab-38912" class="nav-link" data-group="group_38910" data-tab="tab-group-38910-content-38912">REST API</div><div id="tab-group-38910-tab-38913" class="nav-link" data-group="group_38910" data-tab="tab-group-38910-content-38913">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-38910-content-38912" class="tab-pane" data-group="group_38910" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-38910-content-38913" class="tab-pane" data-group="group_38910" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeOffloadPolicies(topic)<br /></code></pre>
@@ -720,9 +720,10 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 <p>默认情况下,Pulsar 主题由单个 broker 提供服务,这限制了主题的最大吞吐量。 <em>分区主题</em>可以跨越多个 broker,从而实现更高的吞吐量。</p>
 <p>你可以使用 Pulsar 客户端库发布到分区主题。 发布到分区主题时,必须指定路由模式。 如果在创建新的生产者时没有指定任何路由方式,则使用轮询路由模式。</p>
 <h3><a class="anchor" aria-hidden="true" id="routing-mode"></a><a href="#routing-mode" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. The routing mode determines which partition(internal topic) that each message should be published to.</p>
-<p>The following <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
- options are available.</p>
+<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. 路由模式决定了每条消息应该发往哪个分区(内部主题)。</p>
+<p>以下
+<a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
+ 选项是可用的。</p>
 <table>
 <thead>
 <tr><th style="text-align:left">发送模式</th><th style="text-align:left">说明</th></tr>
@@ -759,7 +760,7 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
     }
 }
 </code></pre>
-<p>With that implementation, you can send</p>
+<p>通过该实现,你可以发送:</p>
 <pre><code class="hljs css language-java">String pulsarBrokerRootUrl = <span class="hljs-string">"pulsar://localhost:6650"</span>;
 String topic = <span class="hljs-string">"persistent://my-tenant/my-cluster-my-namespace/my-topic"</span>;
 
@@ -771,7 +772,7 @@ Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = pulsarClient
 producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBytes());
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="使用-key-时如何选择分区"></a><a href="#使用-key-时如何选择分区" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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>If a message has a key, it supersedes the round robin routing policy. The following example illustrates how to choose the partition when using a key.</p>
+<p>If a message has a key, it supersedes the round robin routing policy. 以下示例说明当使用key时如何选择分区。</p>
 <pre><code class="hljs css language-java"><span class="hljs-comment">// 如果消息存在key,轮询路由策略将被替换</span>
         <span class="hljs-keyword">if</span> (msg.hasKey()) {
             <span class="hljs-keyword">return</span> signSafeMod(hash.makeHash(msg.getKey()), topicMetadata.numPartitions());
@@ -785,15 +786,15 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
 }
 </code></pre>
 <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>You can use <a href="/docs/zh-CN/2.8.3/admin-api-overview">Pulsar admin API</a> to create, check, and delete subscriptions.</p>
-<h3><a class="anchor" aria-hidden="true" id="create-subscription"></a><a href="#create-subscription" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
+<p>你可以使用 <a href="/docs/zh-CN/2.8.3/admin-api-overview">Pulsar admin Apl</a> 创建、检查和删除订阅。</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>You can create a subscription for a topic using one of the following methods.</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-38962-tab-38963" class="nav-link active" data-group="group_38962" data-tab="tab-group-38962-content-38963">pulsar-admin</div><div id="tab-group-38962-tab-38964" class="nav-link" data-group="group_38962" data-tab="tab-group-38962-content-38964">REST API</div><div id="tab-group-38962-tab-38965" class="nav-link" data-group="group_38962" data-tab="tab-group-38962-content-38965">Java</div></div><div class="tab-content"><div id="tab-gr [...]
 </span></div></div><div id="tab-group-38962-content-38964" class="tab-pane" data-group="group_38962" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/createSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>PUT</b> <i>/admin/v2/persistent/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-38962-content-38965" class="tab-pane" data-group="group_38962" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().createSubscription(topic, subscriptionName, MessageId.latest);<br /></code></pre>
 </span></div></div></div></div>
-### Get subscription
+### 获取订阅
 You can check all subscription names for a given topic using one of the following methods.
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-38966-tab-38967" class="nav-link active" data-group="group_38966" data-tab="tab-group-38966-content-38967">pulsar-admin</div><div id="tab-group-38966-tab-38968" class="nav-link" data-group="group_38966" data-tab="tab-group-38966-content-38968">REST API</div><div id="tab-group-38966-tab-38969" class="nav-link" data-group="group_38966" data-tab="tab-group-38966-content-38969">Java</div></div><div class="tab-content"><div id="tab-gr [...]
 </span></div></div><div id="tab-group-38966-content-38968" class="tab-pane" data-group="group_38966" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/getSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>GET</b> <i>/admin/v2/:schema/:tenant/:namespace/:topic/subscriptions</i></a>
@@ -806,7 +807,7 @@ When a subscription does not process messages any more, you can unsubscribe it u
 </span></div></div><div id="tab-group-38970-content-38972" class="tab-pane" data-group="group_38970" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/deleteSubscription?version=2.9.1&amp;apiVersion=v2"><b>DELETE</b> <i>/admin/v2/namespaces/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-38970-content-38973" class="tab-pane" data-group="group_38970" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().deleteSubscription(topic, subscriptionName);<br /></code></pre>
-</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.8.3/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.8.3/admin-api-functions"><span>Functions</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="#列出-to [...]
+</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.8.3/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.8.3/admin-api-functions"><span>Functions</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="#列出-to [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.8.3/admin-api-topics/index.html b/content/docs/zh-CN/2.8.3/admin-api-topics/index.html
index 09e014a..5bb6ff5 100644
--- a/content/docs/zh-CN/2.8.3/admin-api-topics/index.html
+++ b/content/docs/zh-CN/2.8.3/admin-api-topics/index.html
@@ -426,7 +426,7 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-38878-content-38881" class="tab-pane" data-group="group_38878" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="设置去重快照间隔"></a><a href="#设置去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To set the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>设置主题级去重快照间隔,可以使用以下方法之一。</p>
 <blockquote>
 <p><strong>前提条件</strong> <code>brokerDeduplicationEnabled</code>必须设置为<code>true</code>。</p>
 </blockquote>
@@ -436,45 +436,45 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-38882-content-38885" class="tab-pane" data-group="group_38882" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setDeduplicationSnapshotInterval(topic, <span class="hljs-number">1000</span>)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="移除去重快照间隔"></a><a href="#移除去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To remove the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>移除主题级去重快照间隔,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-38886-tab-38887" class="nav-link active" data-group="group_38886" data-tab="tab-group-38886-content-38887">Pulsar-admin API</div><div id="tab-group-38886-tab-38888" class="nav-link" data-group="group_38886" data-tab="tab-group-38886-content-38888">REST API</div><div id="tab-group-38886-tab-38889" class="nav-link" data-group="group_38886" data-tab="tab-group-38886-content-38889">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-38886-content-38888" class="tab-pane" data-group="group_38886" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/deduplicationSnapshotInterval?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-38886-content-38889" class="tab-pane" data-group="group_38886" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-inactive-topic-policies"></a><a href="#configure-inactive-topic-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.5S1 [...]
-<h4><a class="anchor" aria-hidden="true" id="get-inactive-topic-policies"></a><a href="#get-inactive-topic-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 1 [...]
-<p>To get the topic-level inactive topic policies, use one of the following methods.</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.6 [...]
+<h4><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.6 [...]
+<p>获取主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-38890-tab-38891" class="nav-link active" data-group="group_38890" data-tab="tab-group-38890-content-38891">Pulsar-admin API</div><div id="tab-group-38890-tab-38892" class="nav-link" data-group="group_38890" data-tab="tab-group-38890-content-38892">REST API</div><div id="tab-group-38890-tab-38893" class="nav-link" data-group="group_38890" data-tab="tab-group-38890-content-38893">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-38890-content-38892" class="tab-pane" data-group="group_38890" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-38890-content-38893" class="tab-pane" data-group="group_38890" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-inactive-topic-policies"></a><a href="#set-inactive-topic-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 1 [...]
-<p>To set the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>设置主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-38894-tab-38895" class="nav-link active" data-group="group_38894" data-tab="tab-group-38894-content-38895">Pulsar-admin API</div><div id="tab-group-38894-tab-38896" class="nav-link" data-group="group_38894" data-tab="tab-group-38894-content-38896">REST API</div><div id="tab-group-38894-tab-38897" class="nav-link" data-group="group_38894" data-tab="tab-group-38894-content-38897">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-38894-content-38896" class="tab-pane" data-group="group_38894" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-38894-content-38897" class="tab-pane" data-group="group_38894" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setInactiveTopicPolicies(topic, inactiveTopicPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-inactive-topic-policies"></a><a href="#remove-inactive-topic-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 1 [...]
-<p>To remove the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>移除主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-38898-tab-38899" class="nav-link active" data-group="group_38898" data-tab="tab-group-38898-content-38899">Pulsar-admin API</div><div id="tab-group-38898-tab-38900" class="nav-link" data-group="group_38898" data-tab="tab-group-38898-content-38900">REST API</div><div id="tab-group-38898-tab-38901" class="nav-link" data-group="group_38898" data-tab="tab-group-38898-content-38901">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-38898-content-38900" class="tab-pane" data-group="group_38898" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-38898-content-38901" class="tab-pane" data-group="group_38898" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-offload-policies"></a><a href="#configure-offload-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 12H [...]
-<h4><a class="anchor" aria-hidden="true" id="get-offload-policies"></a><a href="#get-offload-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 [...]
-<p>To get the topic-level offload policies, use one of the following methods.</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. [...]
+<h4><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. [...]
+<p>获取主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-38902-tab-38903" class="nav-link active" data-group="group_38902" data-tab="tab-group-38902-content-38903">Pulsar-admin API</div><div id="tab-group-38902-tab-38904" class="nav-link" data-group="group_38902" data-tab="tab-group-38902-content-38904">REST API</div><div id="tab-group-38902-tab-38905" class="nav-link" data-group="group_38902" data-tab="tab-group-38902-content-38905">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-38902-content-38904" class="tab-pane" data-group="group_38902" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-38902-content-38905" class="tab-pane" data-group="group_38902" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getOffloadPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-offload-policies"></a><a href="#set-offload-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 [...]
-<p>To set the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>设置主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-38906-tab-38907" class="nav-link active" data-group="group_38906" data-tab="tab-group-38906-content-38907">Pulsar-admin API</div><div id="tab-group-38906-tab-38908" class="nav-link" data-group="group_38906" data-tab="tab-group-38906-content-38908">REST API</div><div id="tab-group-38906-tab-38909" class="nav-link" data-group="group_38906" data-tab="tab-group-38906-content-38909">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-38906-content-38908" class="tab-pane" data-group="group_38906" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-38906-content-38909" class="tab-pane" data-group="group_38906" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setOffloadPolicies(topic, offloadPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-offload-policies"></a><a href="#remove-offload-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 [...]
-<p>To remove the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>移除主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-38910-tab-38911" class="nav-link active" data-group="group_38910" data-tab="tab-group-38910-content-38911">Pulsar-admin API</div><div id="tab-group-38910-tab-38912" class="nav-link" data-group="group_38910" data-tab="tab-group-38910-content-38912">REST API</div><div id="tab-group-38910-tab-38913" class="nav-link" data-group="group_38910" data-tab="tab-group-38910-content-38913">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-38910-content-38912" class="tab-pane" data-group="group_38910" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-38910-content-38913" class="tab-pane" data-group="group_38910" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeOffloadPolicies(topic)<br /></code></pre>
@@ -720,9 +720,10 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 <p>默认情况下,Pulsar 主题由单个 broker 提供服务,这限制了主题的最大吞吐量。 <em>分区主题</em>可以跨越多个 broker,从而实现更高的吞吐量。</p>
 <p>你可以使用 Pulsar 客户端库发布到分区主题。 发布到分区主题时,必须指定路由模式。 如果在创建新的生产者时没有指定任何路由方式,则使用轮询路由模式。</p>
 <h3><a class="anchor" aria-hidden="true" id="routing-mode"></a><a href="#routing-mode" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. The routing mode determines which partition(internal topic) that each message should be published to.</p>
-<p>The following <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
- options are available.</p>
+<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. 路由模式决定了每条消息应该发往哪个分区(内部主题)。</p>
+<p>以下
+<a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
+ 选项是可用的。</p>
 <table>
 <thead>
 <tr><th style="text-align:left">发送模式</th><th style="text-align:left">说明</th></tr>
@@ -759,7 +760,7 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
     }
 }
 </code></pre>
-<p>With that implementation, you can send</p>
+<p>通过该实现,你可以发送:</p>
 <pre><code class="hljs css language-java">String pulsarBrokerRootUrl = <span class="hljs-string">"pulsar://localhost:6650"</span>;
 String topic = <span class="hljs-string">"persistent://my-tenant/my-cluster-my-namespace/my-topic"</span>;
 
@@ -771,7 +772,7 @@ Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = pulsarClient
 producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBytes());
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="使用-key-时如何选择分区"></a><a href="#使用-key-时如何选择分区" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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>If a message has a key, it supersedes the round robin routing policy. The following example illustrates how to choose the partition when using a key.</p>
+<p>If a message has a key, it supersedes the round robin routing policy. 以下示例说明当使用key时如何选择分区。</p>
 <pre><code class="hljs css language-java"><span class="hljs-comment">// 如果消息存在key,轮询路由策略将被替换</span>
         <span class="hljs-keyword">if</span> (msg.hasKey()) {
             <span class="hljs-keyword">return</span> signSafeMod(hash.makeHash(msg.getKey()), topicMetadata.numPartitions());
@@ -785,15 +786,15 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
 }
 </code></pre>
 <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>You can use <a href="/docs/zh-CN/2.8.3/admin-api-overview">Pulsar admin API</a> to create, check, and delete subscriptions.</p>
-<h3><a class="anchor" aria-hidden="true" id="create-subscription"></a><a href="#create-subscription" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
+<p>你可以使用 <a href="/docs/zh-CN/2.8.3/admin-api-overview">Pulsar admin Apl</a> 创建、检查和删除订阅。</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>You can create a subscription for a topic using one of the following methods.</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-38962-tab-38963" class="nav-link active" data-group="group_38962" data-tab="tab-group-38962-content-38963">pulsar-admin</div><div id="tab-group-38962-tab-38964" class="nav-link" data-group="group_38962" data-tab="tab-group-38962-content-38964">REST API</div><div id="tab-group-38962-tab-38965" class="nav-link" data-group="group_38962" data-tab="tab-group-38962-content-38965">Java</div></div><div class="tab-content"><div id="tab-gr [...]
 </span></div></div><div id="tab-group-38962-content-38964" class="tab-pane" data-group="group_38962" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/createSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>PUT</b> <i>/admin/v2/persistent/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-38962-content-38965" class="tab-pane" data-group="group_38962" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().createSubscription(topic, subscriptionName, MessageId.latest);<br /></code></pre>
 </span></div></div></div></div>
-### Get subscription
+### 获取订阅
 You can check all subscription names for a given topic using one of the following methods.
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-38966-tab-38967" class="nav-link active" data-group="group_38966" data-tab="tab-group-38966-content-38967">pulsar-admin</div><div id="tab-group-38966-tab-38968" class="nav-link" data-group="group_38966" data-tab="tab-group-38966-content-38968">REST API</div><div id="tab-group-38966-tab-38969" class="nav-link" data-group="group_38966" data-tab="tab-group-38966-content-38969">Java</div></div><div class="tab-content"><div id="tab-gr [...]
 </span></div></div><div id="tab-group-38966-content-38968" class="tab-pane" data-group="group_38966" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/getSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>GET</b> <i>/admin/v2/:schema/:tenant/:namespace/:topic/subscriptions</i></a>
@@ -806,7 +807,7 @@ When a subscription does not process messages any more, you can unsubscribe it u
 </span></div></div><div id="tab-group-38970-content-38972" class="tab-pane" data-group="group_38970" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/deleteSubscription?version=2.9.1&amp;apiVersion=v2"><b>DELETE</b> <i>/admin/v2/namespaces/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-38970-content-38973" class="tab-pane" data-group="group_38970" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().deleteSubscription(topic, subscriptionName);<br /></code></pre>
-</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.8.3/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.8.3/admin-api-functions"><span>Functions</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="#列出-to [...]
+</span></div></div></div></div></span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.8.3/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.8.3/admin-api-functions"><span>Functions</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="#列出-to [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.8.3/cookbooks-retention-expiry.html b/content/docs/zh-CN/2.8.3/cookbooks-retention-expiry.html
index eae323c..8d976fa 100644
--- a/content/docs/zh-CN/2.8.3/cookbooks-retention-expiry.html
+++ b/content/docs/zh-CN/2.8.3/cookbooks-retention-expiry.html
@@ -156,7 +156,7 @@ To disable the retention policy, you need to set both the size and time limit to
 <h4><a class="anchor" aria-hidden="true" id="java"></a><a href="#java" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -283,7 +283,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <li><p><strong>Entry log rollover period</strong>: multiple ledgers in BookKeeper are interleaved into an <a href="https://bookkeeper.apache.org/docs/4.11.1/getting-started/concepts/#entry-logs">entry log</a>. 对于已删除的 ledger ,必须将条目日志 entry log 全部滚动。 Entry log 滚动周期是可配置的,但完全基于条目日志的大小。 详情参阅 <a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-settings">这里</a>。 Entry log 一经滚动,就可以进行垃圾回收 entry log。</p></li>
 <li><p><strong>Garbage collection interval</strong>: because entry logs have interleaved ledgers, to free up space, the entry logs need to be rewritten. 垃圾收集间隔是 BookKeeper 执行垃圾收集的频率 这与 entry log 的小压缩和大压缩有关。 详情参阅<a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-compaction-settings">这里</a>。</p></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.8.3/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.8.3/cookbooks-encryption"><span>加密</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="#设置保留策略 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.8.3/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.8.3/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.8.3/cookbooks-retention-expiry/index.html b/content/docs/zh-CN/2.8.3/cookbooks-retention-expiry/index.html
index eae323c..8d976fa 100644
--- a/content/docs/zh-CN/2.8.3/cookbooks-retention-expiry/index.html
+++ b/content/docs/zh-CN/2.8.3/cookbooks-retention-expiry/index.html
@@ -156,7 +156,7 @@ To disable the retention policy, you need to set both the size and time limit to
 <h4><a class="anchor" aria-hidden="true" id="java"></a><a href="#java" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
 <pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -283,7 +283,7 @@ admin.namespaces().setBacklogQuota(namespace, quota);
 <li><p><strong>Entry log rollover period</strong>: multiple ledgers in BookKeeper are interleaved into an <a href="https://bookkeeper.apache.org/docs/4.11.1/getting-started/concepts/#entry-logs">entry log</a>. 对于已删除的 ledger ,必须将条目日志 entry log 全部滚动。 Entry log 滚动周期是可配置的,但完全基于条目日志的大小。 详情参阅 <a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-settings">这里</a>。 Entry log 一经滚动,就可以进行垃圾回收 entry log。</p></li>
 <li><p><strong>Garbage collection interval</strong>: because entry logs have interleaved ledgers, to free up space, the entry logs need to be rewritten. 垃圾收集间隔是 BookKeeper 执行垃圾收集的频率 这与 entry log 的小压缩和大压缩有关。 详情参阅<a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-compaction-settings">这里</a>。</p></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.8.3/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.8.3/cookbooks-encryption"><span>加密</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="#设置保留策略 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.8.3/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.8.3/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.9.0/admin-api-topics.html b/content/docs/zh-CN/2.9.0/admin-api-topics.html
index 7dc933d..20ad15a 100644
--- a/content/docs/zh-CN/2.9.0/admin-api-topics.html
+++ b/content/docs/zh-CN/2.9.0/admin-api-topics.html
@@ -546,7 +546,7 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-38226-content-38229" class="tab-pane" data-group="group_38226" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="设置去重快照间隔"></a><a href="#设置去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To set the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>设置主题级去重快照间隔,可以使用以下方法之一。</p>
 <blockquote>
 <p><strong>前提条件</strong> <code>brokerDeduplicationEnabled</code>必须设置为<code>true</code>。</p>
 </blockquote>
@@ -556,45 +556,45 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-38230-content-38233" class="tab-pane" data-group="group_38230" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setDeduplicationSnapshotInterval(topic, <span class="hljs-number">1000</span>)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="移除去重快照间隔"></a><a href="#移除去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To remove the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>移除主题级去重快照间隔,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-38234-tab-38235" class="nav-link active" data-group="group_38234" data-tab="tab-group-38234-content-38235">Pulsar-admin API</div><div id="tab-group-38234-tab-38236" class="nav-link" data-group="group_38234" data-tab="tab-group-38234-content-38236">REST API</div><div id="tab-group-38234-tab-38237" class="nav-link" data-group="group_38234" data-tab="tab-group-38234-content-38237">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-38234-content-38236" class="tab-pane" data-group="group_38234" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/deduplicationSnapshotInterval?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-38234-content-38237" class="tab-pane" data-group="group_38234" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-inactive-topic-policies"></a><a href="#configure-inactive-topic-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.5S1 [...]
-<h4><a class="anchor" aria-hidden="true" id="get-inactive-topic-policies"></a><a href="#get-inactive-topic-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 1 [...]
-<p>To get the topic-level inactive topic policies, use one of the following methods.</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.6 [...]
+<h4><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.6 [...]
+<p>获取主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-38238-tab-38239" class="nav-link active" data-group="group_38238" data-tab="tab-group-38238-content-38239">Pulsar-admin API</div><div id="tab-group-38238-tab-38240" class="nav-link" data-group="group_38238" data-tab="tab-group-38238-content-38240">REST API</div><div id="tab-group-38238-tab-38241" class="nav-link" data-group="group_38238" data-tab="tab-group-38238-content-38241">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-38238-content-38240" class="tab-pane" data-group="group_38238" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-38238-content-38241" class="tab-pane" data-group="group_38238" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-inactive-topic-policies"></a><a href="#set-inactive-topic-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 1 [...]
-<p>To set the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>设置主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-38242-tab-38243" class="nav-link active" data-group="group_38242" data-tab="tab-group-38242-content-38243">Pulsar-admin API</div><div id="tab-group-38242-tab-38244" class="nav-link" data-group="group_38242" data-tab="tab-group-38242-content-38244">REST API</div><div id="tab-group-38242-tab-38245" class="nav-link" data-group="group_38242" data-tab="tab-group-38242-content-38245">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-38242-content-38244" class="tab-pane" data-group="group_38242" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-38242-content-38245" class="tab-pane" data-group="group_38242" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setInactiveTopicPolicies(topic, inactiveTopicPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-inactive-topic-policies"></a><a href="#remove-inactive-topic-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 1 [...]
-<p>To remove the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>移除主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-38246-tab-38247" class="nav-link active" data-group="group_38246" data-tab="tab-group-38246-content-38247">Pulsar-admin API</div><div id="tab-group-38246-tab-38248" class="nav-link" data-group="group_38246" data-tab="tab-group-38246-content-38248">REST API</div><div id="tab-group-38246-tab-38249" class="nav-link" data-group="group_38246" data-tab="tab-group-38246-content-38249">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-38246-content-38248" class="tab-pane" data-group="group_38246" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-38246-content-38249" class="tab-pane" data-group="group_38246" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-offload-policies"></a><a href="#configure-offload-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 12H [...]
-<h4><a class="anchor" aria-hidden="true" id="get-offload-policies"></a><a href="#get-offload-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 [...]
-<p>To get the topic-level offload policies, use one of the following methods.</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. [...]
+<h4><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. [...]
+<p>获取主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-38250-tab-38251" class="nav-link active" data-group="group_38250" data-tab="tab-group-38250-content-38251">Pulsar-admin API</div><div id="tab-group-38250-tab-38252" class="nav-link" data-group="group_38250" data-tab="tab-group-38250-content-38252">REST API</div><div id="tab-group-38250-tab-38253" class="nav-link" data-group="group_38250" data-tab="tab-group-38250-content-38253">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-38250-content-38252" class="tab-pane" data-group="group_38250" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-38250-content-38253" class="tab-pane" data-group="group_38250" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getOffloadPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-offload-policies"></a><a href="#set-offload-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 [...]
-<p>To set the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>设置主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-38254-tab-38255" class="nav-link active" data-group="group_38254" data-tab="tab-group-38254-content-38255">Pulsar-admin API</div><div id="tab-group-38254-tab-38256" class="nav-link" data-group="group_38254" data-tab="tab-group-38254-content-38256">REST API</div><div id="tab-group-38254-tab-38257" class="nav-link" data-group="group_38254" data-tab="tab-group-38254-content-38257">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-38254-content-38256" class="tab-pane" data-group="group_38254" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-38254-content-38257" class="tab-pane" data-group="group_38254" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setOffloadPolicies(topic, offloadPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-offload-policies"></a><a href="#remove-offload-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 [...]
-<p>To remove the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>移除主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-38258-tab-38259" class="nav-link active" data-group="group_38258" data-tab="tab-group-38258-content-38259">Pulsar-admin API</div><div id="tab-group-38258-tab-38260" class="nav-link" data-group="group_38258" data-tab="tab-group-38258-content-38260">REST API</div><div id="tab-group-38258-tab-38261" class="nav-link" data-group="group_38258" data-tab="tab-group-38258-content-38261">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-38258-content-38260" class="tab-pane" data-group="group_38258" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-38258-content-38261" class="tab-pane" data-group="group_38258" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeOffloadPolicies(topic)<br /></code></pre>
@@ -847,9 +847,10 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 <p>默认情况下,Pulsar 主题由单个 broker 提供服务,这限制了主题的最大吞吐量。 <em>分区主题</em>可以跨越多个 broker,从而实现更高的吞吐量。</p>
 <p>你可以使用 Pulsar 客户端库发布到分区主题。 发布到分区主题时,必须指定路由模式。 如果在创建新的生产者时没有指定任何路由方式,则使用轮询路由模式。</p>
 <h3><a class="anchor" aria-hidden="true" id="routing-mode"></a><a href="#routing-mode" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. The routing mode determines which partition(internal topic) that each message should be published to.</p>
-<p>The following <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
- options are available.</p>
+<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. 路由模式决定了每条消息应该发往哪个分区(内部主题)。</p>
+<p>以下
+<a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
+ 选项是可用的。</p>
 <table>
 <thead>
 <tr><th style="text-align:left">发送模式</th><th style="text-align:left">说明</th></tr>
@@ -886,7 +887,7 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
     }
 }
 </code></pre>
-<p>With that implementation, you can send</p>
+<p>通过该实现,你可以发送:</p>
 <pre><code class="hljs css language-java">String pulsarBrokerRootUrl = <span class="hljs-string">"pulsar://localhost:6650"</span>;
 String topic = <span class="hljs-string">"persistent://my-tenant/my-cluster-my-namespace/my-topic"</span>;
 
@@ -898,7 +899,7 @@ Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = pulsarClient
 producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBytes());
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="使用-key-时如何选择分区"></a><a href="#使用-key-时如何选择分区" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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>If a message has a key, it supersedes the round robin routing policy. The following example illustrates how to choose the partition when using a key.</p>
+<p>If a message has a key, it supersedes the round robin routing policy. 以下示例说明当使用key时如何选择分区。</p>
 <pre><code class="hljs css language-java"><span class="hljs-comment">// 如果消息存在key,轮询路由策略将被替换</span>
         <span class="hljs-keyword">if</span> (msg.hasKey()) {
             <span class="hljs-keyword">return</span> signSafeMod(hash.makeHash(msg.getKey()), topicMetadata.numPartitions());
@@ -911,7 +912,7 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
             <span class="hljs-keyword">return</span> signSafeMod(PARTITION_INDEX_UPDATER.getAndIncrement(<span class="hljs-keyword">this</span>), topicMetadata.numPartiations());
 }
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.9.0/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.9.0/admin-api-functions"><span>Functions</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="#列出-topic">列出 topic</a></li><li><a hr [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.9.0/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.9.0/admin-api-functions"><span>Functions</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="#列出-topic">列出 topic</a></li><li><a hr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.9.0/admin-api-topics/index.html b/content/docs/zh-CN/2.9.0/admin-api-topics/index.html
index 7dc933d..20ad15a 100644
--- a/content/docs/zh-CN/2.9.0/admin-api-topics/index.html
+++ b/content/docs/zh-CN/2.9.0/admin-api-topics/index.html
@@ -546,7 +546,7 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-38226-content-38229" class="tab-pane" data-group="group_38226" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="设置去重快照间隔"></a><a href="#设置去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To set the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>设置主题级去重快照间隔,可以使用以下方法之一。</p>
 <blockquote>
 <p><strong>前提条件</strong> <code>brokerDeduplicationEnabled</code>必须设置为<code>true</code>。</p>
 </blockquote>
@@ -556,45 +556,45 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-38230-content-38233" class="tab-pane" data-group="group_38230" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setDeduplicationSnapshotInterval(topic, <span class="hljs-number">1000</span>)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="移除去重快照间隔"></a><a href="#移除去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To remove the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>移除主题级去重快照间隔,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-38234-tab-38235" class="nav-link active" data-group="group_38234" data-tab="tab-group-38234-content-38235">Pulsar-admin API</div><div id="tab-group-38234-tab-38236" class="nav-link" data-group="group_38234" data-tab="tab-group-38234-content-38236">REST API</div><div id="tab-group-38234-tab-38237" class="nav-link" data-group="group_38234" data-tab="tab-group-38234-content-38237">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-38234-content-38236" class="tab-pane" data-group="group_38234" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/deduplicationSnapshotInterval?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-38234-content-38237" class="tab-pane" data-group="group_38234" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-inactive-topic-policies"></a><a href="#configure-inactive-topic-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.5S1 [...]
-<h4><a class="anchor" aria-hidden="true" id="get-inactive-topic-policies"></a><a href="#get-inactive-topic-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 1 [...]
-<p>To get the topic-level inactive topic policies, use one of the following methods.</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.6 [...]
+<h4><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.6 [...]
+<p>获取主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-38238-tab-38239" class="nav-link active" data-group="group_38238" data-tab="tab-group-38238-content-38239">Pulsar-admin API</div><div id="tab-group-38238-tab-38240" class="nav-link" data-group="group_38238" data-tab="tab-group-38238-content-38240">REST API</div><div id="tab-group-38238-tab-38241" class="nav-link" data-group="group_38238" data-tab="tab-group-38238-content-38241">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-38238-content-38240" class="tab-pane" data-group="group_38238" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-38238-content-38241" class="tab-pane" data-group="group_38238" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-inactive-topic-policies"></a><a href="#set-inactive-topic-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 1 [...]
-<p>To set the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>设置主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-38242-tab-38243" class="nav-link active" data-group="group_38242" data-tab="tab-group-38242-content-38243">Pulsar-admin API</div><div id="tab-group-38242-tab-38244" class="nav-link" data-group="group_38242" data-tab="tab-group-38242-content-38244">REST API</div><div id="tab-group-38242-tab-38245" class="nav-link" data-group="group_38242" data-tab="tab-group-38242-content-38245">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-38242-content-38244" class="tab-pane" data-group="group_38242" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-38242-content-38245" class="tab-pane" data-group="group_38242" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setInactiveTopicPolicies(topic, inactiveTopicPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-inactive-topic-policies"></a><a href="#remove-inactive-topic-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 1 [...]
-<p>To remove the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>移除主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-38246-tab-38247" class="nav-link active" data-group="group_38246" data-tab="tab-group-38246-content-38247">Pulsar-admin API</div><div id="tab-group-38246-tab-38248" class="nav-link" data-group="group_38246" data-tab="tab-group-38246-content-38248">REST API</div><div id="tab-group-38246-tab-38249" class="nav-link" data-group="group_38246" data-tab="tab-group-38246-content-38249">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-38246-content-38248" class="tab-pane" data-group="group_38246" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-38246-content-38249" class="tab-pane" data-group="group_38246" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-offload-policies"></a><a href="#configure-offload-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 12H [...]
-<h4><a class="anchor" aria-hidden="true" id="get-offload-policies"></a><a href="#get-offload-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 [...]
-<p>To get the topic-level offload policies, use one of the following methods.</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. [...]
+<h4><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. [...]
+<p>获取主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-38250-tab-38251" class="nav-link active" data-group="group_38250" data-tab="tab-group-38250-content-38251">Pulsar-admin API</div><div id="tab-group-38250-tab-38252" class="nav-link" data-group="group_38250" data-tab="tab-group-38250-content-38252">REST API</div><div id="tab-group-38250-tab-38253" class="nav-link" data-group="group_38250" data-tab="tab-group-38250-content-38253">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-38250-content-38252" class="tab-pane" data-group="group_38250" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-38250-content-38253" class="tab-pane" data-group="group_38250" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getOffloadPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-offload-policies"></a><a href="#set-offload-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 [...]
-<p>To set the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>设置主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-38254-tab-38255" class="nav-link active" data-group="group_38254" data-tab="tab-group-38254-content-38255">Pulsar-admin API</div><div id="tab-group-38254-tab-38256" class="nav-link" data-group="group_38254" data-tab="tab-group-38254-content-38256">REST API</div><div id="tab-group-38254-tab-38257" class="nav-link" data-group="group_38254" data-tab="tab-group-38254-content-38257">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-38254-content-38256" class="tab-pane" data-group="group_38254" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-38254-content-38257" class="tab-pane" data-group="group_38254" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setOffloadPolicies(topic, offloadPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-offload-policies"></a><a href="#remove-offload-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 [...]
-<p>To remove the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>移除主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-38258-tab-38259" class="nav-link active" data-group="group_38258" data-tab="tab-group-38258-content-38259">Pulsar-admin API</div><div id="tab-group-38258-tab-38260" class="nav-link" data-group="group_38258" data-tab="tab-group-38258-content-38260">REST API</div><div id="tab-group-38258-tab-38261" class="nav-link" data-group="group_38258" data-tab="tab-group-38258-content-38261">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-38258-content-38260" class="tab-pane" data-group="group_38258" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-38258-content-38261" class="tab-pane" data-group="group_38258" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeOffloadPolicies(topic)<br /></code></pre>
@@ -847,9 +847,10 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 <p>默认情况下,Pulsar 主题由单个 broker 提供服务,这限制了主题的最大吞吐量。 <em>分区主题</em>可以跨越多个 broker,从而实现更高的吞吐量。</p>
 <p>你可以使用 Pulsar 客户端库发布到分区主题。 发布到分区主题时,必须指定路由模式。 如果在创建新的生产者时没有指定任何路由方式,则使用轮询路由模式。</p>
 <h3><a class="anchor" aria-hidden="true" id="routing-mode"></a><a href="#routing-mode" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. The routing mode determines which partition(internal topic) that each message should be published to.</p>
-<p>The following <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
- options are available.</p>
+<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. 路由模式决定了每条消息应该发往哪个分区(内部主题)。</p>
+<p>以下
+<a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
+ 选项是可用的。</p>
 <table>
 <thead>
 <tr><th style="text-align:left">发送模式</th><th style="text-align:left">说明</th></tr>
@@ -886,7 +887,7 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
     }
 }
 </code></pre>
-<p>With that implementation, you can send</p>
+<p>通过该实现,你可以发送:</p>
 <pre><code class="hljs css language-java">String pulsarBrokerRootUrl = <span class="hljs-string">"pulsar://localhost:6650"</span>;
 String topic = <span class="hljs-string">"persistent://my-tenant/my-cluster-my-namespace/my-topic"</span>;
 
@@ -898,7 +899,7 @@ Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = pulsarClient
 producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBytes());
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="使用-key-时如何选择分区"></a><a href="#使用-key-时如何选择分区" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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>If a message has a key, it supersedes the round robin routing policy. The following example illustrates how to choose the partition when using a key.</p>
+<p>If a message has a key, it supersedes the round robin routing policy. 以下示例说明当使用key时如何选择分区。</p>
 <pre><code class="hljs css language-java"><span class="hljs-comment">// 如果消息存在key,轮询路由策略将被替换</span>
         <span class="hljs-keyword">if</span> (msg.hasKey()) {
             <span class="hljs-keyword">return</span> signSafeMod(hash.makeHash(msg.getKey()), topicMetadata.numPartitions());
@@ -911,7 +912,7 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
             <span class="hljs-keyword">return</span> signSafeMod(PARTITION_INDEX_UPDATER.getAndIncrement(<span class="hljs-keyword">this</span>), topicMetadata.numPartiations());
 }
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.9.0/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.9.0/admin-api-functions"><span>Functions</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="#列出-topic">列出 topic</a></li><li><a hr [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.9.0/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/2.9.0/admin-api-functions"><span>Functions</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="#列出-topic">列出 topic</a></li><li><a hr [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.9.0/cookbooks-retention-expiry.html b/content/docs/zh-CN/2.9.0/cookbooks-retention-expiry.html
index 8fa4726..f532435 100644
--- a/content/docs/zh-CN/2.9.0/cookbooks-retention-expiry.html
+++ b/content/docs/zh-CN/2.9.0/cookbooks-retention-expiry.html
@@ -148,7 +148,7 @@ To disable the retention policy, you need to set both the size and time limit to
 </p>
 </span></div></div><div id="tab-group-37887-content-37890" class="tab-pane" data-group="group_37887" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);<br /></code></pre>
 </span></div></div></div></div>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -237,7 +237,7 @@ To disable the retention policy, you need to set both the size and time limit to
 <li><p><strong>Entry log rollover period</strong>: multiple ledgers in BookKeeper are interleaved into an <a href="https://bookkeeper.apache.org/docs/4.11.1/getting-started/concepts/#entry-logs">entry log</a>. 对于已删除的 ledger ,必须将条目日志 entry log 全部滚动。 Entry log 滚动周期是可配置的,但完全基于条目日志的大小。 详情参阅 <a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-settings">这里</a>。 Entry log 一经滚动,就可以进行垃圾回收 entry log。</p></li>
 <li><p><strong>Garbage collection interval</strong>: because entry logs have interleaved ledgers, to free up space, the entry logs need to be rewritten. 垃圾收集间隔是 BookKeeper 执行垃圾收集的频率 这与 entry log 的小压缩和大压缩有关。 详情参阅<a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-compaction-settings">这里</a>。</p></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.9.0/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.9.0/cookbooks-encryption"><span>加密</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="#设置保留策略 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.9.0/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.9.0/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/2.9.0/cookbooks-retention-expiry/index.html b/content/docs/zh-CN/2.9.0/cookbooks-retention-expiry/index.html
index 8fa4726..f532435 100644
--- a/content/docs/zh-CN/2.9.0/cookbooks-retention-expiry/index.html
+++ b/content/docs/zh-CN/2.9.0/cookbooks-retention-expiry/index.html
@@ -148,7 +148,7 @@ To disable the retention policy, you need to set both the size and time limit to
 </p>
 </span></div></div><div id="tab-group-37887-content-37890" class="tab-pane" data-group="group_37887" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);<br /></code></pre>
 </span></div></div></div></div>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -237,7 +237,7 @@ To disable the retention policy, you need to set both the size and time limit to
 <li><p><strong>Entry log rollover period</strong>: multiple ledgers in BookKeeper are interleaved into an <a href="https://bookkeeper.apache.org/docs/4.11.1/getting-started/concepts/#entry-logs">entry log</a>. 对于已删除的 ledger ,必须将条目日志 entry log 全部滚动。 Entry log 滚动周期是可配置的,但完全基于条目日志的大小。 详情参阅 <a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-settings">这里</a>。 Entry log 一经滚动,就可以进行垃圾回收 entry log。</p></li>
 <li><p><strong>Garbage collection interval</strong>: because entry logs have interleaved ledgers, to free up space, the entry logs need to be rewritten. 垃圾收集间隔是 BookKeeper 执行垃圾收集的频率 这与 entry log 的小压缩和大压缩有关。 详情参阅<a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-compaction-settings">这里</a>。</p></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.9.0/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.9.0/cookbooks-encryption"><span>加密</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="#设置保留策略 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.9.0/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.9.0/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/docs/zh-CN/admin-api-topics.html b/content/docs/zh-CN/admin-api-topics.html
index cf2a76d..cb809ab 100644
--- a/content/docs/zh-CN/admin-api-topics.html
+++ b/content/docs/zh-CN/admin-api-topics.html
@@ -546,7 +546,7 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-37547-content-37550" class="tab-pane" data-group="group_37547" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="设置去重快照间隔"></a><a href="#设置去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To set the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>设置主题级去重快照间隔,可以使用以下方法之一。</p>
 <blockquote>
 <p><strong>前提条件</strong> <code>brokerDeduplicationEnabled</code>必须设置为<code>true</code>。</p>
 </blockquote>
@@ -556,45 +556,45 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-37551-content-37554" class="tab-pane" data-group="group_37551" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setDeduplicationSnapshotInterval(topic, <span class="hljs-number">1000</span>)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="移除去重快照间隔"></a><a href="#移除去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To remove the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>移除主题级去重快照间隔,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-37555-tab-37556" class="nav-link active" data-group="group_37555" data-tab="tab-group-37555-content-37556">Pulsar-admin API</div><div id="tab-group-37555-tab-37557" class="nav-link" data-group="group_37555" data-tab="tab-group-37555-content-37557">REST API</div><div id="tab-group-37555-tab-37558" class="nav-link" data-group="group_37555" data-tab="tab-group-37555-content-37558">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-37555-content-37557" class="tab-pane" data-group="group_37555" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/deduplicationSnapshotInterval?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-37555-content-37558" class="tab-pane" data-group="group_37555" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-inactive-topic-policies"></a><a href="#configure-inactive-topic-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.5S1 [...]
-<h4><a class="anchor" aria-hidden="true" id="get-inactive-topic-policies"></a><a href="#get-inactive-topic-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 1 [...]
-<p>To get the topic-level inactive topic policies, use one of the following methods.</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.6 [...]
+<h4><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.6 [...]
+<p>获取主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-37559-tab-37560" class="nav-link active" data-group="group_37559" data-tab="tab-group-37559-content-37560">Pulsar-admin API</div><div id="tab-group-37559-tab-37561" class="nav-link" data-group="group_37559" data-tab="tab-group-37559-content-37561">REST API</div><div id="tab-group-37559-tab-37562" class="nav-link" data-group="group_37559" data-tab="tab-group-37559-content-37562">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-37559-content-37561" class="tab-pane" data-group="group_37559" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-37559-content-37562" class="tab-pane" data-group="group_37559" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-inactive-topic-policies"></a><a href="#set-inactive-topic-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 1 [...]
-<p>To set the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>设置主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-37563-tab-37564" class="nav-link active" data-group="group_37563" data-tab="tab-group-37563-content-37564">Pulsar-admin API</div><div id="tab-group-37563-tab-37565" class="nav-link" data-group="group_37563" data-tab="tab-group-37563-content-37565">REST API</div><div id="tab-group-37563-tab-37566" class="nav-link" data-group="group_37563" data-tab="tab-group-37563-content-37566">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-37563-content-37565" class="tab-pane" data-group="group_37563" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-37563-content-37566" class="tab-pane" data-group="group_37563" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setInactiveTopicPolicies(topic, inactiveTopicPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-inactive-topic-policies"></a><a href="#remove-inactive-topic-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 1 [...]
-<p>To remove the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>移除主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-37567-tab-37568" class="nav-link active" data-group="group_37567" data-tab="tab-group-37567-content-37568">Pulsar-admin API</div><div id="tab-group-37567-tab-37569" class="nav-link" data-group="group_37567" data-tab="tab-group-37567-content-37569">REST API</div><div id="tab-group-37567-tab-37570" class="nav-link" data-group="group_37567" data-tab="tab-group-37567-content-37570">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-37567-content-37569" class="tab-pane" data-group="group_37567" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-37567-content-37570" class="tab-pane" data-group="group_37567" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-offload-policies"></a><a href="#configure-offload-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 12H [...]
-<h4><a class="anchor" aria-hidden="true" id="get-offload-policies"></a><a href="#get-offload-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 [...]
-<p>To get the topic-level offload policies, use one of the following methods.</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. [...]
+<h4><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. [...]
+<p>获取主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-37571-tab-37572" class="nav-link active" data-group="group_37571" data-tab="tab-group-37571-content-37572">Pulsar-admin API</div><div id="tab-group-37571-tab-37573" class="nav-link" data-group="group_37571" data-tab="tab-group-37571-content-37573">REST API</div><div id="tab-group-37571-tab-37574" class="nav-link" data-group="group_37571" data-tab="tab-group-37571-content-37574">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-37571-content-37573" class="tab-pane" data-group="group_37571" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-37571-content-37574" class="tab-pane" data-group="group_37571" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getOffloadPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-offload-policies"></a><a href="#set-offload-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 [...]
-<p>To set the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>设置主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-37575-tab-37576" class="nav-link active" data-group="group_37575" data-tab="tab-group-37575-content-37576">Pulsar-admin API</div><div id="tab-group-37575-tab-37577" class="nav-link" data-group="group_37575" data-tab="tab-group-37575-content-37577">REST API</div><div id="tab-group-37575-tab-37578" class="nav-link" data-group="group_37575" data-tab="tab-group-37575-content-37578">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-37575-content-37577" class="tab-pane" data-group="group_37575" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-37575-content-37578" class="tab-pane" data-group="group_37575" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setOffloadPolicies(topic, offloadPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-offload-policies"></a><a href="#remove-offload-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 [...]
-<p>To remove the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>移除主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-37579-tab-37580" class="nav-link active" data-group="group_37579" data-tab="tab-group-37579-content-37580">Pulsar-admin API</div><div id="tab-group-37579-tab-37581" class="nav-link" data-group="group_37579" data-tab="tab-group-37579-content-37581">REST API</div><div id="tab-group-37579-tab-37582" class="nav-link" data-group="group_37579" data-tab="tab-group-37579-content-37582">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-37579-content-37581" class="tab-pane" data-group="group_37579" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-37579-content-37582" class="tab-pane" data-group="group_37579" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeOffloadPolicies(topic)<br /></code></pre>
@@ -847,9 +847,10 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 <p>默认情况下,Pulsar 主题由单个 broker 提供服务,这限制了主题的最大吞吐量。 <em>分区主题</em>可以跨越多个 broker,从而实现更高的吞吐量。</p>
 <p>你可以使用 Pulsar 客户端库发布到分区主题。 发布到分区主题时,必须指定路由模式。 如果在创建新的生产者时没有指定任何路由方式,则使用轮询路由模式。</p>
 <h3><a class="anchor" aria-hidden="true" id="routing-mode"></a><a href="#routing-mode" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. The routing mode determines which partition(internal topic) that each message should be published to.</p>
-<p>The following <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
- options are available.</p>
+<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. 路由模式决定了每条消息应该发往哪个分区(内部主题)。</p>
+<p>以下
+<a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
+ 选项是可用的。</p>
 <table>
 <thead>
 <tr><th style="text-align:left">发送模式</th><th style="text-align:left">说明</th></tr>
@@ -886,7 +887,7 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
     }
 }
 </code></pre>
-<p>With that implementation, you can send</p>
+<p>通过该实现,你可以发送:</p>
 <pre><code class="hljs css language-java">String pulsarBrokerRootUrl = <span class="hljs-string">"pulsar://localhost:6650"</span>;
 String topic = <span class="hljs-string">"persistent://my-tenant/my-cluster-my-namespace/my-topic"</span>;
 
@@ -898,7 +899,7 @@ Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = pulsarClient
 producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBytes());
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="使用-key-时如何选择分区"></a><a href="#使用-key-时如何选择分区" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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>If a message has a key, it supersedes the round robin routing policy. The following example illustrates how to choose the partition when using a key.</p>
+<p>If a message has a key, it supersedes the round robin routing policy. 以下示例说明当使用key时如何选择分区。</p>
 <pre><code class="hljs css language-java"><span class="hljs-comment">// 如果消息存在key,轮询路由策略将被替换</span>
         <span class="hljs-keyword">if</span> (msg.hasKey()) {
             <span class="hljs-keyword">return</span> signSafeMod(hash.makeHash(msg.getKey()), topicMetadata.numPartitions());
@@ -911,7 +912,7 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
             <span class="hljs-keyword">return</span> signSafeMod(PARTITION_INDEX_UPDATER.getAndIncrement(<span class="hljs-keyword">this</span>), topicMetadata.numPartiations());
 }
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/admin-api-functions"><span>Functions</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="#列出-topic">列出 topic</a></li><li><a href="#授权">授权< [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/admin-api-functions"><span>Functions</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="#列出-topic">列出 topic</a></li><li><a href="#授权">授权< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/admin-api-topics/index.html b/content/docs/zh-CN/admin-api-topics/index.html
index cf2a76d..cb809ab 100644
--- a/content/docs/zh-CN/admin-api-topics/index.html
+++ b/content/docs/zh-CN/admin-api-topics/index.html
@@ -546,7 +546,7 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-37547-content-37550" class="tab-pane" data-group="group_37547" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="设置去重快照间隔"></a><a href="#设置去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To set the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>设置主题级去重快照间隔,可以使用以下方法之一。</p>
 <blockquote>
 <p><strong>前提条件</strong> <code>brokerDeduplicationEnabled</code>必须设置为<code>true</code>。</p>
 </blockquote>
@@ -556,45 +556,45 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-37551-content-37554" class="tab-pane" data-group="group_37551" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setDeduplicationSnapshotInterval(topic, <span class="hljs-number">1000</span>)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="移除去重快照间隔"></a><a href="#移除去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To remove the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>移除主题级去重快照间隔,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-37555-tab-37556" class="nav-link active" data-group="group_37555" data-tab="tab-group-37555-content-37556">Pulsar-admin API</div><div id="tab-group-37555-tab-37557" class="nav-link" data-group="group_37555" data-tab="tab-group-37555-content-37557">REST API</div><div id="tab-group-37555-tab-37558" class="nav-link" data-group="group_37555" data-tab="tab-group-37555-content-37558">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-37555-content-37557" class="tab-pane" data-group="group_37555" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/deduplicationSnapshotInterval?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-37555-content-37558" class="tab-pane" data-group="group_37555" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-inactive-topic-policies"></a><a href="#configure-inactive-topic-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.5S1 [...]
-<h4><a class="anchor" aria-hidden="true" id="get-inactive-topic-policies"></a><a href="#get-inactive-topic-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 1 [...]
-<p>To get the topic-level inactive topic policies, use one of the following methods.</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.6 [...]
+<h4><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.6 [...]
+<p>获取主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-37559-tab-37560" class="nav-link active" data-group="group_37559" data-tab="tab-group-37559-content-37560">Pulsar-admin API</div><div id="tab-group-37559-tab-37561" class="nav-link" data-group="group_37559" data-tab="tab-group-37559-content-37561">REST API</div><div id="tab-group-37559-tab-37562" class="nav-link" data-group="group_37559" data-tab="tab-group-37559-content-37562">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-37559-content-37561" class="tab-pane" data-group="group_37559" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-37559-content-37562" class="tab-pane" data-group="group_37559" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-inactive-topic-policies"></a><a href="#set-inactive-topic-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 1 [...]
-<p>To set the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>设置主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-37563-tab-37564" class="nav-link active" data-group="group_37563" data-tab="tab-group-37563-content-37564">Pulsar-admin API</div><div id="tab-group-37563-tab-37565" class="nav-link" data-group="group_37563" data-tab="tab-group-37563-content-37565">REST API</div><div id="tab-group-37563-tab-37566" class="nav-link" data-group="group_37563" data-tab="tab-group-37563-content-37566">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-37563-content-37565" class="tab-pane" data-group="group_37563" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-37563-content-37566" class="tab-pane" data-group="group_37563" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setInactiveTopicPolicies(topic, inactiveTopicPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-inactive-topic-policies"></a><a href="#remove-inactive-topic-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 1 [...]
-<p>To remove the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>移除主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-37567-tab-37568" class="nav-link active" data-group="group_37567" data-tab="tab-group-37567-content-37568">Pulsar-admin API</div><div id="tab-group-37567-tab-37569" class="nav-link" data-group="group_37567" data-tab="tab-group-37567-content-37569">REST API</div><div id="tab-group-37567-tab-37570" class="nav-link" data-group="group_37567" data-tab="tab-group-37567-content-37570">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-37567-content-37569" class="tab-pane" data-group="group_37567" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-37567-content-37570" class="tab-pane" data-group="group_37567" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-offload-policies"></a><a href="#configure-offload-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 12H [...]
-<h4><a class="anchor" aria-hidden="true" id="get-offload-policies"></a><a href="#get-offload-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 [...]
-<p>To get the topic-level offload policies, use one of the following methods.</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. [...]
+<h4><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. [...]
+<p>获取主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-37571-tab-37572" class="nav-link active" data-group="group_37571" data-tab="tab-group-37571-content-37572">Pulsar-admin API</div><div id="tab-group-37571-tab-37573" class="nav-link" data-group="group_37571" data-tab="tab-group-37571-content-37573">REST API</div><div id="tab-group-37571-tab-37574" class="nav-link" data-group="group_37571" data-tab="tab-group-37571-content-37574">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-37571-content-37573" class="tab-pane" data-group="group_37571" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-37571-content-37574" class="tab-pane" data-group="group_37571" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getOffloadPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-offload-policies"></a><a href="#set-offload-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 [...]
-<p>To set the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>设置主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-37575-tab-37576" class="nav-link active" data-group="group_37575" data-tab="tab-group-37575-content-37576">Pulsar-admin API</div><div id="tab-group-37575-tab-37577" class="nav-link" data-group="group_37575" data-tab="tab-group-37575-content-37577">REST API</div><div id="tab-group-37575-tab-37578" class="nav-link" data-group="group_37575" data-tab="tab-group-37575-content-37578">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-37575-content-37577" class="tab-pane" data-group="group_37575" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-37575-content-37578" class="tab-pane" data-group="group_37575" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setOffloadPolicies(topic, offloadPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-offload-policies"></a><a href="#remove-offload-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 [...]
-<p>To remove the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>移除主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-37579-tab-37580" class="nav-link active" data-group="group_37579" data-tab="tab-group-37579-content-37580">Pulsar-admin API</div><div id="tab-group-37579-tab-37581" class="nav-link" data-group="group_37579" data-tab="tab-group-37579-content-37581">REST API</div><div id="tab-group-37579-tab-37582" class="nav-link" data-group="group_37579" data-tab="tab-group-37579-content-37582">Java API</div></div><div class="tab-content"><div id [...]
 </span></div></div><div id="tab-group-37579-content-37581" class="tab-pane" data-group="group_37579" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-37579-content-37582" class="tab-pane" data-group="group_37579" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeOffloadPolicies(topic)<br /></code></pre>
@@ -847,9 +847,10 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 <p>默认情况下,Pulsar 主题由单个 broker 提供服务,这限制了主题的最大吞吐量。 <em>分区主题</em>可以跨越多个 broker,从而实现更高的吞吐量。</p>
 <p>你可以使用 Pulsar 客户端库发布到分区主题。 发布到分区主题时,必须指定路由模式。 如果在创建新的生产者时没有指定任何路由方式,则使用轮询路由模式。</p>
 <h3><a class="anchor" aria-hidden="true" id="routing-mode"></a><a href="#routing-mode" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. The routing mode determines which partition(internal topic) that each message should be published to.</p>
-<p>The following <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
- options are available.</p>
+<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. 路由模式决定了每条消息应该发往哪个分区(内部主题)。</p>
+<p>以下
+<a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
+ 选项是可用的。</p>
 <table>
 <thead>
 <tr><th style="text-align:left">发送模式</th><th style="text-align:left">说明</th></tr>
@@ -886,7 +887,7 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
     }
 }
 </code></pre>
-<p>With that implementation, you can send</p>
+<p>通过该实现,你可以发送:</p>
 <pre><code class="hljs css language-java">String pulsarBrokerRootUrl = <span class="hljs-string">"pulsar://localhost:6650"</span>;
 String topic = <span class="hljs-string">"persistent://my-tenant/my-cluster-my-namespace/my-topic"</span>;
 
@@ -898,7 +899,7 @@ Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = pulsarClient
 producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBytes());
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="使用-key-时如何选择分区"></a><a href="#使用-key-时如何选择分区" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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>If a message has a key, it supersedes the round robin routing policy. The following example illustrates how to choose the partition when using a key.</p>
+<p>If a message has a key, it supersedes the round robin routing policy. 以下示例说明当使用key时如何选择分区。</p>
 <pre><code class="hljs css language-java"><span class="hljs-comment">// 如果消息存在key,轮询路由策略将被替换</span>
         <span class="hljs-keyword">if</span> (msg.hasKey()) {
             <span class="hljs-keyword">return</span> signSafeMod(hash.makeHash(msg.getKey()), topicMetadata.numPartitions());
@@ -911,7 +912,7 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
             <span class="hljs-keyword">return</span> signSafeMod(PARTITION_INDEX_UPDATER.getAndIncrement(<span class="hljs-keyword">this</span>), topicMetadata.numPartiations());
 }
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/admin-api-functions"><span>Functions</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="#列出-topic">列出 topic</a></li><li><a href="#授权">授权< [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/admin-api-functions"><span>Functions</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="#列出-topic">列出 topic</a></li><li><a href="#授权">授权< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/cookbooks-retention-expiry.html b/content/docs/zh-CN/cookbooks-retention-expiry.html
index b5c8df2..51e3849 100644
--- a/content/docs/zh-CN/cookbooks-retention-expiry.html
+++ b/content/docs/zh-CN/cookbooks-retention-expiry.html
@@ -148,7 +148,7 @@ To disable the retention policy, you need to set both the size and time limit to
 </p>
 </span></div></div><div id="tab-group-37208-content-37211" class="tab-pane" data-group="group_37208" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);<br /></code></pre>
 </span></div></div></div></div>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -237,7 +237,7 @@ To disable the retention policy, you need to set both the size and time limit to
 <li><p><strong>Entry log rollover period</strong>: multiple ledgers in BookKeeper are interleaved into an <a href="https://bookkeeper.apache.org/docs/4.11.1/getting-started/concepts/#entry-logs">entry log</a>. 对于已删除的 ledger ,必须将条目日志 entry log 全部滚动。 Entry log 滚动周期是可配置的,但完全基于条目日志的大小。 详情参阅 <a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-settings">这里</a>。 Entry log 一经滚动,就可以进行垃圾回收 entry log。</p></li>
 <li><p><strong>Garbage collection interval</strong>: because entry logs have interleaved ledgers, to free up space, the entry logs need to be rewritten. 垃圾收集间隔是 BookKeeper 执行垃圾收集的频率 这与 entry log 的小压缩和大压缩有关。 详情参阅<a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-compaction-settings">这里</a>。</p></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/cookbooks-encryption"><span>加密</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> [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/cookbooks-encryption"><span>加密</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> [...]
       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 b5c8df2..51e3849 100644
--- a/content/docs/zh-CN/cookbooks-retention-expiry/index.html
+++ b/content/docs/zh-CN/cookbooks-retention-expiry/index.html
@@ -148,7 +148,7 @@ To disable the retention policy, you need to set both the size and time limit to
 </p>
 </span></div></div><div id="tab-group-37208-content-37211" class="tab-pane" data-group="group_37208" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);<br /></code></pre>
 </span></div></div></div></div>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em> are sets of unacknowledged messages for a topic that have been stored by bookies. Pulsar stores all unacknowledged messages in backlogs until they are processed and acknowledged.</p>
 <p>You can control the allowable size of backlogs, at the namespace level, using <em>backlog quotas</em>. Setting a backlog quota involves setting:</p>
 <p>待办:如何对每个主题或每个 backlog 进行扩展?</p>
@@ -237,7 +237,7 @@ To disable the retention policy, you need to set both the size and time limit to
 <li><p><strong>Entry log rollover period</strong>: multiple ledgers in BookKeeper are interleaved into an <a href="https://bookkeeper.apache.org/docs/4.11.1/getting-started/concepts/#entry-logs">entry log</a>. 对于已删除的 ledger ,必须将条目日志 entry log 全部滚动。 Entry log 滚动周期是可配置的,但完全基于条目日志的大小。 详情参阅 <a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-settings">这里</a>。 Entry log 一经滚动,就可以进行垃圾回收 entry log。</p></li>
 <li><p><strong>Garbage collection interval</strong>: because entry logs have interleaved ledgers, to free up space, the entry logs need to be rewritten. 垃圾收集间隔是 BookKeeper 执行垃圾收集的频率 这与 entry log 的小压缩和大压缩有关。 详情参阅<a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-compaction-settings">这里</a>。</p></li>
 </ul>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/cookbooks-encryption"><span>加密</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> [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/cookbooks-encryption"><span>加密</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> [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/next/admin-api-topics.html b/content/docs/zh-CN/next/admin-api-topics.html
index 479ee2b..a154f53 100644
--- a/content/docs/zh-CN/next/admin-api-topics.html
+++ b/content/docs/zh-CN/next/admin-api-topics.html
@@ -558,7 +558,7 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-2309-content-2312" class="tab-pane" data-group="group_2309" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="设置去重快照间隔"></a><a href="#设置去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To set the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>设置主题级去重快照间隔,可以使用以下方法之一。</p>
 <blockquote>
 <p><strong>前提条件</strong> <code>brokerDeduplicationEnabled</code>必须设置为<code>true</code>。</p>
 </blockquote>
@@ -568,45 +568,45 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-2313-content-2316" class="tab-pane" data-group="group_2313" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setDeduplicationSnapshotInterval(topic, <span class="hljs-number">1000</span>)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="移除去重快照间隔"></a><a href="#移除去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To remove the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>移除主题级去重快照间隔,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-2317-tab-2318" class="nav-link active" data-group="group_2317" data-tab="tab-group-2317-content-2318">Pulsar-admin API</div><div id="tab-group-2317-tab-2319" class="nav-link" data-group="group_2317" data-tab="tab-group-2317-content-2319">REST API</div><div id="tab-group-2317-tab-2320" class="nav-link" data-group="group_2317" data-tab="tab-group-2317-content-2320">Java API</div></div><div class="tab-content"><div id="tab-group-231 [...]
 </span></div></div><div id="tab-group-2317-content-2319" class="tab-pane" data-group="group_2317" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/deduplicationSnapshotInterval?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-2317-content-2320" class="tab-pane" data-group="group_2317" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-inactive-topic-policies"></a><a href="#configure-inactive-topic-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.5S1 [...]
-<h4><a class="anchor" aria-hidden="true" id="get-inactive-topic-policies"></a><a href="#get-inactive-topic-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 1 [...]
-<p>To get the topic-level inactive topic policies, use one of the following methods.</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.6 [...]
+<h4><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.6 [...]
+<p>获取主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-2321-tab-2322" class="nav-link active" data-group="group_2321" data-tab="tab-group-2321-content-2322">Pulsar-admin API</div><div id="tab-group-2321-tab-2323" class="nav-link" data-group="group_2321" data-tab="tab-group-2321-content-2323">REST API</div><div id="tab-group-2321-tab-2324" class="nav-link" data-group="group_2321" data-tab="tab-group-2321-content-2324">Java API</div></div><div class="tab-content"><div id="tab-group-232 [...]
 </span></div></div><div id="tab-group-2321-content-2323" class="tab-pane" data-group="group_2321" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-2321-content-2324" class="tab-pane" data-group="group_2321" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-inactive-topic-policies"></a><a href="#set-inactive-topic-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 1 [...]
-<p>To set the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>设置主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-2325-tab-2326" class="nav-link active" data-group="group_2325" data-tab="tab-group-2325-content-2326">Pulsar-admin API</div><div id="tab-group-2325-tab-2327" class="nav-link" data-group="group_2325" data-tab="tab-group-2325-content-2327">REST API</div><div id="tab-group-2325-tab-2328" class="nav-link" data-group="group_2325" data-tab="tab-group-2325-content-2328">Java API</div></div><div class="tab-content"><div id="tab-group-232 [...]
 </span></div></div><div id="tab-group-2325-content-2327" class="tab-pane" data-group="group_2325" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-2325-content-2328" class="tab-pane" data-group="group_2325" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setInactiveTopicPolicies(topic, inactiveTopicPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-inactive-topic-policies"></a><a href="#remove-inactive-topic-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 1 [...]
-<p>To remove the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>移除主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-2329-tab-2330" class="nav-link active" data-group="group_2329" data-tab="tab-group-2329-content-2330">Pulsar-admin API</div><div id="tab-group-2329-tab-2331" class="nav-link" data-group="group_2329" data-tab="tab-group-2329-content-2331">REST API</div><div id="tab-group-2329-tab-2332" class="nav-link" data-group="group_2329" data-tab="tab-group-2329-content-2332">Java API</div></div><div class="tab-content"><div id="tab-group-232 [...]
 </span></div></div><div id="tab-group-2329-content-2331" class="tab-pane" data-group="group_2329" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-2329-content-2332" class="tab-pane" data-group="group_2329" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-offload-policies"></a><a href="#configure-offload-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 12H [...]
-<h4><a class="anchor" aria-hidden="true" id="get-offload-policies"></a><a href="#get-offload-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 [...]
-<p>To get the topic-level offload policies, use one of the following methods.</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. [...]
+<h4><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. [...]
+<p>获取主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-2333-tab-2334" class="nav-link active" data-group="group_2333" data-tab="tab-group-2333-content-2334">Pulsar-admin API</div><div id="tab-group-2333-tab-2335" class="nav-link" data-group="group_2333" data-tab="tab-group-2333-content-2335">REST API</div><div id="tab-group-2333-tab-2336" class="nav-link" data-group="group_2333" data-tab="tab-group-2333-content-2336">Java API</div></div><div class="tab-content"><div id="tab-group-233 [...]
 </span></div></div><div id="tab-group-2333-content-2335" class="tab-pane" data-group="group_2333" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-2333-content-2336" class="tab-pane" data-group="group_2333" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getOffloadPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-offload-policies"></a><a href="#set-offload-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 [...]
-<p>To set the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>设置主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-2337-tab-2338" class="nav-link active" data-group="group_2337" data-tab="tab-group-2337-content-2338">Pulsar-admin API</div><div id="tab-group-2337-tab-2339" class="nav-link" data-group="group_2337" data-tab="tab-group-2337-content-2339">REST API</div><div id="tab-group-2337-tab-2340" class="nav-link" data-group="group_2337" data-tab="tab-group-2337-content-2340">Java API</div></div><div class="tab-content"><div id="tab-group-233 [...]
 </span></div></div><div id="tab-group-2337-content-2339" class="tab-pane" data-group="group_2337" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-2337-content-2340" class="tab-pane" data-group="group_2337" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setOffloadPolicies(topic, offloadPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-offload-policies"></a><a href="#remove-offload-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 [...]
-<p>To remove the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>移除主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-2341-tab-2342" class="nav-link active" data-group="group_2341" data-tab="tab-group-2341-content-2342">Pulsar-admin API</div><div id="tab-group-2341-tab-2343" class="nav-link" data-group="group_2341" data-tab="tab-group-2341-content-2343">REST API</div><div id="tab-group-2341-tab-2344" class="nav-link" data-group="group_2341" data-tab="tab-group-2341-content-2344">Java API</div></div><div class="tab-content"><div id="tab-group-234 [...]
 </span></div></div><div id="tab-group-2341-content-2343" class="tab-pane" data-group="group_2341" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-2341-content-2344" class="tab-pane" data-group="group_2341" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeOffloadPolicies(topic)<br /></code></pre>
@@ -852,9 +852,10 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 <p>默认情况下,Pulsar 主题由单个 broker 提供服务,这限制了主题的最大吞吐量。 <em>分区主题</em>可以跨越多个 broker,从而实现更高的吞吐量。</p>
 <p>你可以使用 Pulsar 客户端库发布到分区主题。 发布到分区主题时,必须指定路由模式。 如果在创建新的生产者时没有指定任何路由方式,则使用轮询路由模式。</p>
 <h3><a class="anchor" aria-hidden="true" id="routing-mode"></a><a href="#routing-mode" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. The routing mode determines which partition(internal topic) that each message should be published to.</p>
-<p>The following <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
- options are available.</p>
+<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. 路由模式决定了每条消息应该发往哪个分区(内部主题)。</p>
+<p>以下
+<a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
+ 选项是可用的。</p>
 <table>
 <thead>
 <tr><th style="text-align:left">发送模式</th><th style="text-align:left">说明</th></tr>
@@ -891,7 +892,7 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
     }
 }
 </code></pre>
-<p>With that implementation, you can send</p>
+<p>通过该实现,你可以发送:</p>
 <pre><code class="hljs css language-java">String pulsarBrokerRootUrl = <span class="hljs-string">"pulsar://localhost:6650"</span>;
 String topic = <span class="hljs-string">"persistent://my-tenant/my-cluster-my-namespace/my-topic"</span>;
 
@@ -903,7 +904,7 @@ Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = pulsarClient
 producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBytes());
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="使用-key-时如何选择分区"></a><a href="#使用-key-时如何选择分区" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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>If a message has a key, it supersedes the round robin routing policy. The following example illustrates how to choose the partition when using a key.</p>
+<p>If a message has a key, it supersedes the round robin routing policy. 以下示例说明当使用key时如何选择分区。</p>
 <pre><code class="hljs css language-java"><span class="hljs-comment">// 如果消息存在key,轮询路由策略将被替换</span>
         <span class="hljs-keyword">if</span> (msg.hasKey()) {
             <span class="hljs-keyword">return</span> signSafeMod(hash.makeHash(msg.getKey()), topicMetadata.numPartitions());
@@ -917,16 +918,16 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
 }
 </code></pre>
 <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>You can use <a href="/docs/zh-CN/next/admin-api-overview">Pulsar admin API</a> to create, check, and delete subscriptions.</p>
-<h3><a class="anchor" aria-hidden="true" id="create-subscription"></a><a href="#create-subscription" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
-<p>You can create a subscription for a topic using one of the following methods.</p>
+<p>你可以使用 <a href="/docs/zh-CN/next/admin-api-overview">Pulsar admin Apl</a> 创建、检查和删除订阅。</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>你可以使用以下方法之一为主题创建订阅。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-2393-tab-2394" class="nav-link active" data-group="group_2393" data-tab="tab-group-2393-content-2394">pulsar-admin</div><div id="tab-group-2393-tab-2395" class="nav-link" data-group="group_2393" data-tab="tab-group-2393-content-2395">REST API</div><div id="tab-group-2393-tab-2396" class="nav-link" data-group="group_2393" data-tab="tab-group-2393-content-2396">Java</div></div><div class="tab-content"><div id="tab-group-2393-conten [...]
 </span></div></div><div id="tab-group-2393-content-2395" class="tab-pane" data-group="group_2393" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/createSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>PUT</b> <i>/admin/v2/persistent/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-2393-content-2396" class="tab-pane" data-group="group_2393" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().createSubscription(topic, subscriptionName, MessageId.latest);<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="get-subscription"></a><a href="#get-subscription" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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. [...]
-<p>You can check all subscription names for a given topic using one of the following methods.</p>
+<h3><a class="anchor" aria-hidden="true" id="获取订阅-1"></a><a href="#获取订阅-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
+<p>你可以使用以下方法之一检查给定主题的所有订阅名称。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-2397-tab-2398" class="nav-link active" data-group="group_2397" data-tab="tab-group-2397-content-2398">pulsar-admin</div><div id="tab-group-2397-tab-2399" class="nav-link" data-group="group_2397" data-tab="tab-group-2397-content-2399">REST API</div><div id="tab-group-2397-tab-2400" class="nav-link" data-group="group_2397" data-tab="tab-group-2397-content-2400">Java</div></div><div class="tab-content"><div id="tab-group-2397-conten [...]
 </span></div></div><div id="tab-group-2397-content-2399" class="tab-pane" data-group="group_2397" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/getSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>GET</b> <i>/admin/v2/:schema/:tenant/:namespace/:topic/subscriptions</i></a>
 </p>
@@ -939,7 +940,7 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
 </p>
 </span></div></div><div id="tab-group-2401-content-2404" class="tab-pane" data-group="group_2401" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().deleteSubscription(topic, subscriptionName);<br /></code></pre>
 </span></div></div></div></div>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/next/admin-api-functions"><span>Functions</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="#列出-topic">列出 topic</a></li><li><a href [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/next/admin-api-functions"><span>Functions</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="#列出-topic">列出 topic</a></li><li><a href [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/next/admin-api-topics/index.html b/content/docs/zh-CN/next/admin-api-topics/index.html
index 479ee2b..a154f53 100644
--- a/content/docs/zh-CN/next/admin-api-topics/index.html
+++ b/content/docs/zh-CN/next/admin-api-topics/index.html
@@ -558,7 +558,7 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-2309-content-2312" class="tab-pane" data-group="group_2309" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="设置去重快照间隔"></a><a href="#设置去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To set the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>设置主题级去重快照间隔,可以使用以下方法之一。</p>
 <blockquote>
 <p><strong>前提条件</strong> <code>brokerDeduplicationEnabled</code>必须设置为<code>true</code>。</p>
 </blockquote>
@@ -568,45 +568,45 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 </span></div></div><div id="tab-group-2313-content-2316" class="tab-pane" data-group="group_2313" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setDeduplicationSnapshotInterval(topic, <span class="hljs-number">1000</span>)<br /></code></pre>
 </span></div></div></div></div>
 <h4><a class="anchor" aria-hidden="true" id="移除去重快照间隔"></a><a href="#移除去重快照间隔" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>To remove the topic-level deduplication snapshot interval, use one of the following methods.</p>
+<p>移除主题级去重快照间隔,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-2317-tab-2318" class="nav-link active" data-group="group_2317" data-tab="tab-group-2317-content-2318">Pulsar-admin API</div><div id="tab-group-2317-tab-2319" class="nav-link" data-group="group_2317" data-tab="tab-group-2317-content-2319">REST API</div><div id="tab-group-2317-tab-2320" class="nav-link" data-group="group_2317" data-tab="tab-group-2317-content-2320">Java API</div></div><div class="tab-content"><div id="tab-group-231 [...]
 </span></div></div><div id="tab-group-2317-content-2319" class="tab-pane" data-group="group_2317" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/deduplicationSnapshotInterval?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-2317-content-2320" class="tab-pane" data-group="group_2317" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeDeduplicationSnapshotInterval(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-inactive-topic-policies"></a><a href="#configure-inactive-topic-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.5S1 [...]
-<h4><a class="anchor" aria-hidden="true" id="get-inactive-topic-policies"></a><a href="#get-inactive-topic-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 1 [...]
-<p>To get the topic-level inactive topic policies, use one of the following methods.</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.6 [...]
+<h4><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.6 [...]
+<p>获取主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-2321-tab-2322" class="nav-link active" data-group="group_2321" data-tab="tab-group-2321-content-2322">Pulsar-admin API</div><div id="tab-group-2321-tab-2323" class="nav-link" data-group="group_2321" data-tab="tab-group-2321-content-2323">REST API</div><div id="tab-group-2321-tab-2324" class="nav-link" data-group="group_2321" data-tab="tab-group-2321-content-2324">Java API</div></div><div class="tab-content"><div id="tab-group-232 [...]
 </span></div></div><div id="tab-group-2321-content-2323" class="tab-pane" data-group="group_2321" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-2321-content-2324" class="tab-pane" data-group="group_2321" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-inactive-topic-policies"></a><a href="#set-inactive-topic-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 1 [...]
-<p>To set the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>设置主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-2325-tab-2326" class="nav-link active" data-group="group_2325" data-tab="tab-group-2325-content-2326">Pulsar-admin API</div><div id="tab-group-2325-tab-2327" class="nav-link" data-group="group_2325" data-tab="tab-group-2325-content-2327">REST API</div><div id="tab-group-2325-tab-2328" class="nav-link" data-group="group_2325" data-tab="tab-group-2325-content-2328">Java API</div></div><div class="tab-content"><div id="tab-group-232 [...]
 </span></div></div><div id="tab-group-2325-content-2327" class="tab-pane" data-group="group_2325" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-2325-content-2328" class="tab-pane" data-group="group_2325" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setInactiveTopicPolicies(topic, inactiveTopicPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-inactive-topic-policies"></a><a href="#remove-inactive-topic-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 1 [...]
-<p>To remove the topic-level inactive topic policies, use one of the following methods.</p>
+<h4><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.6 [...]
+<p>移除主题级非活跃主题策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-2329-tab-2330" class="nav-link active" data-group="group_2329" data-tab="tab-group-2329-content-2330">Pulsar-admin API</div><div id="tab-group-2329-tab-2331" class="nav-link" data-group="group_2329" data-tab="tab-group-2329-content-2331">REST API</div><div id="tab-group-2329-tab-2332" class="nav-link" data-group="group_2329" data-tab="tab-group-2329-content-2332">Java API</div></div><div class="tab-content"><div id="tab-group-232 [...]
 </span></div></div><div id="tab-group-2329-content-2331" class="tab-pane" data-group="group_2329" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/inactiveTopicPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-2329-content-2332" class="tab-pane" data-group="group_2329" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeInactiveTopicPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="configure-offload-policies"></a><a href="#configure-offload-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 12H [...]
-<h4><a class="anchor" aria-hidden="true" id="get-offload-policies"></a><a href="#get-offload-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 [...]
-<p>To get the topic-level offload policies, use one of the following methods.</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. [...]
+<h4><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. [...]
+<p>获取主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-2333-tab-2334" class="nav-link active" data-group="group_2333" data-tab="tab-group-2333-content-2334">Pulsar-admin API</div><div id="tab-group-2333-tab-2335" class="nav-link" data-group="group_2333" data-tab="tab-group-2333-content-2335">REST API</div><div id="tab-group-2333-tab-2336" class="nav-link" data-group="group_2333" data-tab="tab-group-2333-content-2336">Java API</div></div><div class="tab-content"><div id="tab-group-233 [...]
 </span></div></div><div id="tab-group-2333-content-2335" class="tab-pane" data-group="group_2333" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|GET|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-2333-content-2336" class="tab-pane" data-group="group_2333" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().getOffloadPolicies(topic)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="set-offload-policies"></a><a href="#set-offload-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 [...]
-<p>To set the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>设置主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-2337-tab-2338" class="nav-link active" data-group="group_2337" data-tab="tab-group-2337-content-2338">Pulsar-admin API</div><div id="tab-group-2337-tab-2339" class="nav-link" data-group="group_2337" data-tab="tab-group-2337-content-2339">REST API</div><div id="tab-group-2337-tab-2340" class="nav-link" data-group="group_2337" data-tab="tab-group-2337-content-2340">Java API</div></div><div class="tab-content"><div id="tab-group-233 [...]
 </span></div></div><div id="tab-group-2337-content-2339" class="tab-pane" data-group="group_2337" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|POST|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-2337-content-2340" class="tab-pane" data-group="group_2337" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().setOffloadPolicies(topic, offloadPolicies)<br /></code></pre>
 </span></div></div></div></div>
-<h4><a class="anchor" aria-hidden="true" id="remove-offload-policies"></a><a href="#remove-offload-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 [...]
-<p>To remove the topic-level offload policies, use one of the following methods.</p>
+<h4><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. [...]
+<p>移除主题级卸载策略,可以使用以下方法之一。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-2341-tab-2342" class="nav-link active" data-group="group_2341" data-tab="tab-group-2341-content-2342">Pulsar-admin API</div><div id="tab-group-2341-tab-2343" class="nav-link" data-group="group_2341" data-tab="tab-group-2341-content-2343">REST API</div><div id="tab-group-2341-tab-2344" class="nav-link" data-group="group_2341" data-tab="tab-group-2341-content-2344">Java API</div></div><div class="tab-content"><div id="tab-group-234 [...]
 </span></div></div><div id="tab-group-2341-content-2343" class="tab-pane" data-group="group_2341" tabindex="-1"><div><span><pre><code class="hljs">{<span class="hljs-variable">@inject:</span> endpoint|DELETE|/admin/v2/topics/:tenant/:namespace/:topic/offloadPolicies?version=[[<span class="hljs-attribute">pulsar</span>:version_number]]}<br /></code></pre>
 </span></div></div><div id="tab-group-2341-content-2344" class="tab-pane" data-group="group_2341" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.topics().removeOffloadPolicies(topic)<br /></code></pre>
@@ -852,9 +852,10 @@ REST API 中 <code>:schema</code> 分为 persistent(持久化)和 non-persis
 <p>默认情况下,Pulsar 主题由单个 broker 提供服务,这限制了主题的最大吞吐量。 <em>分区主题</em>可以跨越多个 broker,从而实现更高的吞吐量。</p>
 <p>你可以使用 Pulsar 客户端库发布到分区主题。 发布到分区主题时,必须指定路由模式。 如果在创建新的生产者时没有指定任何路由方式,则使用轮询路由模式。</p>
 <h3><a class="anchor" aria-hidden="true" id="routing-mode"></a><a href="#routing-mode" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. The routing mode determines which partition(internal topic) that each message should be published to.</p>
-<p>The following <a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
- options are available.</p>
+<p>You can specify the routing mode in the ProducerConfiguration object that you use to configure your producer. 路由模式决定了每条消息应该发往哪个分区(内部主题)。</p>
+<p>以下
+<a href="https://pulsar.apache.org/api/client/2.9.0-SNAPSHOT/org/apache/pulsar/client/api/MessageRoutingMode">MessageRoutingMode</a>
+ 选项是可用的。</p>
 <table>
 <thead>
 <tr><th style="text-align:left">发送模式</th><th style="text-align:left">说明</th></tr>
@@ -891,7 +892,7 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
     }
 }
 </code></pre>
-<p>With that implementation, you can send</p>
+<p>通过该实现,你可以发送:</p>
 <pre><code class="hljs css language-java">String pulsarBrokerRootUrl = <span class="hljs-string">"pulsar://localhost:6650"</span>;
 String topic = <span class="hljs-string">"persistent://my-tenant/my-cluster-my-namespace/my-topic"</span>;
 
@@ -903,7 +904,7 @@ Producer&lt;<span class="hljs-keyword">byte</span>[]&gt; producer = pulsarClient
 producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBytes());
 </code></pre>
 <h3><a class="anchor" aria-hidden="true" id="使用-key-时如何选择分区"></a><a href="#使用-key-时如何选择分区" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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>If a message has a key, it supersedes the round robin routing policy. The following example illustrates how to choose the partition when using a key.</p>
+<p>If a message has a key, it supersedes the round robin routing policy. 以下示例说明当使用key时如何选择分区。</p>
 <pre><code class="hljs css language-java"><span class="hljs-comment">// 如果消息存在key,轮询路由策略将被替换</span>
         <span class="hljs-keyword">if</span> (msg.hasKey()) {
             <span class="hljs-keyword">return</span> signSafeMod(hash.makeHash(msg.getKey()), topicMetadata.numPartitions());
@@ -917,16 +918,16 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
 }
 </code></pre>
 <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>You can use <a href="/docs/zh-CN/next/admin-api-overview">Pulsar admin API</a> to create, check, and delete subscriptions.</p>
-<h3><a class="anchor" aria-hidden="true" id="create-subscription"></a><a href="#create-subscription" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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 [...]
-<p>You can create a subscription for a topic using one of the following methods.</p>
+<p>你可以使用 <a href="/docs/zh-CN/next/admin-api-overview">Pulsar admin Apl</a> 创建、检查和删除订阅。</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>你可以使用以下方法之一为主题创建订阅。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-2393-tab-2394" class="nav-link active" data-group="group_2393" data-tab="tab-group-2393-content-2394">pulsar-admin</div><div id="tab-group-2393-tab-2395" class="nav-link" data-group="group_2393" data-tab="tab-group-2393-content-2395">REST API</div><div id="tab-group-2393-tab-2396" class="nav-link" data-group="group_2393" data-tab="tab-group-2393-content-2396">Java</div></div><div class="tab-content"><div id="tab-group-2393-conten [...]
 </span></div></div><div id="tab-group-2393-content-2395" class="tab-pane" data-group="group_2393" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/createSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>PUT</b> <i>/admin/v2/persistent/:tenant/:namespace/:topic/subscription/:subscription</i></a>
 </p>
 </span></div></div><div id="tab-group-2393-content-2396" class="tab-pane" data-group="group_2393" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().createSubscription(topic, subscriptionName, MessageId.latest);<br /></code></pre>
 </span></div></div></div></div>
-<h3><a class="anchor" aria-hidden="true" id="get-subscription"></a><a href="#get-subscription" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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. [...]
-<p>You can check all subscription names for a given topic using one of the following methods.</p>
+<h3><a class="anchor" aria-hidden="true" id="获取订阅-1"></a><a href="#获取订阅-1" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2. [...]
+<p>你可以使用以下方法之一检查给定主题的所有订阅名称。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-2397-tab-2398" class="nav-link active" data-group="group_2397" data-tab="tab-group-2397-content-2398">pulsar-admin</div><div id="tab-group-2397-tab-2399" class="nav-link" data-group="group_2397" data-tab="tab-group-2397-content-2399">REST API</div><div id="tab-group-2397-tab-2400" class="nav-link" data-group="group_2397" data-tab="tab-group-2397-content-2400">Java</div></div><div class="tab-content"><div id="tab-group-2397-conten [...]
 </span></div></div><div id="tab-group-2397-content-2399" class="tab-pane" data-group="group_2397" tabindex="-1"><div><span><p><a href="https://pulsar.apache.org/admin-rest-api#operation/getSubscriptions?version=2.9.1&amp;apiVersion=v2"><b>GET</b> <i>/admin/v2/:schema/:tenant/:namespace/:topic/subscriptions</i></a>
 </p>
@@ -939,7 +940,7 @@ producer.send(<span class="hljs-string">"Partitioned topic message"</span>.getBy
 </p>
 </span></div></div><div id="tab-group-2401-content-2404" class="tab-pane" data-group="group_2401" tabindex="-1"><div><span><pre><code class="hljs css language-java">String topic = <span class="hljs-string">"persistent://my-tenant/my-namespace/my-topic"</span>;<br />String subscriptionName = <span class="hljs-string">"my-subscription"</span>;<br />admin.topics().deleteSubscription(topic, subscriptionName);<br /></code></pre>
 </span></div></div></div></div>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/next/admin-api-functions"><span>Functions</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="#列出-topic">列出 topic</a></li><li><a href [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/admin-api-permissions"><span class="arrow-prev">← </span><span>权限管理</span></a><a class="docs-next button" href="/docs/zh-CN/next/admin-api-functions"><span>Functions</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="#列出-topic">列出 topic</a></li><li><a href [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/next/concepts-messaging.html b/content/docs/zh-CN/next/concepts-messaging.html
index 432b2f4..a169b69 100644
--- a/content/docs/zh-CN/next/concepts-messaging.html
+++ b/content/docs/zh-CN/next/concepts-messaging.html
@@ -211,8 +211,8 @@ nettyMaxFrameSizeBytes=5253120
 <p>在独占和故障转移订阅类型中,消费者只对收到的最后一条消息进行取消确认。</p>
 <p>在Shared和Key_Shared订阅类型中,消费者可以对单条消息进行取消确认。</p>
 <p>请注意,订单订阅类型为否定, 比如Exclusive,Failover和Key_Shared之类的消息可能会导致发送失败的消息以不符合原始顺序的方式到达使用者。</p>
-<p>If you are going to use negative acknowledgment on a message, make sure it is negatively acknowledged before the acknowledgment timeout.</p>
-<p>Use the following API to negatively acknowledge message consumption.</p>
+<p>如果要对消息取消确认,确保在确认超时之前对其进行取消确认。</p>
+<p>使用以下 API 来取消确认消费消息。</p>
 <pre><code class="hljs css language-java">Consumer&lt;<span class="hljs-keyword">byte</span>[]&gt; consumer = pulsarClient.newConsumer()
                 .topic(topic)
                 .subscriptionName(<span class="hljs-string">"sub-negative-ack"</span>)
@@ -228,7 +228,7 @@ consumer.negativeAcknowledge(message);
 message = consumer.receive();
 consumer.acknowledge(message);
 </code></pre>
-<p>To redeliver messages with different delays, you can use the <strong>redelivery backoff mechanism</strong> by setting the number of retries to deliver the messages. Use the following API to enable <code>Negative Redelivery Backoff</code>.</p>
+<p>要重新发送具有不同延迟的消息,你可以通过设置发送消息的重试次数来使用 <strong>Redelivery backoff 机制</strong>。 使用以下 API 启用 <code>Negative Redelivery Backoff</code>。</p>
 <pre><code class="hljs css language-java">Consumer&lt;<span class="hljs-keyword">byte</span>[]&gt; consumer = pulsarClient.newConsumer()
         .topic(topic)
         .subscriptionName(<span class="hljs-string">"sub-negative-ack"</span>)
@@ -246,7 +246,7 @@ consumer.acknowledge(message);
 如果启用了批次,那么一个批次中的所有消息都将重新发送给消费者。</p>
 </blockquote>
 <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>The acknowledgement timeout mechanism allows you to set a time range during which the client tracks the unacknowledged messages. After this acknowledgement timeout (<code>ackTimeout</code>) period, the client sends <code>redeliver unacknowledged messages</code> request to the broker, thus the broker resends the unacknowledged messages to the consumer.</p>
+<p>确认超时机制允许你设置客户端检测未确认消息的时间范围。 After this acknowledgement timeout (<code>ackTimeout</code>) period, the client sends <code>redeliver unacknowledged messages</code> request to the broker, thus the broker resends the unacknowledged messages to the consumer.</p>
 <p>You can configure the acknowledgement timeout mechanism to redeliver the message if it is not acknowledged after <code>ackTimeout</code> or to execute a timer task to check the acknowledgement timeout messages during every <code>ackTimeoutTickTime</code> period.</p>
 <p>You can also use the redelivery backoff mechanism, redeliver messages with different delays by setting the number of times the messages is retried.</p>
 <p>If you want to use redelivery backoff, you can use the following API.</p>
diff --git a/content/docs/zh-CN/next/concepts-messaging/index.html b/content/docs/zh-CN/next/concepts-messaging/index.html
index 432b2f4..a169b69 100644
--- a/content/docs/zh-CN/next/concepts-messaging/index.html
+++ b/content/docs/zh-CN/next/concepts-messaging/index.html
@@ -211,8 +211,8 @@ nettyMaxFrameSizeBytes=5253120
 <p>在独占和故障转移订阅类型中,消费者只对收到的最后一条消息进行取消确认。</p>
 <p>在Shared和Key_Shared订阅类型中,消费者可以对单条消息进行取消确认。</p>
 <p>请注意,订单订阅类型为否定, 比如Exclusive,Failover和Key_Shared之类的消息可能会导致发送失败的消息以不符合原始顺序的方式到达使用者。</p>
-<p>If you are going to use negative acknowledgment on a message, make sure it is negatively acknowledged before the acknowledgment timeout.</p>
-<p>Use the following API to negatively acknowledge message consumption.</p>
+<p>如果要对消息取消确认,确保在确认超时之前对其进行取消确认。</p>
+<p>使用以下 API 来取消确认消费消息。</p>
 <pre><code class="hljs css language-java">Consumer&lt;<span class="hljs-keyword">byte</span>[]&gt; consumer = pulsarClient.newConsumer()
                 .topic(topic)
                 .subscriptionName(<span class="hljs-string">"sub-negative-ack"</span>)
@@ -228,7 +228,7 @@ consumer.negativeAcknowledge(message);
 message = consumer.receive();
 consumer.acknowledge(message);
 </code></pre>
-<p>To redeliver messages with different delays, you can use the <strong>redelivery backoff mechanism</strong> by setting the number of retries to deliver the messages. Use the following API to enable <code>Negative Redelivery Backoff</code>.</p>
+<p>要重新发送具有不同延迟的消息,你可以通过设置发送消息的重试次数来使用 <strong>Redelivery backoff 机制</strong>。 使用以下 API 启用 <code>Negative Redelivery Backoff</code>。</p>
 <pre><code class="hljs css language-java">Consumer&lt;<span class="hljs-keyword">byte</span>[]&gt; consumer = pulsarClient.newConsumer()
         .topic(topic)
         .subscriptionName(<span class="hljs-string">"sub-negative-ack"</span>)
@@ -246,7 +246,7 @@ consumer.acknowledge(message);
 如果启用了批次,那么一个批次中的所有消息都将重新发送给消费者。</p>
 </blockquote>
 <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>The acknowledgement timeout mechanism allows you to set a time range during which the client tracks the unacknowledged messages. After this acknowledgement timeout (<code>ackTimeout</code>) period, the client sends <code>redeliver unacknowledged messages</code> request to the broker, thus the broker resends the unacknowledged messages to the consumer.</p>
+<p>确认超时机制允许你设置客户端检测未确认消息的时间范围。 After this acknowledgement timeout (<code>ackTimeout</code>) period, the client sends <code>redeliver unacknowledged messages</code> request to the broker, thus the broker resends the unacknowledged messages to the consumer.</p>
 <p>You can configure the acknowledgement timeout mechanism to redeliver the message if it is not acknowledged after <code>ackTimeout</code> or to execute a timer task to check the acknowledgement timeout messages during every <code>ackTimeoutTickTime</code> period.</p>
 <p>You can also use the redelivery backoff mechanism, redeliver messages with different delays by setting the number of times the messages is retried.</p>
 <p>If you want to use redelivery backoff, you can use the following API.</p>
diff --git a/content/docs/zh-CN/next/cookbooks-retention-expiry.html b/content/docs/zh-CN/next/cookbooks-retention-expiry.html
index 6273c7f..1942f70 100644
--- a/content/docs/zh-CN/next/cookbooks-retention-expiry.html
+++ b/content/docs/zh-CN/next/cookbooks-retention-expiry.html
@@ -94,9 +94,9 @@
 </blockquote>
 <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. [...]
 <p>默认情况下,当消息到达 broker 时,会一直保留这条消息直到消费者确认已消费到这条消息,此时它才被删除。 你可以修改命名空间中所有主题的<em>消息保留策略</em>,来保留所有订阅中已经确认的消息。 消息保留策略支持两种类型:<em>根据消息大小保留</em>或者<em>根据时间保留</em>。</p>
-<p>The diagram below illustrates the concept of message retention. <img src="/docs/assets/retention.svg" alt=""></p>
+<p>下图说明了消息保留的概念。 <img src="/docs/assets/retention.svg" alt=""></p>
 <p>当使用 Reader 接口时,保留策略是有用的。 因为 Reader 接口不使用消息确认机制,消息将永远不会存在 backlog 中。 在只读的使用场景中,保留时间是必须配置的。</p>
-<p>When you set a retention policy on topics in a namespace, you must set <strong>both</strong> a <em>size limit</em> (via <code>defaultRetentionSizeInMB</code>) and a <em>time limit</em> (via <code>defaultRetentionTimeInMinutes</code>) . 您可以参考以下表格来设置 <code>pulsar-admin</code> 和 Java 中的保留策略。</p>
+<p>当你为命名空间中的主题设置保留策略时,你必须通过 <code>defaultRetentionSizeInMB</code> 设置 <strong>both</strong> <em>大小限制</em> 以及 <code>defaultRetentionTimeInMinutes</code> 来设置 <em>时间限制</em>。 您可以参考以下表格来设置 <code>pulsar-admin</code> 和 Java 中的保留策略。</p>
 <table>
 <thead>
 <tr><th>时间限制</th><th>大小限制:</th><th>消息保留策略</th></tr>
@@ -119,11 +119,11 @@
 <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. [...]
 <p>你可以通过在 <code>pulsar-admin</code>、REST API 和 Java 中自定命名空间、大小限制和时间限制来设置命名空间的保留策略。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-2970-tab-2971" class="nav-link active" data-group="group_2970" data-tab="tab-group-2970-content-2971">pulsar-admin</div><div id="tab-group-2970-tab-2972" class="nav-link" data-group="group_2970" data-tab="tab-group-2970-content-2972">REST API</div><div id="tab-group-2970-tab-2973" class="nav-link" data-group="group_2970" data-tab="tab-group-2970-content-2973">Java</div></div><div class="tab-content"><div id="tab-group-2970-conten [...]
-<p>在下面的例子中, <code>my-tenant/my-ns</code> 命名空间中的每一个主题大小限制设置为 10 GB,时间限制设置为 3 小时。 - When the size of messages reaches 10 GB on a topic within 3 hours, the acknowledged messages will not be retained. - After 3 hours, even if the message size is less than 10 GB, the acknowledged messages will not be retained.</p>
+<p>在下面的例子中, <code>my-tenant/my-ns</code> 命名空间中的每一个主题大小限制设置为 10 GB,时间限制设置为 3 小时。 - 当某个主题的消息大小在 3 小时内达到 10 GB 时,已确认的消息不会被保留。 - 3 小时后,即使消息大小小于 10 GB,已确认的消息也不会保留。</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin namespaces <span class="hljs-built_in">set</span>-retention my-tenant/my-ns \</span><br />  --size 10G \<br />  --time 3h<br /></code></pre>
-<p>In the following example, the time is not limited and the size limit is set to 1 TB. The size limit determines the retention.</p>
+<p>在以下示例中,时间不受限制,大小限制设置为 1 TB。 大小限制决定了保留机制。</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin namespaces <span class="hljs-built_in">set</span>-retention my-tenant/my-ns \</span><br />  --size 1T \<br />  --time -1<br /></code></pre>
-<p>In the following example, the size is not limited and the time limit is set to 3 hours. The time limit determines the retention.</p>
+<p>在以下示例中,大小不受限制,时间限制设置为 3 小时。 时间限制决定了保留机制。</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin namespaces <span class="hljs-built_in">set</span>-retention my-tenant/my-ns \</span><br />  --size -1 \<br />  --time 3h<br /></code></pre>
 <p>要实现无限留存,将两个值都设置为 <code>-1</code>。</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin namespaces <span class="hljs-built_in">set</span>-retention my-tenant/my-ns \</span><br />  --size -1 \<br />  --time -1<br /></code></pre>
@@ -144,13 +144,13 @@
 </p>
 </span></div></div><div id="tab-group-2974-content-2977" class="tab-pane" data-group="group_2974" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);<br /></code></pre>
 </span></div></div></div></div>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em>是由bookies存储的主题的未确认消息集。 Pulsar把所有未确认的消息存储在Backlog中,直到它们被处理和确认为止。</p>
-<p>You can control the allowable size and/or time of backlogs, at the namespace level, using <em>backlog quotas</em>. Pulsar uses a quota to enforce a hard limit on the logical size of the backlogs in a topic. Backlog quota triggers an alert policy (for example, producer exception) once the quota limit is reached.</p>
-<p>The diagram below illustrates the concept of backlog quota. <img src="/docs/assets/backlog-quota.svg" alt=""></p>
+<p>你可以使用 <em>backlog quotas</em> 在命名空间级别控制允许的积压大小/时间。 Pulsar 使用配额来强制限制主题中积压的逻辑大小。 一旦达到配额限制,积压配额就会触发警报策略 (例如,生产者异常)。</p>
+<p>下图说明了积压配额的概念。 <img src="/docs/assets/backlog-quota.svg" alt=""></p>
 <p>Setting a backlog quota involves setting:</p>
 <ul>
-<li>an allowable <em>size and/or time threshold</em> for each topic in the namespace</li>
+<li>命名空间中允许每个主题的<em>大小/时间阈值</em></li>
 <li><em>保留策略</em>,决定了如果超过阈值,<a href="/docs/zh-CN/next/reference-terminology#broker">broker</a> 将采取什么操作。</li>
 </ul>
 <p>可以使用以下保留策略:</p>
@@ -203,8 +203,8 @@
 <p>默认情况下,系统会提示您确认确实要清除命名空间的 backlog。您可以使用<code>-f</code>/<code>——force</code>参数覆盖提示。</p>
 <h2><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.22-2-2.5 0-.83.42-1.64  [...]
 <p>默认情况下,Pulsar 会永久存储所有未确认的消息。 在大量消息未得到确认的情况下,可能会导致大量磁盘空间的使用。 如果需要考虑磁盘空间,可以设置生存时间(TTL),以确定未确认的消息将保留多长时间。</p>
-<p>The TTL parameter is like a stopwatch attached to each message that defines the amount of time a message is allowed to stay in the unacknowledged state. When the TTL expires, Pulsar automatically moves the message to the acknowledged state (and thus makes it ready for deletion).</p>
-<p>The diagram below illustrates the concept of TTL. <img src="/docs/assets/ttl.svg" alt=""></p>
+<p>TTL 参数就像附加到每条消息的秒表,它定义了允许消息保持在未确认状态的时间量。 当 TTL 过期时,Pulsar 会自动将消息变更为确认状态 (从而为删除做好准备)。</p>
+<p>下图说明了 TTL 的概念。 <img src="/docs/assets/ttl.svg" alt=""></p>
 <h3><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.22-2-2.5 0-.83.42-1 [...]
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-2990-tab-2991" class="nav-link active" data-group="group_2990" data-tab="tab-group-2990-content-2991">pulsar-admin</div><div id="tab-group-2990-tab-2992" class="nav-link" data-group="group_2990" data-tab="tab-group-2990-content-2992">REST API</div><div id="tab-group-2990-tab-2993" class="nav-link" data-group="group_2990" data-tab="tab-group-2990-content-2993">Java</div></div><div class="tab-content"><div id="tab-group-2990-conten [...]
 <h5><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 [...]
@@ -230,17 +230,17 @@
 </span></div></div><div id="tab-group-2998-content-3001" class="tab-pane" data-group="group_2998" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.namespaces().removeNamespaceMessageTTL(namespace)<br /></code></pre>
 </span></div></div></div></div>
 <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 [...]
-<p>When it comes to the physical storage size, message expiry and retention are just like two sides of the same coin. * The backlog quota and TTL parameters prevent disk size from growing indefinitely, as Pulsar’s default behaviour is to persist unacknowledged messages. * The retention policy allocates storage space to accommodate the messages that are supposed to be deleted by Pulsar by default.</p>
-<p>As a conclusion, the size of your physical storage should accommodate the sum of the backlog quota and the retention size.</p>
-<p>The message deletion rate (releasing rate of disk space) can be determined by multiple factors.</p>
+<p>就物理存储大小而言,消息过期和保留就像一枚硬币的两面。 * 积压配额和 TTL 参数防止磁盘大小无限增长,因为 Pulsar 的默认行为是保留未确认的消息。 * 保留策略分配的存储空间用于容纳默认情况下应该被 Pulsar 删除的消息。</p>
+<p>总而言之,你的物理存储大小应当能容纳积压配额和保留大小的总和。</p>
+<p>消息删除率 (磁盘空间的释放率) 由多种因素决定。</p>
 <ul>
 <li><p><strong>Segment rollover period</strong>: 基础知识,分段滚动周期是创建一个新的分段的频率。 一旦创建新的片段,旧的片段会被删除。 默认情况下,这种情况会在你已写入50,000条条目 (消息) 时或者等待240分钟之后发生。 你可以在broker服务端调整这个策略。</p></li>
 <li><p><strong>Entry log rollover period</strong>: BookKeeper 中的多个分类账 ledger 会被相互连接到一个 <a href="https://bookkeeper.apache.org/docs/4.11.1/getting-started/concepts/#entry-logs">entry log</a>中。 对于已删除的 ledger ,必须将条目日志 entry log 全部滚动。 Entry log 滚动周期是可配置的,但完全基于条目日志的大小。 详情参阅 <a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-settings">这里</a>。 Entry log 一经滚动,就可以进行垃圾回收 entry log。</p></li>
 <li><p><strong>垃圾收集间隔</strong>: 因为 entry log 已经跨内部连接了很多ledger, 为了释放空间, 需要重写 entry log。 垃圾收集间隔是 BookKeeper 执行垃圾收集的频率 这与 entry log 的小压缩和大压缩有关。 详情参阅<a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-compaction-settings">这里</a>。</p></li>
 </ul>
-<p>The diagram below illustrates one of the cases that the consumed storage size is larger than the given limits for backlog and retention. Messages over the retention limit are kept because other messages in the same segment are still within retention period. <img src="/docs/assets/retention-storage-size.svg" alt=""></p>
-<p>If you do not have any retention period and that you never have much of a backlog, the upper limit for retained messages, which are acknowledged, equals to the Pulsar segment rollover period + entry log rollover period + (garbage collection interval * garbage collection ratios).</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/next/cookbooks-encryption"><span>加密</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="#设置保留策略"> [...]
+<p>下图说明了使用的存储规模大于给定的积压和保留限制的一种情况。 当同一段中的其他消息仍在保留期内时,超过保留限制的消息也会被保留。 <img src="/docs/assets/retention-storage-size.svg" alt=""></p>
+<p>如果你没有任何保留期,也没有太多的积压,那么被确认消息的保留上限等于 Pulsar segment rollover period + entry log rollover period + (垃圾回收间隔 * 垃圾回收比率)。</p>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/next/cookbooks-encryption"><span>加密</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 =
         '<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 6273c7f..1942f70 100644
--- a/content/docs/zh-CN/next/cookbooks-retention-expiry/index.html
+++ b/content/docs/zh-CN/next/cookbooks-retention-expiry/index.html
@@ -94,9 +94,9 @@
 </blockquote>
 <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. [...]
 <p>默认情况下,当消息到达 broker 时,会一直保留这条消息直到消费者确认已消费到这条消息,此时它才被删除。 你可以修改命名空间中所有主题的<em>消息保留策略</em>,来保留所有订阅中已经确认的消息。 消息保留策略支持两种类型:<em>根据消息大小保留</em>或者<em>根据时间保留</em>。</p>
-<p>The diagram below illustrates the concept of message retention. <img src="/docs/assets/retention.svg" alt=""></p>
+<p>下图说明了消息保留的概念。 <img src="/docs/assets/retention.svg" alt=""></p>
 <p>当使用 Reader 接口时,保留策略是有用的。 因为 Reader 接口不使用消息确认机制,消息将永远不会存在 backlog 中。 在只读的使用场景中,保留时间是必须配置的。</p>
-<p>When you set a retention policy on topics in a namespace, you must set <strong>both</strong> a <em>size limit</em> (via <code>defaultRetentionSizeInMB</code>) and a <em>time limit</em> (via <code>defaultRetentionTimeInMinutes</code>) . 您可以参考以下表格来设置 <code>pulsar-admin</code> 和 Java 中的保留策略。</p>
+<p>当你为命名空间中的主题设置保留策略时,你必须通过 <code>defaultRetentionSizeInMB</code> 设置 <strong>both</strong> <em>大小限制</em> 以及 <code>defaultRetentionTimeInMinutes</code> 来设置 <em>时间限制</em>。 您可以参考以下表格来设置 <code>pulsar-admin</code> 和 Java 中的保留策略。</p>
 <table>
 <thead>
 <tr><th>时间限制</th><th>大小限制:</th><th>消息保留策略</th></tr>
@@ -119,11 +119,11 @@
 <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. [...]
 <p>你可以通过在 <code>pulsar-admin</code>、REST API 和 Java 中自定命名空间、大小限制和时间限制来设置命名空间的保留策略。</p>
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-2970-tab-2971" class="nav-link active" data-group="group_2970" data-tab="tab-group-2970-content-2971">pulsar-admin</div><div id="tab-group-2970-tab-2972" class="nav-link" data-group="group_2970" data-tab="tab-group-2970-content-2972">REST API</div><div id="tab-group-2970-tab-2973" class="nav-link" data-group="group_2970" data-tab="tab-group-2970-content-2973">Java</div></div><div class="tab-content"><div id="tab-group-2970-conten [...]
-<p>在下面的例子中, <code>my-tenant/my-ns</code> 命名空间中的每一个主题大小限制设置为 10 GB,时间限制设置为 3 小时。 - When the size of messages reaches 10 GB on a topic within 3 hours, the acknowledged messages will not be retained. - After 3 hours, even if the message size is less than 10 GB, the acknowledged messages will not be retained.</p>
+<p>在下面的例子中, <code>my-tenant/my-ns</code> 命名空间中的每一个主题大小限制设置为 10 GB,时间限制设置为 3 小时。 - 当某个主题的消息大小在 3 小时内达到 10 GB 时,已确认的消息不会被保留。 - 3 小时后,即使消息大小小于 10 GB,已确认的消息也不会保留。</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin namespaces <span class="hljs-built_in">set</span>-retention my-tenant/my-ns \</span><br />  --size 10G \<br />  --time 3h<br /></code></pre>
-<p>In the following example, the time is not limited and the size limit is set to 1 TB. The size limit determines the retention.</p>
+<p>在以下示例中,时间不受限制,大小限制设置为 1 TB。 大小限制决定了保留机制。</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin namespaces <span class="hljs-built_in">set</span>-retention my-tenant/my-ns \</span><br />  --size 1T \<br />  --time -1<br /></code></pre>
-<p>In the following example, the size is not limited and the time limit is set to 3 hours. The time limit determines the retention.</p>
+<p>在以下示例中,大小不受限制,时间限制设置为 3 小时。 时间限制决定了保留机制。</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin namespaces <span class="hljs-built_in">set</span>-retention my-tenant/my-ns \</span><br />  --size -1 \<br />  --time 3h<br /></code></pre>
 <p>要实现无限留存,将两个值都设置为 <code>-1</code>。</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin namespaces <span class="hljs-built_in">set</span>-retention my-tenant/my-ns \</span><br />  --size -1 \<br />  --time -1<br /></code></pre>
@@ -144,13 +144,13 @@
 </p>
 </span></div></div><div id="tab-group-2974-content-2977" class="tab-pane" data-group="group_2974" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.namespaces().getRetention(namespace);<br /></code></pre>
 </span></div></div></div></div>
-<h2><a class="anchor" aria-hidden="true" id="backlog-quotas"></a><a href="#backlog-quotas" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.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- [...]
+<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><em>Backlogs</em>是由bookies存储的主题的未确认消息集。 Pulsar把所有未确认的消息存储在Backlog中,直到它们被处理和确认为止。</p>
-<p>You can control the allowable size and/or time of backlogs, at the namespace level, using <em>backlog quotas</em>. Pulsar uses a quota to enforce a hard limit on the logical size of the backlogs in a topic. Backlog quota triggers an alert policy (for example, producer exception) once the quota limit is reached.</p>
-<p>The diagram below illustrates the concept of backlog quota. <img src="/docs/assets/backlog-quota.svg" alt=""></p>
+<p>你可以使用 <em>backlog quotas</em> 在命名空间级别控制允许的积压大小/时间。 Pulsar 使用配额来强制限制主题中积压的逻辑大小。 一旦达到配额限制,积压配额就会触发警报策略 (例如,生产者异常)。</p>
+<p>下图说明了积压配额的概念。 <img src="/docs/assets/backlog-quota.svg" alt=""></p>
 <p>Setting a backlog quota involves setting:</p>
 <ul>
-<li>an allowable <em>size and/or time threshold</em> for each topic in the namespace</li>
+<li>命名空间中允许每个主题的<em>大小/时间阈值</em></li>
 <li><em>保留策略</em>,决定了如果超过阈值,<a href="/docs/zh-CN/next/reference-terminology#broker">broker</a> 将采取什么操作。</li>
 </ul>
 <p>可以使用以下保留策略:</p>
@@ -203,8 +203,8 @@
 <p>默认情况下,系统会提示您确认确实要清除命名空间的 backlog。您可以使用<code>-f</code>/<code>——force</code>参数覆盖提示。</p>
 <h2><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.22-2-2.5 0-.83.42-1.64  [...]
 <p>默认情况下,Pulsar 会永久存储所有未确认的消息。 在大量消息未得到确认的情况下,可能会导致大量磁盘空间的使用。 如果需要考虑磁盘空间,可以设置生存时间(TTL),以确定未确认的消息将保留多长时间。</p>
-<p>The TTL parameter is like a stopwatch attached to each message that defines the amount of time a message is allowed to stay in the unacknowledged state. When the TTL expires, Pulsar automatically moves the message to the acknowledged state (and thus makes it ready for deletion).</p>
-<p>The diagram below illustrates the concept of TTL. <img src="/docs/assets/ttl.svg" alt=""></p>
+<p>TTL 参数就像附加到每条消息的秒表,它定义了允许消息保持在未确认状态的时间量。 当 TTL 过期时,Pulsar 会自动将消息变更为确认状态 (从而为删除做好准备)。</p>
+<p>下图说明了 TTL 的概念。 <img src="/docs/assets/ttl.svg" alt=""></p>
 <h3><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.22-2-2.5 0-.83.42-1 [...]
 <div class="tabs"><div class="nav-tabs"><div id="tab-group-2990-tab-2991" class="nav-link active" data-group="group_2990" data-tab="tab-group-2990-content-2991">pulsar-admin</div><div id="tab-group-2990-tab-2992" class="nav-link" data-group="group_2990" data-tab="tab-group-2990-content-2992">REST API</div><div id="tab-group-2990-tab-2993" class="nav-link" data-group="group_2990" data-tab="tab-group-2990-content-2993">Java</div></div><div class="tab-content"><div id="tab-group-2990-conten [...]
 <h5><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 [...]
@@ -230,17 +230,17 @@
 </span></div></div><div id="tab-group-2998-content-3001" class="tab-pane" data-group="group_2998" tabindex="-1"><div><span><pre><code class="hljs css language-java">admin.namespaces().removeNamespaceMessageTTL(namespace)<br /></code></pre>
 </span></div></div></div></div>
 <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 [...]
-<p>When it comes to the physical storage size, message expiry and retention are just like two sides of the same coin. * The backlog quota and TTL parameters prevent disk size from growing indefinitely, as Pulsar’s default behaviour is to persist unacknowledged messages. * The retention policy allocates storage space to accommodate the messages that are supposed to be deleted by Pulsar by default.</p>
-<p>As a conclusion, the size of your physical storage should accommodate the sum of the backlog quota and the retention size.</p>
-<p>The message deletion rate (releasing rate of disk space) can be determined by multiple factors.</p>
+<p>就物理存储大小而言,消息过期和保留就像一枚硬币的两面。 * 积压配额和 TTL 参数防止磁盘大小无限增长,因为 Pulsar 的默认行为是保留未确认的消息。 * 保留策略分配的存储空间用于容纳默认情况下应该被 Pulsar 删除的消息。</p>
+<p>总而言之,你的物理存储大小应当能容纳积压配额和保留大小的总和。</p>
+<p>消息删除率 (磁盘空间的释放率) 由多种因素决定。</p>
 <ul>
 <li><p><strong>Segment rollover period</strong>: 基础知识,分段滚动周期是创建一个新的分段的频率。 一旦创建新的片段,旧的片段会被删除。 默认情况下,这种情况会在你已写入50,000条条目 (消息) 时或者等待240分钟之后发生。 你可以在broker服务端调整这个策略。</p></li>
 <li><p><strong>Entry log rollover period</strong>: BookKeeper 中的多个分类账 ledger 会被相互连接到一个 <a href="https://bookkeeper.apache.org/docs/4.11.1/getting-started/concepts/#entry-logs">entry log</a>中。 对于已删除的 ledger ,必须将条目日志 entry log 全部滚动。 Entry log 滚动周期是可配置的,但完全基于条目日志的大小。 详情参阅 <a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-settings">这里</a>。 Entry log 一经滚动,就可以进行垃圾回收 entry log。</p></li>
 <li><p><strong>垃圾收集间隔</strong>: 因为 entry log 已经跨内部连接了很多ledger, 为了释放空间, 需要重写 entry log。 垃圾收集间隔是 BookKeeper 执行垃圾收集的频率 这与 entry log 的小压缩和大压缩有关。 详情参阅<a href="https://bookkeeper.apache.org/docs/4.11.1/reference/config/#entry-log-compaction-settings">这里</a>。</p></li>
 </ul>
-<p>The diagram below illustrates one of the cases that the consumed storage size is larger than the given limits for backlog and retention. Messages over the retention limit are kept because other messages in the same segment are still within retention period. <img src="/docs/assets/retention-storage-size.svg" alt=""></p>
-<p>If you do not have any retention period and that you never have much of a backlog, the upper limit for retained messages, which are acknowledged, equals to the Pulsar segment rollover period + entry log rollover period + (garbage collection interval * garbage collection ratios).</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/next/cookbooks-encryption"><span>加密</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="#设置保留策略"> [...]
+<p>下图说明了使用的存储规模大于给定的积压和保留限制的一种情况。 当同一段中的其他消息仍在保留期内时,超过保留限制的消息也会被保留。 <img src="/docs/assets/retention-storage-size.svg" alt=""></p>
+<p>如果你没有任何保留期,也没有太多的积压,那么被确认消息的保留上限等于 Pulsar segment rollover period + entry log rollover period + (垃圾回收间隔 * 垃圾回收比率)。</p>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/next/cookbooks-encryption"><span>加密</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 =
         '<li>' +
diff --git a/content/swagger/2.10.0-SNAPSHOT/swagger.json b/content/swagger/2.10.0-SNAPSHOT/swagger.json
index 6bba367..726d34f 100644
--- a/content/swagger/2.10.0-SNAPSHOT/swagger.json
+++ b/content/swagger/2.10.0-SNAPSHOT/swagger.json
@@ -21257,6 +21257,9 @@
         "subscription" : {
           "type" : "string"
         },
+        "peerAddress" : {
+          "$ref" : "#/definitions/SocketAddress"
+        },
         "tlsCertificates" : {
           "type" : "array",
           "items" : {
@@ -21268,9 +21271,6 @@
         },
         "commandData" : {
           "type" : "string"
-        },
-        "peerAddress" : {
-          "$ref" : "#/definitions/SocketAddress"
         }
       }
     },
@@ -21319,6 +21319,10 @@
           "type" : "string",
           "enum" : [ "producer_request_hold", "producer_exception", "consumer_backlog_eviction" ]
         },
+        "limit" : {
+          "type" : "integer",
+          "format" : "int64"
+        },
         "limitSize" : {
           "type" : "integer",
           "format" : "int64"
@@ -21326,10 +21330,6 @@
         "limitTime" : {
           "type" : "integer",
           "format" : "int32"
-        },
-        "limit" : {
-          "type" : "integer",
-          "format" : "int64"
         }
       }
     },
@@ -21705,8 +21705,9 @@
         "address" : {
           "type" : "string"
         },
-        "consumerName" : {
-          "type" : "string"
+        "availablePermits" : {
+          "type" : "integer",
+          "format" : "int32"
         },
         "metadata" : {
           "type" : "object",
@@ -21753,17 +21754,9 @@
         "readPositionWhenJoining" : {
           "type" : "string"
         },
-        "availablePermits" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
-        "connectedSince" : {
+        "consumerName" : {
           "type" : "string"
         },
-        "msgRateOut" : {
-          "type" : "number",
-          "format" : "double"
-        },
         "msgThroughputOut" : {
           "type" : "number",
           "format" : "double"
@@ -21775,6 +21768,13 @@
         "msgOutCounter" : {
           "type" : "integer",
           "format" : "int64"
+        },
+        "connectedSince" : {
+          "type" : "string"
+        },
+        "msgRateOut" : {
+          "type" : "number",
+          "format" : "double"
         }
       }
     },
@@ -21795,14 +21795,14 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "numericCodeAsString" : {
-          "type" : "string"
-        },
         "displayName" : {
           "type" : "string"
         },
         "symbol" : {
           "type" : "string"
+        },
+        "numericCodeAsString" : {
+          "type" : "string"
         }
       }
     },
@@ -21940,26 +21940,23 @@
         "attributes" : {
           "$ref" : "#/definitions/ContextAttributes"
         },
-        "rootName" : {
-          "type" : "string"
-        },
         "subtypeResolver" : {
           "$ref" : "#/definitions/SubtypeResolver"
         },
-        "fullRootName" : {
-          "$ref" : "#/definitions/PropertyName"
-        },
         "defaultVisibilityChecker" : {
           "$ref" : "#/definitions/VisibilityCheckerObject"
         },
-        "timeZone" : {
-          "$ref" : "#/definitions/TimeZone"
+        "rootName" : {
+          "type" : "string"
+        },
+        "fullRootName" : {
+          "$ref" : "#/definitions/PropertyName"
         },
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
-        "typeFactory" : {
-          "$ref" : "#/definitions/TypeFactory"
+        "timeZone" : {
+          "$ref" : "#/definitions/TimeZone"
         },
         "propertyNamingStrategy" : {
           "$ref" : "#/definitions/PropertyNamingStrategy"
@@ -21967,15 +21964,18 @@
         "dateFormat" : {
           "$ref" : "#/definitions/DateFormat"
         },
+        "annotationProcessingEnabled" : {
+          "type" : "boolean"
+        },
+        "typeFactory" : {
+          "$ref" : "#/definitions/TypeFactory"
+        },
         "handlerInstantiator" : {
           "$ref" : "#/definitions/HandlerInstantiator"
         },
         "base64Variant" : {
           "$ref" : "#/definitions/Base64Variant"
         },
-        "annotationProcessingEnabled" : {
-          "type" : "boolean"
-        },
         "classIntrospector" : {
           "$ref" : "#/definitions/ClassIntrospector"
         }
@@ -21984,27 +21984,27 @@
     "DeserializationContext" : {
       "type" : "object",
       "properties" : {
-        "timeZone" : {
-          "$ref" : "#/definitions/TimeZone"
-        },
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
+        "timeZone" : {
+          "$ref" : "#/definitions/TimeZone"
+        },
         "factory" : {
           "$ref" : "#/definitions/DeserializerFactory"
         },
         "config" : {
           "$ref" : "#/definitions/DeserializationConfig"
         },
+        "nodeFactory" : {
+          "$ref" : "#/definitions/JsonNodeFactory"
+        },
         "parser" : {
           "$ref" : "#/definitions/JsonParser"
         },
         "typeFactory" : {
           "$ref" : "#/definitions/TypeFactory"
         },
-        "nodeFactory" : {
-          "$ref" : "#/definitions/JsonNodeFactory"
-        },
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
@@ -22101,13 +22101,6 @@
     "FunctionInstanceStatsData" : {
       "type" : "object",
       "properties" : {
-        "oneMin" : {
-          "$ref" : "#/definitions/FunctionInstanceStatsDataBase"
-        },
-        "lastInvocation" : {
-          "type" : "integer",
-          "format" : "int64"
-        },
         "userMetrics" : {
           "type" : "object",
           "additionalProperties" : {
@@ -22115,6 +22108,13 @@
             "format" : "double"
           }
         },
+        "oneMin" : {
+          "$ref" : "#/definitions/FunctionInstanceStatsDataBase"
+        },
+        "lastInvocation" : {
+          "type" : "integer",
+          "format" : "int64"
+        },
         "receivedTotal" : {
           "type" : "integer",
           "format" : "int64"
@@ -22391,15 +22391,9 @@
     "JsonFactory" : {
       "type" : "object",
       "properties" : {
-        "rootValueSeparator" : {
-          "type" : "string"
-        },
         "codec" : {
           "$ref" : "#/definitions/ObjectCodec"
         },
-        "formatName" : {
-          "type" : "string"
-        },
         "inputDecorator" : {
           "$ref" : "#/definitions/InputDecorator"
         },
@@ -22408,27 +22402,33 @@
         },
         "outputDecorator" : {
           "$ref" : "#/definitions/OutputDecorator"
+        },
+        "formatName" : {
+          "type" : "string"
+        },
+        "rootValueSeparator" : {
+          "type" : "string"
         }
       }
     },
     "JsonGenerator" : {
       "type" : "object",
       "properties" : {
-        "closed" : {
-          "type" : "boolean"
-        },
-        "schema" : {
-          "$ref" : "#/definitions/FormatSchema"
-        },
         "codec" : {
           "$ref" : "#/definitions/ObjectCodec"
         },
         "prettyPrinter" : {
           "$ref" : "#/definitions/PrettyPrinter"
         },
+        "closed" : {
+          "type" : "boolean"
+        },
         "characterEscapes" : {
           "$ref" : "#/definitions/CharacterEscapes"
         },
+        "schema" : {
+          "$ref" : "#/definitions/FormatSchema"
+        },
         "featureMask" : {
           "type" : "integer",
           "format" : "int32"
@@ -22437,9 +22437,6 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "currentValue" : {
-          "type" : "object"
-        },
         "highestEscapedChar" : {
           "type" : "integer",
           "format" : "int32"
@@ -22451,6 +22448,9 @@
           "type" : "integer",
           "format" : "int32"
         },
+        "currentValue" : {
+          "type" : "object"
+        },
         "outputContext" : {
           "$ref" : "#/definitions/JsonStreamContext"
         }
@@ -22490,6 +22490,9 @@
           "type" : "integer",
           "format" : "int32"
         },
+        "codec" : {
+          "$ref" : "#/definitions/ObjectCodec"
+        },
         "text" : {
           "type" : "string"
         },
@@ -22499,6 +22502,10 @@
             "type" : "string"
           }
         },
+        "currentToken" : {
+          "type" : "string",
+          "enum" : [ "NOT_AVAILABLE", "START_OBJECT", "END_OBJECT", "START_ARRAY", "END_ARRAY", "FIELD_NAME", "VALUE_EMBEDDED_OBJECT", "VALUE_STRING", "VALUE_NUMBER_INT", "VALUE_NUMBER_FLOAT", "VALUE_TRUE", "VALUE_FALSE", "VALUE_NULL" ]
+        },
         "booleanValue" : {
           "type" : "boolean"
         },
@@ -22525,6 +22532,9 @@
         "closed" : {
           "type" : "boolean"
         },
+        "inputSource" : {
+          "type" : "object"
+        },
         "intValue" : {
           "type" : "integer",
           "format" : "int32"
@@ -22532,19 +22542,12 @@
         "typeId" : {
           "type" : "object"
         },
-        "schema" : {
-          "$ref" : "#/definitions/FormatSchema"
-        },
-        "codec" : {
-          "$ref" : "#/definitions/ObjectCodec"
-        },
-        "currentToken" : {
-          "type" : "string",
-          "enum" : [ "NOT_AVAILABLE", "START_OBJECT", "END_OBJECT", "START_ARRAY", "END_ARRAY", "FIELD_NAME", "VALUE_EMBEDDED_OBJECT", "VALUE_STRING", "VALUE_NUMBER_INT", "VALUE_NUMBER_FLOAT", "VALUE_TRUE", "VALUE_FALSE", "VALUE_NULL" ]
-        },
         "currentName" : {
           "type" : "string"
         },
+        "schema" : {
+          "$ref" : "#/definitions/FormatSchema"
+        },
         "tokenLocation" : {
           "$ref" : "#/definitions/JsonLocation"
         },
@@ -22556,33 +22559,13 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "currentTokenId" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
-        "parsingContext" : {
-          "$ref" : "#/definitions/JsonStreamContext"
-        },
-        "currentLocation" : {
-          "$ref" : "#/definitions/JsonLocation"
-        },
-        "expectedStartArrayToken" : {
-          "type" : "boolean"
-        },
-        "expectedStartObjectToken" : {
-          "type" : "boolean"
-        },
-        "lastClearedToken" : {
-          "type" : "string",
-          "enum" : [ "NOT_AVAILABLE", "START_OBJECT", "END_OBJECT", "START_ARRAY", "END_ARRAY", "FIELD_NAME", "VALUE_EMBEDDED_OBJECT", "VALUE_STRING", "VALUE_NUMBER_INT", "VALUE_NUMBER_FLOAT", "VALUE_TRUE", "VALUE_FALSE", "VALUE_NULL" ]
+        "currentValue" : {
+          "type" : "object"
         },
         "textOffset" : {
           "type" : "integer",
           "format" : "int32"
         },
-        "numberValue" : {
-          "$ref" : "#/definitions/Number"
-        },
         "numberType" : {
           "type" : "string",
           "enum" : [ "INT", "LONG", "BIG_INTEGER", "FLOAT", "DOUBLE", "BIG_DECIMAL" ]
@@ -22621,13 +22604,30 @@
         "valueAsString" : {
           "type" : "string"
         },
-        "objectId" : {
-          "type" : "object"
+        "parsingContext" : {
+          "$ref" : "#/definitions/JsonStreamContext"
         },
-        "inputSource" : {
-          "type" : "object"
+        "currentLocation" : {
+          "$ref" : "#/definitions/JsonLocation"
         },
-        "currentValue" : {
+        "expectedStartArrayToken" : {
+          "type" : "boolean"
+        },
+        "expectedStartObjectToken" : {
+          "type" : "boolean"
+        },
+        "lastClearedToken" : {
+          "type" : "string",
+          "enum" : [ "NOT_AVAILABLE", "START_OBJECT", "END_OBJECT", "START_ARRAY", "END_ARRAY", "FIELD_NAME", "VALUE_EMBEDDED_OBJECT", "VALUE_STRING", "VALUE_NUMBER_INT", "VALUE_NUMBER_FLOAT", "VALUE_TRUE", "VALUE_FALSE", "VALUE_NULL" ]
+        },
+        "numberValue" : {
+          "$ref" : "#/definitions/Number"
+        },
+        "currentTokenId" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "objectId" : {
           "type" : "object"
         }
       }
@@ -22966,41 +22966,44 @@
         "overLoaded" : {
           "type" : "boolean"
         },
-        "cpu" : {
-          "$ref" : "#/definitions/ResourceUsage"
+        "loadReportType" : {
+          "type" : "string"
         },
-        "memory" : {
-          "$ref" : "#/definitions/ResourceUsage"
+        "msgThroughputOut" : {
+          "type" : "number",
+          "format" : "double"
         },
-        "directMemory" : {
-          "$ref" : "#/definitions/ResourceUsage"
+        "msgThroughputIn" : {
+          "type" : "number",
+          "format" : "double"
         },
-        "bandwidthIn" : {
+        "cpu" : {
           "$ref" : "#/definitions/ResourceUsage"
         },
-        "bandwidthOut" : {
+        "directMemory" : {
           "$ref" : "#/definitions/ResourceUsage"
         },
         "lastUpdate" : {
           "type" : "integer",
           "format" : "int64"
         },
-        "loadReportType" : {
-          "type" : "string"
+        "bandwidthIn" : {
+          "$ref" : "#/definitions/ResourceUsage"
         },
-        "msgThroughputIn" : {
-          "type" : "number",
-          "format" : "double"
+        "bandwidthOut" : {
+          "$ref" : "#/definitions/ResourceUsage"
         },
-        "msgThroughputOut" : {
-          "type" : "number",
-          "format" : "double"
+        "memory" : {
+          "$ref" : "#/definitions/ResourceUsage"
         }
       }
     },
     "Locale" : {
       "type" : "object",
       "properties" : {
+        "displayName" : {
+          "type" : "string"
+        },
         "script" : {
           "type" : "string"
         },
@@ -23049,9 +23052,6 @@
         "displayVariant" : {
           "type" : "string"
         },
-        "displayName" : {
-          "type" : "string"
-        },
         "language" : {
           "type" : "string"
         }
@@ -23261,6 +23261,10 @@
         "address" : {
           "type" : "string"
         },
+        "accessMode" : {
+          "type" : "string",
+          "enum" : [ "Shared", "Exclusive", "WaitForExclusive" ]
+        },
         "metadata" : {
           "type" : "object",
           "additionalProperties" : {
@@ -23278,16 +23282,6 @@
         "clientVersion" : {
           "type" : "string"
         },
-        "supportsPartialProducer" : {
-          "type" : "boolean"
-        },
-        "connectedSince" : {
-          "type" : "string"
-        },
-        "msgRateIn" : {
-          "type" : "number",
-          "format" : "double"
-        },
         "msgThroughputIn" : {
           "type" : "number",
           "format" : "double"
@@ -23296,13 +23290,19 @@
           "type" : "number",
           "format" : "double"
         },
-        "accessMode" : {
-          "type" : "string",
-          "enum" : [ "Shared", "Exclusive", "WaitForExclusive" ]
+        "connectedSince" : {
+          "type" : "string"
         },
         "producerName" : {
           "type" : "string"
-        }
+        },
+        "supportsPartialProducer" : {
+          "type" : "boolean"
+        },
+        "msgRateIn" : {
+          "type" : "number",
+          "format" : "double"
+        }
       }
     },
     "NonPersistentReplicatorStats" : {
@@ -23312,6 +23312,13 @@
           "type" : "number",
           "format" : "double"
         },
+        "replicationDelayInSeconds" : {
+          "type" : "integer",
+          "format" : "int64"
+        },
+        "connected" : {
+          "type" : "boolean"
+        },
         "msgRateExpired" : {
           "type" : "number",
           "format" : "double"
@@ -23332,14 +23339,7 @@
         "outboundConnectedSince" : {
           "type" : "string"
         },
-        "connected" : {
-          "type" : "boolean"
-        },
-        "replicationDelayInSeconds" : {
-          "type" : "integer",
-          "format" : "int64"
-        },
-        "msgRateIn" : {
+        "msgThroughputOut" : {
           "type" : "number",
           "format" : "double"
         },
@@ -23347,11 +23347,11 @@
           "type" : "number",
           "format" : "double"
         },
-        "msgRateOut" : {
+        "msgRateIn" : {
           "type" : "number",
           "format" : "double"
         },
-        "msgThroughputOut" : {
+        "msgRateOut" : {
           "type" : "number",
           "format" : "double"
         }
@@ -23367,18 +23367,6 @@
         "type" : {
           "type" : "string"
         },
-        "subscriptionProperties" : {
-          "type" : "object",
-          "additionalProperties" : {
-            "type" : "string"
-          }
-        },
-        "allowOutOfOrderDelivery" : {
-          "type" : "boolean"
-        },
-        "keySharedMode" : {
-          "type" : "string"
-        },
         "chunkedMessageRate" : {
           "type" : "integer",
           "format" : "int32"
@@ -23447,15 +23435,17 @@
             "type" : "string"
           }
         },
-        "consumers" : {
-          "type" : "array",
-          "items" : {
-            "$ref" : "#/definitions/ConsumerStats"
+        "subscriptionProperties" : {
+          "type" : "object",
+          "additionalProperties" : {
+            "type" : "string"
           }
         },
-        "msgRateOut" : {
-          "type" : "number",
-          "format" : "double"
+        "allowOutOfOrderDelivery" : {
+          "type" : "boolean"
+        },
+        "keySharedMode" : {
+          "type" : "string"
         },
         "msgThroughputOut" : {
           "type" : "number",
@@ -23486,6 +23476,16 @@
         },
         "durable" : {
           "type" : "boolean"
+        },
+        "msgRateOut" : {
+          "type" : "number",
+          "format" : "double"
+        },
+        "consumers" : {
+          "type" : "array",
+          "items" : {
+            "$ref" : "#/definitions/ConsumerStats"
+          }
         }
       }
     },
@@ -23514,7 +23514,7 @@
             "$ref" : "#/definitions/NonPersistentSubscriptionStats"
           }
         },
-        "msgRateIn" : {
+        "msgThroughputOut" : {
           "type" : "number",
           "format" : "double"
         },
@@ -23522,14 +23522,6 @@
           "type" : "number",
           "format" : "double"
         },
-        "msgRateOut" : {
-          "type" : "number",
-          "format" : "double"
-        },
-        "msgThroughputOut" : {
-          "type" : "number",
-          "format" : "double"
-        },
         "bytesInCounter" : {
           "type" : "integer",
           "format" : "int64"
@@ -23550,9 +23542,6 @@
           "type" : "number",
           "format" : "double"
         },
-        "msgChunkPublished" : {
-          "type" : "boolean"
-        },
         "storageSize" : {
           "type" : "integer",
           "format" : "int64"
@@ -23565,11 +23554,11 @@
           "type" : "integer",
           "format" : "int64"
         },
-        "offloadedStorageSize" : {
+        "waitingPublishers" : {
           "type" : "integer",
-          "format" : "int64"
+          "format" : "int32"
         },
-        "waitingPublishers" : {
+        "nonContiguousDeletedMessagesRanges" : {
           "type" : "integer",
           "format" : "int32"
         },
@@ -23580,16 +23569,27 @@
           "type" : "integer",
           "format" : "int64"
         },
-        "nonContiguousDeletedMessagesRanges" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
         "nonContiguousDeletedMessagesRangesSerializedSize" : {
           "type" : "integer",
           "format" : "int32"
         },
         "compaction" : {
           "$ref" : "#/definitions/CompactionStats"
+        },
+        "offloadedStorageSize" : {
+          "type" : "integer",
+          "format" : "int64"
+        },
+        "msgChunkPublished" : {
+          "type" : "boolean"
+        },
+        "msgRateIn" : {
+          "type" : "number",
+          "format" : "double"
+        },
+        "msgRateOut" : {
+          "type" : "number",
+          "format" : "double"
         }
       }
     },
@@ -23621,12 +23621,12 @@
           "type" : "integer",
           "format" : "int32"
         },
+        "currency" : {
+          "$ref" : "#/definitions/Currency"
+        },
         "roundingMode" : {
           "type" : "string",
           "enum" : [ "UP", "DOWN", "CEILING", "FLOOR", "HALF_UP", "HALF_DOWN", "HALF_EVEN", "UNNECESSARY" ]
-        },
-        "currency" : {
-          "$ref" : "#/definitions/Currency"
         }
       }
     },
@@ -23647,27 +23647,6 @@
         "factory" : {
           "$ref" : "#/definitions/JsonFactory"
         },
-        "serializationConfig" : {
-          "$ref" : "#/definitions/SerializationConfig"
-        },
-        "deserializationConfig" : {
-          "$ref" : "#/definitions/DeserializationConfig"
-        },
-        "deserializationContext" : {
-          "$ref" : "#/definitions/DeserializationContext"
-        },
-        "serializerFactory" : {
-          "$ref" : "#/definitions/SerializerFactory"
-        },
-        "serializerProvider" : {
-          "$ref" : "#/definitions/SerializerProvider"
-        },
-        "serializerProviderInstance" : {
-          "$ref" : "#/definitions/SerializerProvider"
-        },
-        "typeFactory" : {
-          "$ref" : "#/definitions/TypeFactory"
-        },
         "visibilityChecker" : {
           "$ref" : "#/definitions/VisibilityCheckerObject"
         },
@@ -23677,6 +23656,9 @@
         "propertyNamingStrategy" : {
           "$ref" : "#/definitions/PropertyNamingStrategy"
         },
+        "typeFactory" : {
+          "$ref" : "#/definitions/TypeFactory"
+        },
         "nodeFactory" : {
           "$ref" : "#/definitions/JsonNodeFactory"
         },
@@ -23688,6 +23670,24 @@
         },
         "injectableValues" : {
           "$ref" : "#/definitions/InjectableValues"
+        },
+        "serializationConfig" : {
+          "$ref" : "#/definitions/SerializationConfig"
+        },
+        "deserializationConfig" : {
+          "$ref" : "#/definitions/DeserializationConfig"
+        },
+        "deserializationContext" : {
+          "$ref" : "#/definitions/DeserializationContext"
+        },
+        "serializerFactory" : {
+          "$ref" : "#/definitions/SerializerFactory"
+        },
+        "serializerProvider" : {
+          "$ref" : "#/definitions/SerializerProvider"
+        },
+        "serializerProviderInstance" : {
+          "$ref" : "#/definitions/SerializerProvider"
         }
       }
     },
@@ -23716,9 +23716,30 @@
           "type" : "integer",
           "format" : "int32"
         },
+        "fileSystemURI" : {
+          "type" : "string"
+        },
+        "managedLedgerOffloadedReadPriority" : {
+          "type" : "string",
+          "enum" : [ "BOOKKEEPER_FIRST", "TIERED_STORAGE_FIRST" ]
+        },
         "s3ManagedLedgerOffloadRegion" : {
           "type" : "string"
         },
+        "s3ManagedLedgerOffloadBucket" : {
+          "type" : "string"
+        },
+        "s3ManagedLedgerOffloadServiceEndpoint" : {
+          "type" : "string"
+        },
+        "s3ManagedLedgerOffloadMaxBlockSizeInBytes" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "s3ManagedLedgerOffloadReadBufferSizeInBytes" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
         "s3ManagedLedgerOffloadCredentialId" : {
           "type" : "string"
         },
@@ -23767,27 +23788,6 @@
         "managedLedgerOffloadReadBufferSizeInBytes" : {
           "type" : "integer",
           "format" : "int32"
-        },
-        "fileSystemURI" : {
-          "type" : "string"
-        },
-        "s3ManagedLedgerOffloadServiceEndpoint" : {
-          "type" : "string"
-        },
-        "s3ManagedLedgerOffloadMaxBlockSizeInBytes" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
-        "s3ManagedLedgerOffloadReadBufferSizeInBytes" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
-        "s3ManagedLedgerOffloadBucket" : {
-          "type" : "string"
-        },
-        "managedLedgerOffloadedReadPriority" : {
-          "type" : "string",
-          "enum" : [ "BOOKKEEPER_FIRST", "TIERED_STORAGE_FIRST" ]
         }
       }
     },
@@ -24503,10 +24503,10 @@
     "PublicKey" : {
       "type" : "object",
       "properties" : {
-        "format" : {
+        "algorithm" : {
           "type" : "string"
         },
-        "algorithm" : {
+        "format" : {
           "type" : "string"
         },
         "encoded" : {
@@ -24537,6 +24537,10 @@
         "address" : {
           "type" : "string"
         },
+        "accessMode" : {
+          "type" : "string",
+          "enum" : [ "Shared", "Exclusive", "WaitForExclusive" ]
+        },
         "metadata" : {
           "type" : "object",
           "additionalProperties" : {
@@ -24554,16 +24558,6 @@
         "clientVersion" : {
           "type" : "string"
         },
-        "supportsPartialProducer" : {
-          "type" : "boolean"
-        },
-        "connectedSince" : {
-          "type" : "string"
-        },
-        "msgRateIn" : {
-          "type" : "number",
-          "format" : "double"
-        },
         "msgThroughputIn" : {
           "type" : "number",
           "format" : "double"
@@ -24572,12 +24566,18 @@
           "type" : "number",
           "format" : "double"
         },
-        "accessMode" : {
-          "type" : "string",
-          "enum" : [ "Shared", "Exclusive", "WaitForExclusive" ]
+        "connectedSince" : {
+          "type" : "string"
         },
         "producerName" : {
           "type" : "string"
+        },
+        "supportsPartialProducer" : {
+          "type" : "boolean"
+        },
+        "msgRateIn" : {
+          "type" : "number",
+          "format" : "double"
         }
       }
     },
@@ -24592,6 +24592,13 @@
     "ReplicatorStats" : {
       "type" : "object",
       "properties" : {
+        "replicationDelayInSeconds" : {
+          "type" : "integer",
+          "format" : "int64"
+        },
+        "connected" : {
+          "type" : "boolean"
+        },
         "msgRateExpired" : {
           "type" : "number",
           "format" : "double"
@@ -24612,14 +24619,7 @@
         "outboundConnectedSince" : {
           "type" : "string"
         },
-        "connected" : {
-          "type" : "boolean"
-        },
-        "replicationDelayInSeconds" : {
-          "type" : "integer",
-          "format" : "int64"
-        },
-        "msgRateIn" : {
+        "msgThroughputOut" : {
           "type" : "number",
           "format" : "double"
         },
@@ -24627,11 +24627,11 @@
           "type" : "number",
           "format" : "double"
         },
-        "msgRateOut" : {
+        "msgRateIn" : {
           "type" : "number",
           "format" : "double"
         },
-        "msgThroughputOut" : {
+        "msgRateOut" : {
           "type" : "number",
           "format" : "double"
         }
@@ -24664,15 +24664,15 @@
     "ResourceDescription" : {
       "type" : "object",
       "properties" : {
+        "usagePct" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
         "resourceUsage" : {
           "type" : "object",
           "additionalProperties" : {
             "$ref" : "#/definitions/ResourceUsage"
           }
-        },
-        "usagePct" : {
-          "type" : "integer",
-          "format" : "int32"
         }
       }
     },
@@ -24785,6 +24785,9 @@
     "SerializationConfig" : {
       "type" : "object",
       "properties" : {
+        "defaultPrettyPrinter" : {
+          "$ref" : "#/definitions/PrettyPrinter"
+        },
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
@@ -24794,9 +24797,6 @@
         "filterProvider" : {
           "$ref" : "#/definitions/FilterProvider"
         },
-        "defaultPrettyPrinter" : {
-          "$ref" : "#/definitions/PrettyPrinter"
-        },
         "serializationInclusion" : {
           "type" : "string",
           "enum" : [ "ALWAYS", "NON_NULL", "NON_ABSENT", "NON_EMPTY", "NON_DEFAULT", "USE_DEFAULTS" ]
@@ -24808,26 +24808,23 @@
         "attributes" : {
           "$ref" : "#/definitions/ContextAttributes"
         },
-        "rootName" : {
-          "type" : "string"
-        },
         "subtypeResolver" : {
           "$ref" : "#/definitions/SubtypeResolver"
         },
-        "fullRootName" : {
-          "$ref" : "#/definitions/PropertyName"
-        },
         "defaultVisibilityChecker" : {
           "$ref" : "#/definitions/VisibilityCheckerObject"
         },
-        "timeZone" : {
-          "$ref" : "#/definitions/TimeZone"
+        "rootName" : {
+          "type" : "string"
+        },
+        "fullRootName" : {
+          "$ref" : "#/definitions/PropertyName"
         },
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
-        "typeFactory" : {
-          "$ref" : "#/definitions/TypeFactory"
+        "timeZone" : {
+          "$ref" : "#/definitions/TimeZone"
         },
         "propertyNamingStrategy" : {
           "$ref" : "#/definitions/PropertyNamingStrategy"
@@ -24835,15 +24832,18 @@
         "dateFormat" : {
           "$ref" : "#/definitions/DateFormat"
         },
+        "annotationProcessingEnabled" : {
+          "type" : "boolean"
+        },
+        "typeFactory" : {
+          "$ref" : "#/definitions/TypeFactory"
+        },
         "handlerInstantiator" : {
           "$ref" : "#/definitions/HandlerInstantiator"
         },
         "base64Variant" : {
           "$ref" : "#/definitions/Base64Variant"
         },
-        "annotationProcessingEnabled" : {
-          "type" : "boolean"
-        },
         "classIntrospector" : {
           "$ref" : "#/definitions/ClassIntrospector"
         }
@@ -24855,12 +24855,12 @@
     "SerializerProvider" : {
       "type" : "object",
       "properties" : {
-        "timeZone" : {
-          "$ref" : "#/definitions/TimeZone"
-        },
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
+        "timeZone" : {
+          "$ref" : "#/definitions/TimeZone"
+        },
         "config" : {
           "$ref" : "#/definitions/SerializationConfig"
         },
@@ -24977,18 +24977,6 @@
         "type" : {
           "type" : "string"
         },
-        "subscriptionProperties" : {
-          "type" : "object",
-          "additionalProperties" : {
-            "type" : "string"
-          }
-        },
-        "allowOutOfOrderDelivery" : {
-          "type" : "boolean"
-        },
-        "keySharedMode" : {
-          "type" : "string"
-        },
         "chunkedMessageRate" : {
           "type" : "integer",
           "format" : "int32"
@@ -25057,15 +25045,17 @@
             "type" : "string"
           }
         },
-        "consumers" : {
-          "type" : "array",
-          "items" : {
-            "$ref" : "#/definitions/ConsumerStats"
+        "subscriptionProperties" : {
+          "type" : "object",
+          "additionalProperties" : {
+            "type" : "string"
           }
         },
-        "msgRateOut" : {
-          "type" : "number",
-          "format" : "double"
+        "allowOutOfOrderDelivery" : {
+          "type" : "boolean"
+        },
+        "keySharedMode" : {
+          "type" : "string"
         },
         "msgThroughputOut" : {
           "type" : "number",
@@ -25096,6 +25086,16 @@
         },
         "durable" : {
           "type" : "boolean"
+        },
+        "msgRateOut" : {
+          "type" : "number",
+          "format" : "double"
+        },
+        "consumers" : {
+          "type" : "array",
+          "items" : {
+            "$ref" : "#/definitions/ConsumerStats"
+          }
         }
       }
     },
@@ -25158,10 +25158,10 @@
     "TimeZone" : {
       "type" : "object",
       "properties" : {
-        "id" : {
+        "displayName" : {
           "type" : "string"
         },
-        "displayName" : {
+        "id" : {
           "type" : "string"
         },
         "dstsavings" : {
@@ -25177,7 +25177,7 @@
     "TopicStats" : {
       "type" : "object",
       "properties" : {
-        "msgRateIn" : {
+        "msgThroughputOut" : {
           "type" : "number",
           "format" : "double"
         },
@@ -25185,14 +25185,6 @@
           "type" : "number",
           "format" : "double"
         },
-        "msgRateOut" : {
-          "type" : "number",
-          "format" : "double"
-        },
-        "msgThroughputOut" : {
-          "type" : "number",
-          "format" : "double"
-        },
         "bytesInCounter" : {
           "type" : "integer",
           "format" : "int64"
@@ -25213,9 +25205,6 @@
           "type" : "number",
           "format" : "double"
         },
-        "msgChunkPublished" : {
-          "type" : "boolean"
-        },
         "storageSize" : {
           "type" : "integer",
           "format" : "int64"
@@ -25228,10 +25217,6 @@
           "type" : "integer",
           "format" : "int64"
         },
-        "offloadedStorageSize" : {
-          "type" : "integer",
-          "format" : "int64"
-        },
         "publishers" : {
           "type" : "array",
           "items" : {
@@ -25248,6 +25233,10 @@
             "$ref" : "#/definitions/ReplicatorStats"
           }
         },
+        "nonContiguousDeletedMessagesRanges" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
         "deduplicationStatus" : {
           "type" : "string"
         },
@@ -25255,10 +25244,6 @@
           "type" : "integer",
           "format" : "int64"
         },
-        "nonContiguousDeletedMessagesRanges" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
         "nonContiguousDeletedMessagesRangesSerializedSize" : {
           "type" : "integer",
           "format" : "int32"
@@ -25271,6 +25256,21 @@
           "additionalProperties" : {
             "$ref" : "#/definitions/SubscriptionStats"
           }
+        },
+        "offloadedStorageSize" : {
+          "type" : "integer",
+          "format" : "int64"
+        },
+        "msgChunkPublished" : {
+          "type" : "boolean"
+        },
+        "msgRateIn" : {
+          "type" : "number",
+          "format" : "double"
+        },
+        "msgRateOut" : {
+          "type" : "number",
+          "format" : "double"
         }
       }
     },
diff --git a/content/swagger/2.10.0-SNAPSHOT/swaggerfunctions.json b/content/swagger/2.10.0-SNAPSHOT/swaggerfunctions.json
index 5168b19..ebb5a12 100644
--- a/content/swagger/2.10.0-SNAPSHOT/swaggerfunctions.json
+++ b/content/swagger/2.10.0-SNAPSHOT/swaggerfunctions.json
@@ -965,6 +965,9 @@
         "subscription" : {
           "type" : "string"
         },
+        "peerAddress" : {
+          "$ref" : "#/definitions/SocketAddress"
+        },
         "tlsCertificates" : {
           "type" : "array",
           "items" : {
@@ -976,9 +979,6 @@
         },
         "commandData" : {
           "type" : "string"
-        },
-        "peerAddress" : {
-          "$ref" : "#/definitions/SocketAddress"
         }
       }
     },
@@ -1198,14 +1198,14 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "numericCodeAsString" : {
-          "type" : "string"
-        },
         "displayName" : {
           "type" : "string"
         },
         "symbol" : {
           "type" : "string"
+        },
+        "numericCodeAsString" : {
+          "type" : "string"
         }
       }
     },
@@ -1249,26 +1249,23 @@
         "attributes" : {
           "$ref" : "#/definitions/ContextAttributes"
         },
-        "rootName" : {
-          "type" : "string"
-        },
         "subtypeResolver" : {
           "$ref" : "#/definitions/SubtypeResolver"
         },
-        "fullRootName" : {
-          "$ref" : "#/definitions/PropertyName"
-        },
         "defaultVisibilityChecker" : {
           "$ref" : "#/definitions/VisibilityCheckerObject"
         },
-        "timeZone" : {
-          "$ref" : "#/definitions/TimeZone"
+        "rootName" : {
+          "type" : "string"
+        },
+        "fullRootName" : {
+          "$ref" : "#/definitions/PropertyName"
         },
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
-        "typeFactory" : {
-          "$ref" : "#/definitions/TypeFactory"
+        "timeZone" : {
+          "$ref" : "#/definitions/TimeZone"
         },
         "propertyNamingStrategy" : {
           "$ref" : "#/definitions/PropertyNamingStrategy"
@@ -1276,15 +1273,18 @@
         "dateFormat" : {
           "$ref" : "#/definitions/DateFormat"
         },
+        "annotationProcessingEnabled" : {
+          "type" : "boolean"
+        },
+        "typeFactory" : {
+          "$ref" : "#/definitions/TypeFactory"
+        },
         "handlerInstantiator" : {
           "$ref" : "#/definitions/HandlerInstantiator"
         },
         "base64Variant" : {
           "$ref" : "#/definitions/Base64Variant"
         },
-        "annotationProcessingEnabled" : {
-          "type" : "boolean"
-        },
         "classIntrospector" : {
           "$ref" : "#/definitions/ClassIntrospector"
         }
@@ -1293,27 +1293,27 @@
     "DeserializationContext" : {
       "type" : "object",
       "properties" : {
-        "timeZone" : {
-          "$ref" : "#/definitions/TimeZone"
-        },
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
+        "timeZone" : {
+          "$ref" : "#/definitions/TimeZone"
+        },
         "factory" : {
           "$ref" : "#/definitions/DeserializerFactory"
         },
         "config" : {
           "$ref" : "#/definitions/DeserializationConfig"
         },
+        "nodeFactory" : {
+          "$ref" : "#/definitions/JsonNodeFactory"
+        },
         "parser" : {
           "$ref" : "#/definitions/JsonParser"
         },
         "typeFactory" : {
           "$ref" : "#/definitions/TypeFactory"
         },
-        "nodeFactory" : {
-          "$ref" : "#/definitions/JsonNodeFactory"
-        },
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
@@ -1574,13 +1574,6 @@
     "FunctionInstanceStatsData" : {
       "type" : "object",
       "properties" : {
-        "oneMin" : {
-          "$ref" : "#/definitions/FunctionInstanceStatsDataBase"
-        },
-        "lastInvocation" : {
-          "type" : "integer",
-          "format" : "int64"
-        },
         "userMetrics" : {
           "type" : "object",
           "additionalProperties" : {
@@ -1588,6 +1581,13 @@
             "format" : "double"
           }
         },
+        "oneMin" : {
+          "$ref" : "#/definitions/FunctionInstanceStatsDataBase"
+        },
+        "lastInvocation" : {
+          "type" : "integer",
+          "format" : "int64"
+        },
         "receivedTotal" : {
           "type" : "integer",
           "format" : "int64"
@@ -1964,15 +1964,9 @@
     "JsonFactory" : {
       "type" : "object",
       "properties" : {
-        "rootValueSeparator" : {
-          "type" : "string"
-        },
         "codec" : {
           "$ref" : "#/definitions/ObjectCodec"
         },
-        "formatName" : {
-          "type" : "string"
-        },
         "inputDecorator" : {
           "$ref" : "#/definitions/InputDecorator"
         },
@@ -1981,27 +1975,33 @@
         },
         "outputDecorator" : {
           "$ref" : "#/definitions/OutputDecorator"
+        },
+        "formatName" : {
+          "type" : "string"
+        },
+        "rootValueSeparator" : {
+          "type" : "string"
         }
       }
     },
     "JsonGenerator" : {
       "type" : "object",
       "properties" : {
-        "closed" : {
-          "type" : "boolean"
-        },
-        "schema" : {
-          "$ref" : "#/definitions/FormatSchema"
-        },
         "codec" : {
           "$ref" : "#/definitions/ObjectCodec"
         },
         "prettyPrinter" : {
           "$ref" : "#/definitions/PrettyPrinter"
         },
+        "closed" : {
+          "type" : "boolean"
+        },
         "characterEscapes" : {
           "$ref" : "#/definitions/CharacterEscapes"
         },
+        "schema" : {
+          "$ref" : "#/definitions/FormatSchema"
+        },
         "featureMask" : {
           "type" : "integer",
           "format" : "int32"
@@ -2010,9 +2010,6 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "currentValue" : {
-          "type" : "object"
-        },
         "highestEscapedChar" : {
           "type" : "integer",
           "format" : "int32"
@@ -2024,6 +2021,9 @@
           "type" : "integer",
           "format" : "int32"
         },
+        "currentValue" : {
+          "type" : "object"
+        },
         "outputContext" : {
           "$ref" : "#/definitions/JsonStreamContext"
         }
@@ -2063,6 +2063,9 @@
           "type" : "integer",
           "format" : "int32"
         },
+        "codec" : {
+          "$ref" : "#/definitions/ObjectCodec"
+        },
         "text" : {
           "type" : "string"
         },
@@ -2072,6 +2075,10 @@
             "type" : "string"
           }
         },
+        "currentToken" : {
+          "type" : "string",
+          "enum" : [ "NOT_AVAILABLE", "START_OBJECT", "END_OBJECT", "START_ARRAY", "END_ARRAY", "FIELD_NAME", "VALUE_EMBEDDED_OBJECT", "VALUE_STRING", "VALUE_NUMBER_INT", "VALUE_NUMBER_FLOAT", "VALUE_TRUE", "VALUE_FALSE", "VALUE_NULL" ]
+        },
         "booleanValue" : {
           "type" : "boolean"
         },
@@ -2098,6 +2105,9 @@
         "closed" : {
           "type" : "boolean"
         },
+        "inputSource" : {
+          "type" : "object"
+        },
         "intValue" : {
           "type" : "integer",
           "format" : "int32"
@@ -2105,19 +2115,12 @@
         "typeId" : {
           "type" : "object"
         },
-        "schema" : {
-          "$ref" : "#/definitions/FormatSchema"
-        },
-        "codec" : {
-          "$ref" : "#/definitions/ObjectCodec"
-        },
-        "currentToken" : {
-          "type" : "string",
-          "enum" : [ "NOT_AVAILABLE", "START_OBJECT", "END_OBJECT", "START_ARRAY", "END_ARRAY", "FIELD_NAME", "VALUE_EMBEDDED_OBJECT", "VALUE_STRING", "VALUE_NUMBER_INT", "VALUE_NUMBER_FLOAT", "VALUE_TRUE", "VALUE_FALSE", "VALUE_NULL" ]
-        },
         "currentName" : {
           "type" : "string"
         },
+        "schema" : {
+          "$ref" : "#/definitions/FormatSchema"
+        },
         "tokenLocation" : {
           "$ref" : "#/definitions/JsonLocation"
         },
@@ -2129,33 +2132,13 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "currentTokenId" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
-        "parsingContext" : {
-          "$ref" : "#/definitions/JsonStreamContext"
-        },
-        "currentLocation" : {
-          "$ref" : "#/definitions/JsonLocation"
-        },
-        "expectedStartArrayToken" : {
-          "type" : "boolean"
-        },
-        "expectedStartObjectToken" : {
-          "type" : "boolean"
-        },
-        "lastClearedToken" : {
-          "type" : "string",
-          "enum" : [ "NOT_AVAILABLE", "START_OBJECT", "END_OBJECT", "START_ARRAY", "END_ARRAY", "FIELD_NAME", "VALUE_EMBEDDED_OBJECT", "VALUE_STRING", "VALUE_NUMBER_INT", "VALUE_NUMBER_FLOAT", "VALUE_TRUE", "VALUE_FALSE", "VALUE_NULL" ]
+        "currentValue" : {
+          "type" : "object"
         },
         "textOffset" : {
           "type" : "integer",
           "format" : "int32"
         },
-        "numberValue" : {
-          "$ref" : "#/definitions/Number"
-        },
         "numberType" : {
           "type" : "string",
           "enum" : [ "INT", "LONG", "BIG_INTEGER", "FLOAT", "DOUBLE", "BIG_DECIMAL" ]
@@ -2194,13 +2177,30 @@
         "valueAsString" : {
           "type" : "string"
         },
-        "objectId" : {
-          "type" : "object"
+        "parsingContext" : {
+          "$ref" : "#/definitions/JsonStreamContext"
         },
-        "inputSource" : {
-          "type" : "object"
+        "currentLocation" : {
+          "$ref" : "#/definitions/JsonLocation"
         },
-        "currentValue" : {
+        "expectedStartArrayToken" : {
+          "type" : "boolean"
+        },
+        "expectedStartObjectToken" : {
+          "type" : "boolean"
+        },
+        "lastClearedToken" : {
+          "type" : "string",
+          "enum" : [ "NOT_AVAILABLE", "START_OBJECT", "END_OBJECT", "START_ARRAY", "END_ARRAY", "FIELD_NAME", "VALUE_EMBEDDED_OBJECT", "VALUE_STRING", "VALUE_NUMBER_INT", "VALUE_NUMBER_FLOAT", "VALUE_TRUE", "VALUE_FALSE", "VALUE_NULL" ]
+        },
+        "numberValue" : {
+          "$ref" : "#/definitions/Number"
+        },
+        "currentTokenId" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "objectId" : {
           "type" : "object"
         }
       }
@@ -2258,6 +2258,9 @@
     "Locale" : {
       "type" : "object",
       "properties" : {
+        "displayName" : {
+          "type" : "string"
+        },
         "script" : {
           "type" : "string"
         },
@@ -2306,9 +2309,6 @@
         "displayVariant" : {
           "type" : "string"
         },
-        "displayName" : {
-          "type" : "string"
-        },
         "language" : {
           "type" : "string"
         }
@@ -2343,10 +2343,6 @@
             "format" : "byte"
           }
         },
-        "brokerPublishTime" : {
-          "type" : "integer",
-          "format" : "int64"
-        },
         "messageId" : {
           "$ref" : "#/definitions/MessageId"
         },
@@ -2367,6 +2363,10 @@
         "readerSchema" : {
           "$ref" : "#/definitions/SchemaObject"
         },
+        "brokerPublishTime" : {
+          "type" : "integer",
+          "format" : "int64"
+        },
         "publishTime" : {
           "type" : "integer",
           "format" : "int64"
@@ -2491,12 +2491,12 @@
           "type" : "integer",
           "format" : "int32"
         },
+        "currency" : {
+          "$ref" : "#/definitions/Currency"
+        },
         "roundingMode" : {
           "type" : "string",
           "enum" : [ "UP", "DOWN", "CEILING", "FLOOR", "HALF_UP", "HALF_DOWN", "HALF_EVEN", "UNNECESSARY" ]
-        },
-        "currency" : {
-          "$ref" : "#/definitions/Currency"
         }
       }
     },
@@ -2517,27 +2517,6 @@
         "factory" : {
           "$ref" : "#/definitions/JsonFactory"
         },
-        "serializationConfig" : {
-          "$ref" : "#/definitions/SerializationConfig"
-        },
-        "deserializationConfig" : {
-          "$ref" : "#/definitions/DeserializationConfig"
-        },
-        "deserializationContext" : {
-          "$ref" : "#/definitions/DeserializationContext"
-        },
-        "serializerFactory" : {
-          "$ref" : "#/definitions/SerializerFactory"
-        },
-        "serializerProvider" : {
-          "$ref" : "#/definitions/SerializerProvider"
-        },
-        "serializerProviderInstance" : {
-          "$ref" : "#/definitions/SerializerProvider"
-        },
-        "typeFactory" : {
-          "$ref" : "#/definitions/TypeFactory"
-        },
         "visibilityChecker" : {
           "$ref" : "#/definitions/VisibilityCheckerObject"
         },
@@ -2547,6 +2526,9 @@
         "propertyNamingStrategy" : {
           "$ref" : "#/definitions/PropertyNamingStrategy"
         },
+        "typeFactory" : {
+          "$ref" : "#/definitions/TypeFactory"
+        },
         "nodeFactory" : {
           "$ref" : "#/definitions/JsonNodeFactory"
         },
@@ -2558,6 +2540,24 @@
         },
         "injectableValues" : {
           "$ref" : "#/definitions/InjectableValues"
+        },
+        "serializationConfig" : {
+          "$ref" : "#/definitions/SerializationConfig"
+        },
+        "deserializationConfig" : {
+          "$ref" : "#/definitions/DeserializationConfig"
+        },
+        "deserializationContext" : {
+          "$ref" : "#/definitions/DeserializationContext"
+        },
+        "serializerFactory" : {
+          "$ref" : "#/definitions/SerializerFactory"
+        },
+        "serializerProvider" : {
+          "$ref" : "#/definitions/SerializerProvider"
+        },
+        "serializerProviderInstance" : {
+          "$ref" : "#/definitions/SerializerProvider"
         }
       }
     },
@@ -2650,10 +2650,10 @@
     "PublicKey" : {
       "type" : "object",
       "properties" : {
-        "format" : {
+        "algorithm" : {
           "type" : "string"
         },
-        "algorithm" : {
+        "format" : {
           "type" : "string"
         },
         "encoded" : {
@@ -2709,15 +2709,15 @@
           "type" : "string",
           "enum" : [ "NONE", "STRING", "JSON", "PROTOBUF", "AVRO", "BOOLEAN", "INT8", "INT16", "INT32", "INT64", "FLOAT", "DOUBLE", "DATE", "TIME", "TIMESTAMP", "KEY_VALUE", "INSTANT", "LOCAL_DATE", "LOCAL_TIME", "LOCAL_DATE_TIME", "PROTOBUF_NATIVE", "BYTES", "AUTO", "AUTO_CONSUME", "AUTO_PUBLISH" ]
         },
-        "schemaDefinition" : {
-          "type" : "string"
-        },
         "schema" : {
           "type" : "array",
           "items" : {
             "type" : "string",
             "format" : "byte"
           }
+        },
+        "schemaDefinition" : {
+          "type" : "string"
         }
       }
     },
@@ -2735,6 +2735,9 @@
     "SerializationConfig" : {
       "type" : "object",
       "properties" : {
+        "defaultPrettyPrinter" : {
+          "$ref" : "#/definitions/PrettyPrinter"
+        },
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
@@ -2744,9 +2747,6 @@
         "filterProvider" : {
           "$ref" : "#/definitions/FilterProvider"
         },
-        "defaultPrettyPrinter" : {
-          "$ref" : "#/definitions/PrettyPrinter"
-        },
         "serializationInclusion" : {
           "type" : "string",
           "enum" : [ "ALWAYS", "NON_NULL", "NON_ABSENT", "NON_EMPTY", "NON_DEFAULT", "USE_DEFAULTS" ]
@@ -2758,26 +2758,23 @@
         "attributes" : {
           "$ref" : "#/definitions/ContextAttributes"
         },
-        "rootName" : {
-          "type" : "string"
-        },
         "subtypeResolver" : {
           "$ref" : "#/definitions/SubtypeResolver"
         },
-        "fullRootName" : {
-          "$ref" : "#/definitions/PropertyName"
-        },
         "defaultVisibilityChecker" : {
           "$ref" : "#/definitions/VisibilityCheckerObject"
         },
-        "timeZone" : {
-          "$ref" : "#/definitions/TimeZone"
+        "rootName" : {
+          "type" : "string"
+        },
+        "fullRootName" : {
+          "$ref" : "#/definitions/PropertyName"
         },
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
-        "typeFactory" : {
-          "$ref" : "#/definitions/TypeFactory"
+        "timeZone" : {
+          "$ref" : "#/definitions/TimeZone"
         },
         "propertyNamingStrategy" : {
           "$ref" : "#/definitions/PropertyNamingStrategy"
@@ -2785,15 +2782,18 @@
         "dateFormat" : {
           "$ref" : "#/definitions/DateFormat"
         },
+        "annotationProcessingEnabled" : {
+          "type" : "boolean"
+        },
+        "typeFactory" : {
+          "$ref" : "#/definitions/TypeFactory"
+        },
         "handlerInstantiator" : {
           "$ref" : "#/definitions/HandlerInstantiator"
         },
         "base64Variant" : {
           "$ref" : "#/definitions/Base64Variant"
         },
-        "annotationProcessingEnabled" : {
-          "type" : "boolean"
-        },
         "classIntrospector" : {
           "$ref" : "#/definitions/ClassIntrospector"
         }
@@ -2805,12 +2805,12 @@
     "SerializerProvider" : {
       "type" : "object",
       "properties" : {
-        "timeZone" : {
-          "$ref" : "#/definitions/TimeZone"
-        },
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
+        "timeZone" : {
+          "$ref" : "#/definitions/TimeZone"
+        },
         "config" : {
           "$ref" : "#/definitions/SerializationConfig"
         },
@@ -2846,10 +2846,10 @@
     "TimeZone" : {
       "type" : "object",
       "properties" : {
-        "id" : {
+        "displayName" : {
           "type" : "string"
         },
-        "displayName" : {
+        "id" : {
           "type" : "string"
         },
         "dstsavings" : {
diff --git a/content/swagger/2.10.0-SNAPSHOT/swaggerpackages.json b/content/swagger/2.10.0-SNAPSHOT/swaggerpackages.json
index e370d76..3a7dc2a 100644
--- a/content/swagger/2.10.0-SNAPSHOT/swaggerpackages.json
+++ b/content/swagger/2.10.0-SNAPSHOT/swaggerpackages.json
@@ -414,6 +414,9 @@
         "subscription" : {
           "type" : "string"
         },
+        "peerAddress" : {
+          "$ref" : "#/definitions/SocketAddress"
+        },
         "tlsCertificates" : {
           "type" : "array",
           "items" : {
@@ -425,9 +428,6 @@
         },
         "commandData" : {
           "type" : "string"
-        },
-        "peerAddress" : {
-          "$ref" : "#/definitions/SocketAddress"
         }
       }
     },
@@ -583,14 +583,14 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "numericCodeAsString" : {
-          "type" : "string"
-        },
         "displayName" : {
           "type" : "string"
         },
         "symbol" : {
           "type" : "string"
+        },
+        "numericCodeAsString" : {
+          "type" : "string"
         }
       }
     },
@@ -634,26 +634,23 @@
         "attributes" : {
           "$ref" : "#/definitions/ContextAttributes"
         },
-        "rootName" : {
-          "type" : "string"
-        },
         "subtypeResolver" : {
           "$ref" : "#/definitions/SubtypeResolver"
         },
-        "fullRootName" : {
-          "$ref" : "#/definitions/PropertyName"
-        },
         "defaultVisibilityChecker" : {
           "$ref" : "#/definitions/VisibilityCheckerObject"
         },
-        "timeZone" : {
-          "$ref" : "#/definitions/TimeZone"
+        "rootName" : {
+          "type" : "string"
+        },
+        "fullRootName" : {
+          "$ref" : "#/definitions/PropertyName"
         },
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
-        "typeFactory" : {
-          "$ref" : "#/definitions/TypeFactory"
+        "timeZone" : {
+          "$ref" : "#/definitions/TimeZone"
         },
         "propertyNamingStrategy" : {
           "$ref" : "#/definitions/PropertyNamingStrategy"
@@ -661,15 +658,18 @@
         "dateFormat" : {
           "$ref" : "#/definitions/DateFormat"
         },
+        "annotationProcessingEnabled" : {
+          "type" : "boolean"
+        },
+        "typeFactory" : {
+          "$ref" : "#/definitions/TypeFactory"
+        },
         "handlerInstantiator" : {
           "$ref" : "#/definitions/HandlerInstantiator"
         },
         "base64Variant" : {
           "$ref" : "#/definitions/Base64Variant"
         },
-        "annotationProcessingEnabled" : {
-          "type" : "boolean"
-        },
         "classIntrospector" : {
           "$ref" : "#/definitions/ClassIntrospector"
         }
@@ -678,27 +678,27 @@
     "DeserializationContext" : {
       "type" : "object",
       "properties" : {
-        "timeZone" : {
-          "$ref" : "#/definitions/TimeZone"
-        },
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
+        "timeZone" : {
+          "$ref" : "#/definitions/TimeZone"
+        },
         "factory" : {
           "$ref" : "#/definitions/DeserializerFactory"
         },
         "config" : {
           "$ref" : "#/definitions/DeserializationConfig"
         },
+        "nodeFactory" : {
+          "$ref" : "#/definitions/JsonNodeFactory"
+        },
         "parser" : {
           "$ref" : "#/definitions/JsonParser"
         },
         "typeFactory" : {
           "$ref" : "#/definitions/TypeFactory"
         },
-        "nodeFactory" : {
-          "$ref" : "#/definitions/JsonNodeFactory"
-        },
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
@@ -838,15 +838,9 @@
     "JsonFactory" : {
       "type" : "object",
       "properties" : {
-        "rootValueSeparator" : {
-          "type" : "string"
-        },
         "codec" : {
           "$ref" : "#/definitions/ObjectCodec"
         },
-        "formatName" : {
-          "type" : "string"
-        },
         "inputDecorator" : {
           "$ref" : "#/definitions/InputDecorator"
         },
@@ -855,27 +849,33 @@
         },
         "outputDecorator" : {
           "$ref" : "#/definitions/OutputDecorator"
+        },
+        "formatName" : {
+          "type" : "string"
+        },
+        "rootValueSeparator" : {
+          "type" : "string"
         }
       }
     },
     "JsonGenerator" : {
       "type" : "object",
       "properties" : {
-        "closed" : {
-          "type" : "boolean"
-        },
-        "schema" : {
-          "$ref" : "#/definitions/FormatSchema"
-        },
         "codec" : {
           "$ref" : "#/definitions/ObjectCodec"
         },
         "prettyPrinter" : {
           "$ref" : "#/definitions/PrettyPrinter"
         },
+        "closed" : {
+          "type" : "boolean"
+        },
         "characterEscapes" : {
           "$ref" : "#/definitions/CharacterEscapes"
         },
+        "schema" : {
+          "$ref" : "#/definitions/FormatSchema"
+        },
         "featureMask" : {
           "type" : "integer",
           "format" : "int32"
@@ -884,9 +884,6 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "currentValue" : {
-          "type" : "object"
-        },
         "highestEscapedChar" : {
           "type" : "integer",
           "format" : "int32"
@@ -898,6 +895,9 @@
           "type" : "integer",
           "format" : "int32"
         },
+        "currentValue" : {
+          "type" : "object"
+        },
         "outputContext" : {
           "$ref" : "#/definitions/JsonStreamContext"
         }
@@ -937,6 +937,9 @@
           "type" : "integer",
           "format" : "int32"
         },
+        "codec" : {
+          "$ref" : "#/definitions/ObjectCodec"
+        },
         "text" : {
           "type" : "string"
         },
@@ -946,6 +949,10 @@
             "type" : "string"
           }
         },
+        "currentToken" : {
+          "type" : "string",
+          "enum" : [ "NOT_AVAILABLE", "START_OBJECT", "END_OBJECT", "START_ARRAY", "END_ARRAY", "FIELD_NAME", "VALUE_EMBEDDED_OBJECT", "VALUE_STRING", "VALUE_NUMBER_INT", "VALUE_NUMBER_FLOAT", "VALUE_TRUE", "VALUE_FALSE", "VALUE_NULL" ]
+        },
         "booleanValue" : {
           "type" : "boolean"
         },
@@ -972,6 +979,9 @@
         "closed" : {
           "type" : "boolean"
         },
+        "inputSource" : {
+          "type" : "object"
+        },
         "intValue" : {
           "type" : "integer",
           "format" : "int32"
@@ -979,19 +989,12 @@
         "typeId" : {
           "type" : "object"
         },
-        "schema" : {
-          "$ref" : "#/definitions/FormatSchema"
-        },
-        "codec" : {
-          "$ref" : "#/definitions/ObjectCodec"
-        },
-        "currentToken" : {
-          "type" : "string",
-          "enum" : [ "NOT_AVAILABLE", "START_OBJECT", "END_OBJECT", "START_ARRAY", "END_ARRAY", "FIELD_NAME", "VALUE_EMBEDDED_OBJECT", "VALUE_STRING", "VALUE_NUMBER_INT", "VALUE_NUMBER_FLOAT", "VALUE_TRUE", "VALUE_FALSE", "VALUE_NULL" ]
-        },
         "currentName" : {
           "type" : "string"
         },
+        "schema" : {
+          "$ref" : "#/definitions/FormatSchema"
+        },
         "tokenLocation" : {
           "$ref" : "#/definitions/JsonLocation"
         },
@@ -1003,33 +1006,13 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "currentTokenId" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
-        "parsingContext" : {
-          "$ref" : "#/definitions/JsonStreamContext"
-        },
-        "currentLocation" : {
-          "$ref" : "#/definitions/JsonLocation"
-        },
-        "expectedStartArrayToken" : {
-          "type" : "boolean"
-        },
-        "expectedStartObjectToken" : {
-          "type" : "boolean"
-        },
-        "lastClearedToken" : {
-          "type" : "string",
-          "enum" : [ "NOT_AVAILABLE", "START_OBJECT", "END_OBJECT", "START_ARRAY", "END_ARRAY", "FIELD_NAME", "VALUE_EMBEDDED_OBJECT", "VALUE_STRING", "VALUE_NUMBER_INT", "VALUE_NUMBER_FLOAT", "VALUE_TRUE", "VALUE_FALSE", "VALUE_NULL" ]
+        "currentValue" : {
+          "type" : "object"
         },
         "textOffset" : {
           "type" : "integer",
           "format" : "int32"
         },
-        "numberValue" : {
-          "$ref" : "#/definitions/Number"
-        },
         "numberType" : {
           "type" : "string",
           "enum" : [ "INT", "LONG", "BIG_INTEGER", "FLOAT", "DOUBLE", "BIG_DECIMAL" ]
@@ -1068,13 +1051,30 @@
         "valueAsString" : {
           "type" : "string"
         },
-        "objectId" : {
-          "type" : "object"
+        "parsingContext" : {
+          "$ref" : "#/definitions/JsonStreamContext"
         },
-        "inputSource" : {
-          "type" : "object"
+        "currentLocation" : {
+          "$ref" : "#/definitions/JsonLocation"
         },
-        "currentValue" : {
+        "expectedStartArrayToken" : {
+          "type" : "boolean"
+        },
+        "expectedStartObjectToken" : {
+          "type" : "boolean"
+        },
+        "lastClearedToken" : {
+          "type" : "string",
+          "enum" : [ "NOT_AVAILABLE", "START_OBJECT", "END_OBJECT", "START_ARRAY", "END_ARRAY", "FIELD_NAME", "VALUE_EMBEDDED_OBJECT", "VALUE_STRING", "VALUE_NUMBER_INT", "VALUE_NUMBER_FLOAT", "VALUE_TRUE", "VALUE_FALSE", "VALUE_NULL" ]
+        },
+        "numberValue" : {
+          "$ref" : "#/definitions/Number"
+        },
+        "currentTokenId" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "objectId" : {
           "type" : "object"
         }
       }
@@ -1132,6 +1132,9 @@
     "Locale" : {
       "type" : "object",
       "properties" : {
+        "displayName" : {
+          "type" : "string"
+        },
         "script" : {
           "type" : "string"
         },
@@ -1180,9 +1183,6 @@
         "displayVariant" : {
           "type" : "string"
         },
-        "displayName" : {
-          "type" : "string"
-        },
         "language" : {
           "type" : "string"
         }
@@ -1272,12 +1272,12 @@
           "type" : "integer",
           "format" : "int32"
         },
+        "currency" : {
+          "$ref" : "#/definitions/Currency"
+        },
         "roundingMode" : {
           "type" : "string",
           "enum" : [ "UP", "DOWN", "CEILING", "FLOOR", "HALF_UP", "HALF_DOWN", "HALF_EVEN", "UNNECESSARY" ]
-        },
-        "currency" : {
-          "$ref" : "#/definitions/Currency"
         }
       }
     },
@@ -1298,27 +1298,6 @@
         "factory" : {
           "$ref" : "#/definitions/JsonFactory"
         },
-        "serializationConfig" : {
-          "$ref" : "#/definitions/SerializationConfig"
-        },
-        "deserializationConfig" : {
-          "$ref" : "#/definitions/DeserializationConfig"
-        },
-        "deserializationContext" : {
-          "$ref" : "#/definitions/DeserializationContext"
-        },
-        "serializerFactory" : {
-          "$ref" : "#/definitions/SerializerFactory"
-        },
-        "serializerProvider" : {
-          "$ref" : "#/definitions/SerializerProvider"
-        },
-        "serializerProviderInstance" : {
-          "$ref" : "#/definitions/SerializerProvider"
-        },
-        "typeFactory" : {
-          "$ref" : "#/definitions/TypeFactory"
-        },
         "visibilityChecker" : {
           "$ref" : "#/definitions/VisibilityCheckerObject"
         },
@@ -1328,6 +1307,9 @@
         "propertyNamingStrategy" : {
           "$ref" : "#/definitions/PropertyNamingStrategy"
         },
+        "typeFactory" : {
+          "$ref" : "#/definitions/TypeFactory"
+        },
         "nodeFactory" : {
           "$ref" : "#/definitions/JsonNodeFactory"
         },
@@ -1339,6 +1321,24 @@
         },
         "injectableValues" : {
           "$ref" : "#/definitions/InjectableValues"
+        },
+        "serializationConfig" : {
+          "$ref" : "#/definitions/SerializationConfig"
+        },
+        "deserializationConfig" : {
+          "$ref" : "#/definitions/DeserializationConfig"
+        },
+        "deserializationContext" : {
+          "$ref" : "#/definitions/DeserializationContext"
+        },
+        "serializerFactory" : {
+          "$ref" : "#/definitions/SerializerFactory"
+        },
+        "serializerProvider" : {
+          "$ref" : "#/definitions/SerializerProvider"
+        },
+        "serializerProviderInstance" : {
+          "$ref" : "#/definitions/SerializerProvider"
         }
       }
     },
@@ -1434,10 +1434,10 @@
     "PublicKey" : {
       "type" : "object",
       "properties" : {
-        "format" : {
+        "algorithm" : {
           "type" : "string"
         },
-        "algorithm" : {
+        "format" : {
           "type" : "string"
         },
         "encoded" : {
@@ -1452,6 +1452,9 @@
     "SerializationConfig" : {
       "type" : "object",
       "properties" : {
+        "defaultPrettyPrinter" : {
+          "$ref" : "#/definitions/PrettyPrinter"
+        },
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
@@ -1461,9 +1464,6 @@
         "filterProvider" : {
           "$ref" : "#/definitions/FilterProvider"
         },
-        "defaultPrettyPrinter" : {
-          "$ref" : "#/definitions/PrettyPrinter"
-        },
         "serializationInclusion" : {
           "type" : "string",
           "enum" : [ "ALWAYS", "NON_NULL", "NON_ABSENT", "NON_EMPTY", "NON_DEFAULT", "USE_DEFAULTS" ]
@@ -1475,26 +1475,23 @@
         "attributes" : {
           "$ref" : "#/definitions/ContextAttributes"
         },
-        "rootName" : {
-          "type" : "string"
-        },
         "subtypeResolver" : {
           "$ref" : "#/definitions/SubtypeResolver"
         },
-        "fullRootName" : {
-          "$ref" : "#/definitions/PropertyName"
-        },
         "defaultVisibilityChecker" : {
           "$ref" : "#/definitions/VisibilityCheckerObject"
         },
-        "timeZone" : {
-          "$ref" : "#/definitions/TimeZone"
+        "rootName" : {
+          "type" : "string"
+        },
+        "fullRootName" : {
+          "$ref" : "#/definitions/PropertyName"
         },
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
-        "typeFactory" : {
-          "$ref" : "#/definitions/TypeFactory"
+        "timeZone" : {
+          "$ref" : "#/definitions/TimeZone"
         },
         "propertyNamingStrategy" : {
           "$ref" : "#/definitions/PropertyNamingStrategy"
@@ -1502,15 +1499,18 @@
         "dateFormat" : {
           "$ref" : "#/definitions/DateFormat"
         },
+        "annotationProcessingEnabled" : {
+          "type" : "boolean"
+        },
+        "typeFactory" : {
+          "$ref" : "#/definitions/TypeFactory"
+        },
         "handlerInstantiator" : {
           "$ref" : "#/definitions/HandlerInstantiator"
         },
         "base64Variant" : {
           "$ref" : "#/definitions/Base64Variant"
         },
-        "annotationProcessingEnabled" : {
-          "type" : "boolean"
-        },
         "classIntrospector" : {
           "$ref" : "#/definitions/ClassIntrospector"
         }
@@ -1522,12 +1522,12 @@
     "SerializerProvider" : {
       "type" : "object",
       "properties" : {
-        "timeZone" : {
-          "$ref" : "#/definitions/TimeZone"
-        },
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
+        "timeZone" : {
+          "$ref" : "#/definitions/TimeZone"
+        },
         "config" : {
           "$ref" : "#/definitions/SerializationConfig"
         },
@@ -1566,10 +1566,10 @@
     "TimeZone" : {
       "type" : "object",
       "properties" : {
-        "id" : {
+        "displayName" : {
           "type" : "string"
         },
-        "displayName" : {
+        "id" : {
           "type" : "string"
         },
         "dstsavings" : {
diff --git a/content/swagger/2.10.0-SNAPSHOT/swaggersink.json b/content/swagger/2.10.0-SNAPSHOT/swaggersink.json
index 93faa82..ccdf7aa 100644
--- a/content/swagger/2.10.0-SNAPSHOT/swaggersink.json
+++ b/content/swagger/2.10.0-SNAPSHOT/swaggersink.json
@@ -804,6 +804,9 @@
         "subscription" : {
           "type" : "string"
         },
+        "peerAddress" : {
+          "$ref" : "#/definitions/SocketAddress"
+        },
         "tlsCertificates" : {
           "type" : "array",
           "items" : {
@@ -815,9 +818,6 @@
         },
         "commandData" : {
           "type" : "string"
-        },
-        "peerAddress" : {
-          "$ref" : "#/definitions/SocketAddress"
         }
       }
     },
@@ -1077,14 +1077,14 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "numericCodeAsString" : {
-          "type" : "string"
-        },
         "displayName" : {
           "type" : "string"
         },
         "symbol" : {
           "type" : "string"
+        },
+        "numericCodeAsString" : {
+          "type" : "string"
         }
       }
     },
@@ -1128,26 +1128,23 @@
         "attributes" : {
           "$ref" : "#/definitions/ContextAttributes"
         },
-        "rootName" : {
-          "type" : "string"
-        },
         "subtypeResolver" : {
           "$ref" : "#/definitions/SubtypeResolver"
         },
-        "fullRootName" : {
-          "$ref" : "#/definitions/PropertyName"
-        },
         "defaultVisibilityChecker" : {
           "$ref" : "#/definitions/VisibilityCheckerObject"
         },
-        "timeZone" : {
-          "$ref" : "#/definitions/TimeZone"
+        "rootName" : {
+          "type" : "string"
+        },
+        "fullRootName" : {
+          "$ref" : "#/definitions/PropertyName"
         },
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
-        "typeFactory" : {
-          "$ref" : "#/definitions/TypeFactory"
+        "timeZone" : {
+          "$ref" : "#/definitions/TimeZone"
         },
         "propertyNamingStrategy" : {
           "$ref" : "#/definitions/PropertyNamingStrategy"
@@ -1155,15 +1152,18 @@
         "dateFormat" : {
           "$ref" : "#/definitions/DateFormat"
         },
+        "annotationProcessingEnabled" : {
+          "type" : "boolean"
+        },
+        "typeFactory" : {
+          "$ref" : "#/definitions/TypeFactory"
+        },
         "handlerInstantiator" : {
           "$ref" : "#/definitions/HandlerInstantiator"
         },
         "base64Variant" : {
           "$ref" : "#/definitions/Base64Variant"
         },
-        "annotationProcessingEnabled" : {
-          "type" : "boolean"
-        },
         "classIntrospector" : {
           "$ref" : "#/definitions/ClassIntrospector"
         }
@@ -1172,27 +1172,27 @@
     "DeserializationContext" : {
       "type" : "object",
       "properties" : {
-        "timeZone" : {
-          "$ref" : "#/definitions/TimeZone"
-        },
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
+        "timeZone" : {
+          "$ref" : "#/definitions/TimeZone"
+        },
         "factory" : {
           "$ref" : "#/definitions/DeserializerFactory"
         },
         "config" : {
           "$ref" : "#/definitions/DeserializationConfig"
         },
+        "nodeFactory" : {
+          "$ref" : "#/definitions/JsonNodeFactory"
+        },
         "parser" : {
           "$ref" : "#/definitions/JsonParser"
         },
         "typeFactory" : {
           "$ref" : "#/definitions/TypeFactory"
         },
-        "nodeFactory" : {
-          "$ref" : "#/definitions/JsonNodeFactory"
-        },
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
@@ -1344,15 +1344,9 @@
     "JsonFactory" : {
       "type" : "object",
       "properties" : {
-        "rootValueSeparator" : {
-          "type" : "string"
-        },
         "codec" : {
           "$ref" : "#/definitions/ObjectCodec"
         },
-        "formatName" : {
-          "type" : "string"
-        },
         "inputDecorator" : {
           "$ref" : "#/definitions/InputDecorator"
         },
@@ -1361,27 +1355,33 @@
         },
         "outputDecorator" : {
           "$ref" : "#/definitions/OutputDecorator"
+        },
+        "formatName" : {
+          "type" : "string"
+        },
+        "rootValueSeparator" : {
+          "type" : "string"
         }
       }
     },
     "JsonGenerator" : {
       "type" : "object",
       "properties" : {
-        "closed" : {
-          "type" : "boolean"
-        },
-        "schema" : {
-          "$ref" : "#/definitions/FormatSchema"
-        },
         "codec" : {
           "$ref" : "#/definitions/ObjectCodec"
         },
         "prettyPrinter" : {
           "$ref" : "#/definitions/PrettyPrinter"
         },
+        "closed" : {
+          "type" : "boolean"
+        },
         "characterEscapes" : {
           "$ref" : "#/definitions/CharacterEscapes"
         },
+        "schema" : {
+          "$ref" : "#/definitions/FormatSchema"
+        },
         "featureMask" : {
           "type" : "integer",
           "format" : "int32"
@@ -1390,9 +1390,6 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "currentValue" : {
-          "type" : "object"
-        },
         "highestEscapedChar" : {
           "type" : "integer",
           "format" : "int32"
@@ -1404,6 +1401,9 @@
           "type" : "integer",
           "format" : "int32"
         },
+        "currentValue" : {
+          "type" : "object"
+        },
         "outputContext" : {
           "$ref" : "#/definitions/JsonStreamContext"
         }
@@ -1443,6 +1443,9 @@
           "type" : "integer",
           "format" : "int32"
         },
+        "codec" : {
+          "$ref" : "#/definitions/ObjectCodec"
+        },
         "text" : {
           "type" : "string"
         },
@@ -1452,6 +1455,10 @@
             "type" : "string"
           }
         },
+        "currentToken" : {
+          "type" : "string",
+          "enum" : [ "NOT_AVAILABLE", "START_OBJECT", "END_OBJECT", "START_ARRAY", "END_ARRAY", "FIELD_NAME", "VALUE_EMBEDDED_OBJECT", "VALUE_STRING", "VALUE_NUMBER_INT", "VALUE_NUMBER_FLOAT", "VALUE_TRUE", "VALUE_FALSE", "VALUE_NULL" ]
+        },
         "booleanValue" : {
           "type" : "boolean"
         },
@@ -1478,6 +1485,9 @@
         "closed" : {
           "type" : "boolean"
         },
+        "inputSource" : {
+          "type" : "object"
+        },
         "intValue" : {
           "type" : "integer",
           "format" : "int32"
@@ -1485,19 +1495,12 @@
         "typeId" : {
           "type" : "object"
         },
-        "schema" : {
-          "$ref" : "#/definitions/FormatSchema"
-        },
-        "codec" : {
-          "$ref" : "#/definitions/ObjectCodec"
-        },
-        "currentToken" : {
-          "type" : "string",
-          "enum" : [ "NOT_AVAILABLE", "START_OBJECT", "END_OBJECT", "START_ARRAY", "END_ARRAY", "FIELD_NAME", "VALUE_EMBEDDED_OBJECT", "VALUE_STRING", "VALUE_NUMBER_INT", "VALUE_NUMBER_FLOAT", "VALUE_TRUE", "VALUE_FALSE", "VALUE_NULL" ]
-        },
         "currentName" : {
           "type" : "string"
         },
+        "schema" : {
+          "$ref" : "#/definitions/FormatSchema"
+        },
         "tokenLocation" : {
           "$ref" : "#/definitions/JsonLocation"
         },
@@ -1509,33 +1512,13 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "currentTokenId" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
-        "parsingContext" : {
-          "$ref" : "#/definitions/JsonStreamContext"
-        },
-        "currentLocation" : {
-          "$ref" : "#/definitions/JsonLocation"
-        },
-        "expectedStartArrayToken" : {
-          "type" : "boolean"
-        },
-        "expectedStartObjectToken" : {
-          "type" : "boolean"
-        },
-        "lastClearedToken" : {
-          "type" : "string",
-          "enum" : [ "NOT_AVAILABLE", "START_OBJECT", "END_OBJECT", "START_ARRAY", "END_ARRAY", "FIELD_NAME", "VALUE_EMBEDDED_OBJECT", "VALUE_STRING", "VALUE_NUMBER_INT", "VALUE_NUMBER_FLOAT", "VALUE_TRUE", "VALUE_FALSE", "VALUE_NULL" ]
+        "currentValue" : {
+          "type" : "object"
         },
         "textOffset" : {
           "type" : "integer",
           "format" : "int32"
         },
-        "numberValue" : {
-          "$ref" : "#/definitions/Number"
-        },
         "numberType" : {
           "type" : "string",
           "enum" : [ "INT", "LONG", "BIG_INTEGER", "FLOAT", "DOUBLE", "BIG_DECIMAL" ]
@@ -1574,13 +1557,30 @@
         "valueAsString" : {
           "type" : "string"
         },
-        "objectId" : {
-          "type" : "object"
+        "parsingContext" : {
+          "$ref" : "#/definitions/JsonStreamContext"
         },
-        "inputSource" : {
-          "type" : "object"
+        "currentLocation" : {
+          "$ref" : "#/definitions/JsonLocation"
         },
-        "currentValue" : {
+        "expectedStartArrayToken" : {
+          "type" : "boolean"
+        },
+        "expectedStartObjectToken" : {
+          "type" : "boolean"
+        },
+        "lastClearedToken" : {
+          "type" : "string",
+          "enum" : [ "NOT_AVAILABLE", "START_OBJECT", "END_OBJECT", "START_ARRAY", "END_ARRAY", "FIELD_NAME", "VALUE_EMBEDDED_OBJECT", "VALUE_STRING", "VALUE_NUMBER_INT", "VALUE_NUMBER_FLOAT", "VALUE_TRUE", "VALUE_FALSE", "VALUE_NULL" ]
+        },
+        "numberValue" : {
+          "$ref" : "#/definitions/Number"
+        },
+        "currentTokenId" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "objectId" : {
           "type" : "object"
         }
       }
@@ -1638,6 +1638,9 @@
     "Locale" : {
       "type" : "object",
       "properties" : {
+        "displayName" : {
+          "type" : "string"
+        },
         "script" : {
           "type" : "string"
         },
@@ -1686,9 +1689,6 @@
         "displayVariant" : {
           "type" : "string"
         },
-        "displayName" : {
-          "type" : "string"
-        },
         "language" : {
           "type" : "string"
         }
@@ -1778,12 +1778,12 @@
           "type" : "integer",
           "format" : "int32"
         },
+        "currency" : {
+          "$ref" : "#/definitions/Currency"
+        },
         "roundingMode" : {
           "type" : "string",
           "enum" : [ "UP", "DOWN", "CEILING", "FLOOR", "HALF_UP", "HALF_DOWN", "HALF_EVEN", "UNNECESSARY" ]
-        },
-        "currency" : {
-          "$ref" : "#/definitions/Currency"
         }
       }
     },
@@ -1804,27 +1804,6 @@
         "factory" : {
           "$ref" : "#/definitions/JsonFactory"
         },
-        "serializationConfig" : {
-          "$ref" : "#/definitions/SerializationConfig"
-        },
-        "deserializationConfig" : {
-          "$ref" : "#/definitions/DeserializationConfig"
-        },
-        "deserializationContext" : {
-          "$ref" : "#/definitions/DeserializationContext"
-        },
-        "serializerFactory" : {
-          "$ref" : "#/definitions/SerializerFactory"
-        },
-        "serializerProvider" : {
-          "$ref" : "#/definitions/SerializerProvider"
-        },
-        "serializerProviderInstance" : {
-          "$ref" : "#/definitions/SerializerProvider"
-        },
-        "typeFactory" : {
-          "$ref" : "#/definitions/TypeFactory"
-        },
         "visibilityChecker" : {
           "$ref" : "#/definitions/VisibilityCheckerObject"
         },
@@ -1834,6 +1813,9 @@
         "propertyNamingStrategy" : {
           "$ref" : "#/definitions/PropertyNamingStrategy"
         },
+        "typeFactory" : {
+          "$ref" : "#/definitions/TypeFactory"
+        },
         "nodeFactory" : {
           "$ref" : "#/definitions/JsonNodeFactory"
         },
@@ -1845,6 +1827,24 @@
         },
         "injectableValues" : {
           "$ref" : "#/definitions/InjectableValues"
+        },
+        "serializationConfig" : {
+          "$ref" : "#/definitions/SerializationConfig"
+        },
+        "deserializationConfig" : {
+          "$ref" : "#/definitions/DeserializationConfig"
+        },
+        "deserializationContext" : {
+          "$ref" : "#/definitions/DeserializationContext"
+        },
+        "serializerFactory" : {
+          "$ref" : "#/definitions/SerializerFactory"
+        },
+        "serializerProvider" : {
+          "$ref" : "#/definitions/SerializerProvider"
+        },
+        "serializerProviderInstance" : {
+          "$ref" : "#/definitions/SerializerProvider"
         }
       }
     },
@@ -1915,10 +1915,10 @@
     "PublicKey" : {
       "type" : "object",
       "properties" : {
-        "format" : {
+        "algorithm" : {
           "type" : "string"
         },
-        "algorithm" : {
+        "format" : {
           "type" : "string"
         },
         "encoded" : {
@@ -1950,6 +1950,9 @@
     "SerializationConfig" : {
       "type" : "object",
       "properties" : {
+        "defaultPrettyPrinter" : {
+          "$ref" : "#/definitions/PrettyPrinter"
+        },
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
@@ -1959,9 +1962,6 @@
         "filterProvider" : {
           "$ref" : "#/definitions/FilterProvider"
         },
-        "defaultPrettyPrinter" : {
-          "$ref" : "#/definitions/PrettyPrinter"
-        },
         "serializationInclusion" : {
           "type" : "string",
           "enum" : [ "ALWAYS", "NON_NULL", "NON_ABSENT", "NON_EMPTY", "NON_DEFAULT", "USE_DEFAULTS" ]
@@ -1973,26 +1973,23 @@
         "attributes" : {
           "$ref" : "#/definitions/ContextAttributes"
         },
-        "rootName" : {
-          "type" : "string"
-        },
         "subtypeResolver" : {
           "$ref" : "#/definitions/SubtypeResolver"
         },
-        "fullRootName" : {
-          "$ref" : "#/definitions/PropertyName"
-        },
         "defaultVisibilityChecker" : {
           "$ref" : "#/definitions/VisibilityCheckerObject"
         },
-        "timeZone" : {
-          "$ref" : "#/definitions/TimeZone"
+        "rootName" : {
+          "type" : "string"
+        },
+        "fullRootName" : {
+          "$ref" : "#/definitions/PropertyName"
         },
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
-        "typeFactory" : {
-          "$ref" : "#/definitions/TypeFactory"
+        "timeZone" : {
+          "$ref" : "#/definitions/TimeZone"
         },
         "propertyNamingStrategy" : {
           "$ref" : "#/definitions/PropertyNamingStrategy"
@@ -2000,15 +1997,18 @@
         "dateFormat" : {
           "$ref" : "#/definitions/DateFormat"
         },
+        "annotationProcessingEnabled" : {
+          "type" : "boolean"
+        },
+        "typeFactory" : {
+          "$ref" : "#/definitions/TypeFactory"
+        },
         "handlerInstantiator" : {
           "$ref" : "#/definitions/HandlerInstantiator"
         },
         "base64Variant" : {
           "$ref" : "#/definitions/Base64Variant"
         },
-        "annotationProcessingEnabled" : {
-          "type" : "boolean"
-        },
         "classIntrospector" : {
           "$ref" : "#/definitions/ClassIntrospector"
         }
@@ -2020,12 +2020,12 @@
     "SerializerProvider" : {
       "type" : "object",
       "properties" : {
-        "timeZone" : {
-          "$ref" : "#/definitions/TimeZone"
-        },
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
+        "timeZone" : {
+          "$ref" : "#/definitions/TimeZone"
+        },
         "config" : {
           "$ref" : "#/definitions/SerializationConfig"
         },
@@ -2258,10 +2258,10 @@
     "TimeZone" : {
       "type" : "object",
       "properties" : {
-        "id" : {
+        "displayName" : {
           "type" : "string"
         },
-        "displayName" : {
+        "id" : {
           "type" : "string"
         },
         "dstsavings" : {
diff --git a/content/swagger/2.10.0-SNAPSHOT/swaggersource.json b/content/swagger/2.10.0-SNAPSHOT/swaggersource.json
index 949985c..128dbc7 100644
--- a/content/swagger/2.10.0-SNAPSHOT/swaggersource.json
+++ b/content/swagger/2.10.0-SNAPSHOT/swaggersource.json
@@ -807,6 +807,9 @@
         "subscription" : {
           "type" : "string"
         },
+        "peerAddress" : {
+          "$ref" : "#/definitions/SocketAddress"
+        },
         "tlsCertificates" : {
           "type" : "array",
           "items" : {
@@ -818,9 +821,6 @@
         },
         "commandData" : {
           "type" : "string"
-        },
-        "peerAddress" : {
-          "$ref" : "#/definitions/SocketAddress"
         }
       }
     },
@@ -1058,14 +1058,14 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "numericCodeAsString" : {
-          "type" : "string"
-        },
         "displayName" : {
           "type" : "string"
         },
         "symbol" : {
           "type" : "string"
+        },
+        "numericCodeAsString" : {
+          "type" : "string"
         }
       }
     },
@@ -1109,26 +1109,23 @@
         "attributes" : {
           "$ref" : "#/definitions/ContextAttributes"
         },
-        "rootName" : {
-          "type" : "string"
-        },
         "subtypeResolver" : {
           "$ref" : "#/definitions/SubtypeResolver"
         },
-        "fullRootName" : {
-          "$ref" : "#/definitions/PropertyName"
-        },
         "defaultVisibilityChecker" : {
           "$ref" : "#/definitions/VisibilityCheckerObject"
         },
-        "timeZone" : {
-          "$ref" : "#/definitions/TimeZone"
+        "rootName" : {
+          "type" : "string"
+        },
+        "fullRootName" : {
+          "$ref" : "#/definitions/PropertyName"
         },
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
-        "typeFactory" : {
-          "$ref" : "#/definitions/TypeFactory"
+        "timeZone" : {
+          "$ref" : "#/definitions/TimeZone"
         },
         "propertyNamingStrategy" : {
           "$ref" : "#/definitions/PropertyNamingStrategy"
@@ -1136,15 +1133,18 @@
         "dateFormat" : {
           "$ref" : "#/definitions/DateFormat"
         },
+        "annotationProcessingEnabled" : {
+          "type" : "boolean"
+        },
+        "typeFactory" : {
+          "$ref" : "#/definitions/TypeFactory"
+        },
         "handlerInstantiator" : {
           "$ref" : "#/definitions/HandlerInstantiator"
         },
         "base64Variant" : {
           "$ref" : "#/definitions/Base64Variant"
         },
-        "annotationProcessingEnabled" : {
-          "type" : "boolean"
-        },
         "classIntrospector" : {
           "$ref" : "#/definitions/ClassIntrospector"
         }
@@ -1153,27 +1153,27 @@
     "DeserializationContext" : {
       "type" : "object",
       "properties" : {
-        "timeZone" : {
-          "$ref" : "#/definitions/TimeZone"
-        },
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
+        "timeZone" : {
+          "$ref" : "#/definitions/TimeZone"
+        },
         "factory" : {
           "$ref" : "#/definitions/DeserializerFactory"
         },
         "config" : {
           "$ref" : "#/definitions/DeserializationConfig"
         },
+        "nodeFactory" : {
+          "$ref" : "#/definitions/JsonNodeFactory"
+        },
         "parser" : {
           "$ref" : "#/definitions/JsonParser"
         },
         "typeFactory" : {
           "$ref" : "#/definitions/TypeFactory"
         },
-        "nodeFactory" : {
-          "$ref" : "#/definitions/JsonNodeFactory"
-        },
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
@@ -1325,15 +1325,9 @@
     "JsonFactory" : {
       "type" : "object",
       "properties" : {
-        "rootValueSeparator" : {
-          "type" : "string"
-        },
         "codec" : {
           "$ref" : "#/definitions/ObjectCodec"
         },
-        "formatName" : {
-          "type" : "string"
-        },
         "inputDecorator" : {
           "$ref" : "#/definitions/InputDecorator"
         },
@@ -1342,27 +1336,33 @@
         },
         "outputDecorator" : {
           "$ref" : "#/definitions/OutputDecorator"
+        },
+        "formatName" : {
+          "type" : "string"
+        },
+        "rootValueSeparator" : {
+          "type" : "string"
         }
       }
     },
     "JsonGenerator" : {
       "type" : "object",
       "properties" : {
-        "closed" : {
-          "type" : "boolean"
-        },
-        "schema" : {
-          "$ref" : "#/definitions/FormatSchema"
-        },
         "codec" : {
           "$ref" : "#/definitions/ObjectCodec"
         },
         "prettyPrinter" : {
           "$ref" : "#/definitions/PrettyPrinter"
         },
+        "closed" : {
+          "type" : "boolean"
+        },
         "characterEscapes" : {
           "$ref" : "#/definitions/CharacterEscapes"
         },
+        "schema" : {
+          "$ref" : "#/definitions/FormatSchema"
+        },
         "featureMask" : {
           "type" : "integer",
           "format" : "int32"
@@ -1371,9 +1371,6 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "currentValue" : {
-          "type" : "object"
-        },
         "highestEscapedChar" : {
           "type" : "integer",
           "format" : "int32"
@@ -1385,6 +1382,9 @@
           "type" : "integer",
           "format" : "int32"
         },
+        "currentValue" : {
+          "type" : "object"
+        },
         "outputContext" : {
           "$ref" : "#/definitions/JsonStreamContext"
         }
@@ -1424,6 +1424,9 @@
           "type" : "integer",
           "format" : "int32"
         },
+        "codec" : {
+          "$ref" : "#/definitions/ObjectCodec"
+        },
         "text" : {
           "type" : "string"
         },
@@ -1433,6 +1436,10 @@
             "type" : "string"
           }
         },
+        "currentToken" : {
+          "type" : "string",
+          "enum" : [ "NOT_AVAILABLE", "START_OBJECT", "END_OBJECT", "START_ARRAY", "END_ARRAY", "FIELD_NAME", "VALUE_EMBEDDED_OBJECT", "VALUE_STRING", "VALUE_NUMBER_INT", "VALUE_NUMBER_FLOAT", "VALUE_TRUE", "VALUE_FALSE", "VALUE_NULL" ]
+        },
         "booleanValue" : {
           "type" : "boolean"
         },
@@ -1459,6 +1466,9 @@
         "closed" : {
           "type" : "boolean"
         },
+        "inputSource" : {
+          "type" : "object"
+        },
         "intValue" : {
           "type" : "integer",
           "format" : "int32"
@@ -1466,19 +1476,12 @@
         "typeId" : {
           "type" : "object"
         },
-        "schema" : {
-          "$ref" : "#/definitions/FormatSchema"
-        },
-        "codec" : {
-          "$ref" : "#/definitions/ObjectCodec"
-        },
-        "currentToken" : {
-          "type" : "string",
-          "enum" : [ "NOT_AVAILABLE", "START_OBJECT", "END_OBJECT", "START_ARRAY", "END_ARRAY", "FIELD_NAME", "VALUE_EMBEDDED_OBJECT", "VALUE_STRING", "VALUE_NUMBER_INT", "VALUE_NUMBER_FLOAT", "VALUE_TRUE", "VALUE_FALSE", "VALUE_NULL" ]
-        },
         "currentName" : {
           "type" : "string"
         },
+        "schema" : {
+          "$ref" : "#/definitions/FormatSchema"
+        },
         "tokenLocation" : {
           "$ref" : "#/definitions/JsonLocation"
         },
@@ -1490,33 +1493,13 @@
           "type" : "integer",
           "format" : "int32"
         },
-        "currentTokenId" : {
-          "type" : "integer",
-          "format" : "int32"
-        },
-        "parsingContext" : {
-          "$ref" : "#/definitions/JsonStreamContext"
-        },
-        "currentLocation" : {
-          "$ref" : "#/definitions/JsonLocation"
-        },
-        "expectedStartArrayToken" : {
-          "type" : "boolean"
-        },
-        "expectedStartObjectToken" : {
-          "type" : "boolean"
-        },
-        "lastClearedToken" : {
-          "type" : "string",
-          "enum" : [ "NOT_AVAILABLE", "START_OBJECT", "END_OBJECT", "START_ARRAY", "END_ARRAY", "FIELD_NAME", "VALUE_EMBEDDED_OBJECT", "VALUE_STRING", "VALUE_NUMBER_INT", "VALUE_NUMBER_FLOAT", "VALUE_TRUE", "VALUE_FALSE", "VALUE_NULL" ]
+        "currentValue" : {
+          "type" : "object"
         },
         "textOffset" : {
           "type" : "integer",
           "format" : "int32"
         },
-        "numberValue" : {
-          "$ref" : "#/definitions/Number"
-        },
         "numberType" : {
           "type" : "string",
           "enum" : [ "INT", "LONG", "BIG_INTEGER", "FLOAT", "DOUBLE", "BIG_DECIMAL" ]
@@ -1555,13 +1538,30 @@
         "valueAsString" : {
           "type" : "string"
         },
-        "objectId" : {
-          "type" : "object"
+        "parsingContext" : {
+          "$ref" : "#/definitions/JsonStreamContext"
         },
-        "inputSource" : {
-          "type" : "object"
+        "currentLocation" : {
+          "$ref" : "#/definitions/JsonLocation"
         },
-        "currentValue" : {
+        "expectedStartArrayToken" : {
+          "type" : "boolean"
+        },
+        "expectedStartObjectToken" : {
+          "type" : "boolean"
+        },
+        "lastClearedToken" : {
+          "type" : "string",
+          "enum" : [ "NOT_AVAILABLE", "START_OBJECT", "END_OBJECT", "START_ARRAY", "END_ARRAY", "FIELD_NAME", "VALUE_EMBEDDED_OBJECT", "VALUE_STRING", "VALUE_NUMBER_INT", "VALUE_NUMBER_FLOAT", "VALUE_TRUE", "VALUE_FALSE", "VALUE_NULL" ]
+        },
+        "numberValue" : {
+          "$ref" : "#/definitions/Number"
+        },
+        "currentTokenId" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
+        "objectId" : {
           "type" : "object"
         }
       }
@@ -1619,6 +1619,9 @@
     "Locale" : {
       "type" : "object",
       "properties" : {
+        "displayName" : {
+          "type" : "string"
+        },
         "script" : {
           "type" : "string"
         },
@@ -1667,9 +1670,6 @@
         "displayVariant" : {
           "type" : "string"
         },
-        "displayName" : {
-          "type" : "string"
-        },
         "language" : {
           "type" : "string"
         }
@@ -1759,12 +1759,12 @@
           "type" : "integer",
           "format" : "int32"
         },
+        "currency" : {
+          "$ref" : "#/definitions/Currency"
+        },
         "roundingMode" : {
           "type" : "string",
           "enum" : [ "UP", "DOWN", "CEILING", "FLOOR", "HALF_UP", "HALF_DOWN", "HALF_EVEN", "UNNECESSARY" ]
-        },
-        "currency" : {
-          "$ref" : "#/definitions/Currency"
         }
       }
     },
@@ -1785,27 +1785,6 @@
         "factory" : {
           "$ref" : "#/definitions/JsonFactory"
         },
-        "serializationConfig" : {
-          "$ref" : "#/definitions/SerializationConfig"
-        },
-        "deserializationConfig" : {
-          "$ref" : "#/definitions/DeserializationConfig"
-        },
-        "deserializationContext" : {
-          "$ref" : "#/definitions/DeserializationContext"
-        },
-        "serializerFactory" : {
-          "$ref" : "#/definitions/SerializerFactory"
-        },
-        "serializerProvider" : {
-          "$ref" : "#/definitions/SerializerProvider"
-        },
-        "serializerProviderInstance" : {
-          "$ref" : "#/definitions/SerializerProvider"
-        },
-        "typeFactory" : {
-          "$ref" : "#/definitions/TypeFactory"
-        },
         "visibilityChecker" : {
           "$ref" : "#/definitions/VisibilityCheckerObject"
         },
@@ -1815,6 +1794,9 @@
         "propertyNamingStrategy" : {
           "$ref" : "#/definitions/PropertyNamingStrategy"
         },
+        "typeFactory" : {
+          "$ref" : "#/definitions/TypeFactory"
+        },
         "nodeFactory" : {
           "$ref" : "#/definitions/JsonNodeFactory"
         },
@@ -1826,6 +1808,24 @@
         },
         "injectableValues" : {
           "$ref" : "#/definitions/InjectableValues"
+        },
+        "serializationConfig" : {
+          "$ref" : "#/definitions/SerializationConfig"
+        },
+        "deserializationConfig" : {
+          "$ref" : "#/definitions/DeserializationConfig"
+        },
+        "deserializationContext" : {
+          "$ref" : "#/definitions/DeserializationContext"
+        },
+        "serializerFactory" : {
+          "$ref" : "#/definitions/SerializerFactory"
+        },
+        "serializerProvider" : {
+          "$ref" : "#/definitions/SerializerProvider"
+        },
+        "serializerProviderInstance" : {
+          "$ref" : "#/definitions/SerializerProvider"
         }
       }
     },
@@ -1918,10 +1918,10 @@
     "PublicKey" : {
       "type" : "object",
       "properties" : {
-        "format" : {
+        "algorithm" : {
           "type" : "string"
         },
-        "algorithm" : {
+        "format" : {
           "type" : "string"
         },
         "encoded" : {
@@ -1953,6 +1953,9 @@
     "SerializationConfig" : {
       "type" : "object",
       "properties" : {
+        "defaultPrettyPrinter" : {
+          "$ref" : "#/definitions/PrettyPrinter"
+        },
         "annotationIntrospector" : {
           "$ref" : "#/definitions/AnnotationIntrospector"
         },
@@ -1962,9 +1965,6 @@
         "filterProvider" : {
           "$ref" : "#/definitions/FilterProvider"
         },
-        "defaultPrettyPrinter" : {
-          "$ref" : "#/definitions/PrettyPrinter"
-        },
         "serializationInclusion" : {
           "type" : "string",
           "enum" : [ "ALWAYS", "NON_NULL", "NON_ABSENT", "NON_EMPTY", "NON_DEFAULT", "USE_DEFAULTS" ]
@@ -1976,26 +1976,23 @@
         "attributes" : {
           "$ref" : "#/definitions/ContextAttributes"
         },
-        "rootName" : {
-          "type" : "string"
-        },
         "subtypeResolver" : {
           "$ref" : "#/definitions/SubtypeResolver"
         },
-        "fullRootName" : {
-          "$ref" : "#/definitions/PropertyName"
-        },
         "defaultVisibilityChecker" : {
           "$ref" : "#/definitions/VisibilityCheckerObject"
         },
-        "timeZone" : {
-          "$ref" : "#/definitions/TimeZone"
+        "rootName" : {
+          "type" : "string"
+        },
+        "fullRootName" : {
+          "$ref" : "#/definitions/PropertyName"
         },
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
-        "typeFactory" : {
-          "$ref" : "#/definitions/TypeFactory"
+        "timeZone" : {
+          "$ref" : "#/definitions/TimeZone"
         },
         "propertyNamingStrategy" : {
           "$ref" : "#/definitions/PropertyNamingStrategy"
@@ -2003,15 +2000,18 @@
         "dateFormat" : {
           "$ref" : "#/definitions/DateFormat"
         },
+        "annotationProcessingEnabled" : {
+          "type" : "boolean"
+        },
+        "typeFactory" : {
+          "$ref" : "#/definitions/TypeFactory"
+        },
         "handlerInstantiator" : {
           "$ref" : "#/definitions/HandlerInstantiator"
         },
         "base64Variant" : {
           "$ref" : "#/definitions/Base64Variant"
         },
-        "annotationProcessingEnabled" : {
-          "type" : "boolean"
-        },
         "classIntrospector" : {
           "$ref" : "#/definitions/ClassIntrospector"
         }
@@ -2023,12 +2023,12 @@
     "SerializerProvider" : {
       "type" : "object",
       "properties" : {
-        "timeZone" : {
-          "$ref" : "#/definitions/TimeZone"
-        },
         "locale" : {
           "$ref" : "#/definitions/Locale"
         },
+        "timeZone" : {
+          "$ref" : "#/definitions/TimeZone"
+        },
         "config" : {
           "$ref" : "#/definitions/SerializationConfig"
         },
@@ -2212,10 +2212,10 @@
     "TimeZone" : {
       "type" : "object",
       "properties" : {
-        "id" : {
+        "displayName" : {
           "type" : "string"
         },
-        "displayName" : {
+        "id" : {
           "type" : "string"
         },
         "dstsavings" : {
diff --git a/content/swagger/2.10.0-SNAPSHOT/v2/swagger.json b/content/swagger/2.10.0-SNAPSHOT/v2/swagger.json
index 83de101..d84bce3 100644
--- a/content/swagger/2.10.0-SNAPSHOT/v2/swagger.json
+++ b/content/swagger/2.10.0-SNAPSHOT/v2/swagger.json
@@ -25557,6 +25557,9 @@
                 "subscription": {
                     "type": "string"
                 },
+                "peerAddress": {
+                    "$ref": "#/definitions/SocketAddress"
+                },
                 "tlsCertificates": {
                     "type": "array",
                     "items": {
@@ -25568,9 +25571,6 @@
                 },
                 "commandData": {
                     "type": "string"
-                },
-                "peerAddress": {
-                    "$ref": "#/definitions/SocketAddress"
                 }
             }
         },
@@ -25625,6 +25625,10 @@
                         "consumer_backlog_eviction"
                     ]
                 },
+                "limit": {
+                    "type": "integer",
+                    "format": "int64"
+                },
                 "limitSize": {
                     "type": "integer",
                     "format": "int64"
@@ -25632,10 +25636,6 @@
                 "limitTime": {
                     "type": "integer",
                     "format": "int32"
-                },
-                "limit": {
-                    "type": "integer",
-                    "format": "int64"
                 }
             }
         },
@@ -26013,8 +26013,9 @@
                 "address": {
                     "type": "string"
                 },
-                "consumerName": {
-                    "type": "string"
+                "availablePermits": {
+                    "type": "integer",
+                    "format": "int32"
                 },
                 "metadata": {
                     "type": "object",
@@ -26061,17 +26062,9 @@
                 "readPositionWhenJoining": {
                     "type": "string"
                 },
-                "availablePermits": {
-                    "type": "integer",
-                    "format": "int32"
-                },
-                "connectedSince": {
+                "consumerName": {
                     "type": "string"
                 },
-                "msgRateOut": {
-                    "type": "number",
-                    "format": "double"
-                },
                 "msgThroughputOut": {
                     "type": "number",
                     "format": "double"
@@ -26083,6 +26076,13 @@
                 "msgOutCounter": {
                     "type": "integer",
                     "format": "int64"
+                },
+                "connectedSince": {
+                    "type": "string"
+                },
+                "msgRateOut": {
+                    "type": "number",
+                    "format": "double"
                 }
             }
         },
@@ -26103,14 +26103,14 @@
                     "type": "integer",
                     "format": "int32"
                 },
-                "numericCodeAsString": {
-                    "type": "string"
-                },
                 "displayName": {
                     "type": "string"
                 },
                 "symbol": {
                     "type": "string"
+                },
+                "numericCodeAsString": {
+                    "type": "string"
                 }
             }
         },
@@ -26248,26 +26248,23 @@
                 "attributes": {
                     "$ref": "#/definitions/ContextAttributes"
                 },
-                "rootName": {
-                    "type": "string"
-                },
                 "subtypeResolver": {
                     "$ref": "#/definitions/SubtypeResolver"
                 },
-                "fullRootName": {
-                    "$ref": "#/definitions/PropertyName"
-                },
                 "defaultVisibilityChecker": {
                     "$ref": "#/definitions/VisibilityCheckerObject"
                 },
-                "timeZone": {
-                    "$ref": "#/definitions/TimeZone"
+                "rootName": {
+                    "type": "string"
+                },
+                "fullRootName": {
+                    "$ref": "#/definitions/PropertyName"
                 },
                 "locale": {
                     "$ref": "#/definitions/Locale"
                 },
-                "typeFactory": {
-                    "$ref": "#/definitions/TypeFactory"
+                "timeZone": {
+                    "$ref": "#/definitions/TimeZone"
                 },
                 "propertyNamingStrategy": {
                     "$ref": "#/definitions/PropertyNamingStrategy"
@@ -26275,15 +26272,18 @@
                 "dateFormat": {
                     "$ref": "#/definitions/DateFormat"
                 },
+                "annotationProcessingEnabled": {
+                    "type": "boolean"
+                },
+                "typeFactory": {
+                    "$ref": "#/definitions/TypeFactory"
+                },
                 "handlerInstantiator": {
                     "$ref": "#/definitions/HandlerInstantiator"
                 },
                 "base64Variant": {
                     "$ref": "#/definitions/Base64Variant"
                 },
-                "annotationProcessingEnabled": {
-                    "type": "boolean"
-                },
                 "classIntrospector": {
                     "$ref": "#/definitions/ClassIntrospector"
                 }
@@ -26292,27 +26292,27 @@
         "DeserializationContext": {
             "type": "object",
             "properties": {
-                "timeZone": {
-                    "$ref": "#/definitions/TimeZone"
-                },
                 "locale": {
                     "$ref": "#/definitions/Locale"
                 },
+                "timeZone": {
+                    "$ref": "#/definitions/TimeZone"
+                },
                 "factory": {
                     "$ref": "#/definitions/DeserializerFactory"
                 },
                 "config": {
                     "$ref": "#/definitions/DeserializationConfig"
                 },
+                "nodeFactory": {
+                    "$ref": "#/definitions/JsonNodeFactory"
+                },
                 "parser": {
                     "$ref": "#/definitions/JsonParser"
                 },
                 "typeFactory": {
                     "$ref": "#/definitions/TypeFactory"
                 },
-                "nodeFactory": {
-                    "$ref": "#/definitions/JsonNodeFactory"
-                },
                 "annotationIntrospector": {
                     "$ref": "#/definitions/AnnotationIntrospector"
                 },
@@ -26409,13 +26409,6 @@
         "FunctionInstanceStatsData": {
             "type": "object",
             "properties": {
-                "oneMin": {
-                    "$ref": "#/definitions/FunctionInstanceStatsDataBase"
-                },
-                "lastInvocation": {
-                    "type": "integer",
-                    "format": "int64"
-                },
                 "userMetrics": {
                     "type": "object",
                     "additionalProperties": {
@@ -26423,6 +26416,13 @@
                         "format": "double"
                     }
                 },
+                "oneMin": {
+                    "$ref": "#/definitions/FunctionInstanceStatsDataBase"
+                },
+                "lastInvocation": {
+                    "type": "integer",
+                    "format": "int64"
+                },
                 "receivedTotal": {
                     "type": "integer",
                     "format": "int64"
@@ -26728,15 +26728,9 @@
         "JsonFactory": {
             "type": "object",
             "properties": {
-                "rootValueSeparator": {
-                    "type": "string"
-                },
                 "codec": {
                     "$ref": "#/definitions/ObjectCodec"
                 },
-                "formatName": {
-                    "type": "string"
-                },
                 "inputDecorator": {
                     "$ref": "#/definitions/InputDecorator"
                 },
@@ -26745,27 +26739,33 @@
                 },
                 "outputDecorator": {
                     "$ref": "#/definitions/OutputDecorator"
+                },
+                "formatName": {
+                    "type": "string"
+                },
+                "rootValueSeparator": {
+                    "type": "string"
                 }
             }
         },
         "JsonGenerator": {
             "type": "object",
             "properties": {
-                "closed": {
-                    "type": "boolean"
-                },
-                "schema": {
-                    "$ref": "#/definitions/FormatSchema"
-                },
                 "codec": {
                     "$ref": "#/definitions/ObjectCodec"
                 },
                 "prettyPrinter": {
                     "$ref": "#/definitions/PrettyPrinter"
                 },
+                "closed": {
+                    "type": "boolean"
+                },
                 "characterEscapes": {
                     "$ref": "#/definitions/CharacterEscapes"
                 },
+                "schema": {
+                    "$ref": "#/definitions/FormatSchema"
+                },
                 "featureMask": {
                     "type": "integer",
                     "format": "int32"
@@ -26774,9 +26774,6 @@
                     "type": "integer",
                     "format": "int32"
                 },
-                "currentValue": {
-                    "type": "object"
-                },
                 "highestEscapedChar": {
                     "type": "integer",
                     "format": "int32"
@@ -26788,6 +26785,9 @@
                     "type": "integer",
                     "format": "int32"
                 },
+                "currentValue": {
+                    "type": "object"
+                },
                 "outputContext": {
                     "$ref": "#/definitions/JsonStreamContext"
                 }
@@ -26827,6 +26827,9 @@
                     "type": "integer",
                     "format": "int32"
                 },
+                "codec": {
+                    "$ref": "#/definitions/ObjectCodec"
+                },
                 "text": {
                     "type": "string"
                 },
@@ -26836,6 +26839,24 @@
                         "type": "string"
                     }
                 },
+                "currentToken": {
+                    "type": "string",
+                    "enum": [
+                        "NOT_AVAILABLE",
+                        "START_OBJECT",
+                        "END_OBJECT",
+                        "START_ARRAY",
+                        "END_ARRAY",
+                        "FIELD_NAME",
+                        "VALUE_EMBEDDED_OBJECT",
+                        "VALUE_STRING",
+                        "VALUE_NUMBER_INT",
+                        "VALUE_NUMBER_FLOAT",
+                        "VALUE_TRUE",
+                        "VALUE_FALSE",
+                        "VALUE_NULL"
+                    ]
+                },
                 "booleanValue": {
                     "type": "boolean"
                 },
@@ -26862,6 +26883,9 @@
                 "closed": {
                     "type": "boolean"
                 },
+                "inputSource": {
+                    "type": "object"
+                },
                 "intValue": {
                     "type": "integer",
                     "format": "int32"
@@ -26869,33 +26893,12 @@
                 "typeId": {
                     "type": "object"
                 },
-                "schema": {
-                    "$ref": "#/definitions/FormatSchema"
-                },
-                "codec": {
-                    "$ref": "#/definitions/ObjectCodec"
-                },
-                "currentToken": {
-                    "type": "string",
-                    "enum": [
-                        "NOT_AVAILABLE",
-                        "START_OBJECT",
-                        "END_OBJECT",
-                        "START_ARRAY",
-                        "END_ARRAY",
-                        "FIELD_NAME",
-                        "VALUE_EMBEDDED_OBJECT",
-                        "VALUE_STRING",
-                        "VALUE_NUMBER_INT",
-                        "VALUE_NUMBER_FLOAT",
-                        "VALUE_TRUE",
-                        "VALUE_FALSE",
-                        "VALUE_NULL"
-                    ]
-                },
                 "currentName": {
                     "type": "string"
                 },
+                "schema": {
+                    "$ref": "#/definitions/FormatSchema"
+                },
                 "tokenLocation": {
                     "$ref": "#/definitions/JsonLocation"
                 },
@@ -26907,47 +26910,13 @@
                     "type": "integer",
                     "format": "int32"
                 },
-                "currentTokenId": {
-                    "type": "integer",
-                    "format": "int32"
-                },
-                "parsingContext": {
-                    "$ref": "#/definitions/JsonStreamContext"
-                },
-                "currentLocation": {
-                    "$ref": "#/definitions/JsonLocation"
-                },
-                "expectedStartArrayToken": {
-                    "type": "boolean"
-                },
-                "expectedStartObjectToken": {
-                    "type": "boolean"
-                },
-                "lastClearedToken": {
-                    "type": "string",
-                    "enum": [
-                        "NOT_AVAILABLE",
-                        "START_OBJECT",
-                        "END_OBJECT",
-                        "START_ARRAY",
-                        "END_ARRAY",
-                        "FIELD_NAME",
-                        "VALUE_EMBEDDED_OBJECT",
-                        "VALUE_STRING",
-                        "VALUE_NUMBER_INT",
-                        "VALUE_NUMBER_FLOAT",
-                        "VALUE_TRUE",
-                        "VALUE_FALSE",
-                        "VALUE_NULL"
-                    ]
+                "currentValue": {
+                    "type": "object"
                 },
                 "textOffset": {
                     "type": "integer",
                     "format": "int32"
                 },
-                "numberValue": {
-                    "$ref": "#/definitions/Number"
-                },
                 "numberType": {
                     "type": "string",
                     "enum": [
@@ -26993,13 +26962,44 @@
                 "valueAsString": {
                     "type": "string"
                 },
-                "objectId": {
-                    "type": "object"
+                "parsingContext": {
+                    "$ref": "#/definitions/JsonStreamContext"
                 },
-                "inputSource": {
-                    "type": "object"
+                "currentLocation": {
+                    "$ref": "#/definitions/JsonLocation"
                 },
-                "currentValue": {
+                "expectedStartArrayToken": {
+                    "type": "boolean"
+                },
+                "expectedStartObjectToken": {
+                    "type": "boolean"
+                },
+                "lastClearedToken": {
+                    "type": "string",
+                    "enum": [
+                        "NOT_AVAILABLE",
+                        "START_OBJECT",
+                        "END_OBJECT",
+                        "START_ARRAY",
+                        "END_ARRAY",
+                        "FIELD_NAME",
+                        "VALUE_EMBEDDED_OBJECT",
+                        "VALUE_STRING",
+                        "VALUE_NUMBER_INT",
+                        "VALUE_NUMBER_FLOAT",
+                        "VALUE_TRUE",
+                        "VALUE_FALSE",
+                        "VALUE_NULL"
+                    ]
+                },
+                "numberValue": {
+                    "$ref": "#/definitions/Number"
+                },
+                "currentTokenId": {
+                    "type": "integer",
+                    "format": "int32"
+                },
+                "objectId": {
                     "type": "object"
                 }
             }
@@ -27338,41 +27338,44 @@
                 "overLoaded": {
                     "type": "boolean"
                 },
-                "cpu": {
-                    "$ref": "#/definitions/ResourceUsage"
+                "loadReportType": {
+                    "type": "string"
                 },
-                "memory": {
-                    "$ref": "#/definitions/ResourceUsage"
+                "msgThroughputOut": {
+                    "type": "number",
+                    "format": "double"
                 },
-                "directMemory": {
-                    "$ref": "#/definitions/ResourceUsage"
+                "msgThroughputIn": {
+                    "type": "number",
+                    "format": "double"
                 },
-                "bandwidthIn": {
+                "cpu": {
                     "$ref": "#/definitions/ResourceUsage"
                 },
-                "bandwidthOut": {
+                "directMemory": {
                     "$ref": "#/definitions/ResourceUsage"
                 },
                 "lastUpdate": {
                     "type": "integer",
                     "format": "int64"
                 },
-                "loadReportType": {
-                    "type": "string"
+                "bandwidthIn": {
+                    "$ref": "#/definitions/ResourceUsage"
                 },
-                "msgThroughputIn": {
-                    "type": "number",
-                    "format": "double"
+                "bandwidthOut": {
+                    "$ref": "#/definitions/ResourceUsage"
                 },
-                "msgThroughputOut": {
-                    "type": "number",
-                    "format": "double"
+                "memory": {
+                    "$ref": "#/definitions/ResourceUsage"
                 }
             }
         },
         "Locale": {
             "type": "object",
             "properties": {
+                "displayName": {
+                    "type": "string"
+                },
                 "script": {
                     "type": "string"
                 },
@@ -27421,9 +27424,6 @@
                 "displayVariant": {
                     "type": "string"
                 },
-                "displayName": {
-                    "type": "string"
-                },
                 "language": {
                     "type": "string"
                 }
@@ -27642,6 +27642,14 @@
                 "address": {
                     "type": "string"
                 },
+                "accessMode": {
+                    "type": "string",
+                    "enum": [
+                        "Shared",
+                        "Exclusive",
+                        "WaitForExclusive"
+                    ]
+                },
                 "metadata": {
                     "type": "object",
                     "additionalProperties": {
@@ -27659,16 +27667,6 @@
                 "clientVersion": {
                     "type": "string"
                 },
-                "supportsPartialProducer": {
-                    "type": "boolean"
-                },
-                "connectedSince": {
-                    "type": "string"
-                },
-                "msgRateIn": {
-                    "type": "number",
-                    "format": "double"
-                },
                 "msgThroughputIn": {
                     "type": "number",
                     "format": "double"
@@ -27677,16 +27675,18 @@
                     "type": "number",
                     "format": "double"
                 },
-                "accessMode": {
-                    "type": "string",
-                    "enum": [
-                        "Shared",
-                        "Exclusive",
-                        "WaitForExclusive"
-                    ]
+                "connectedSince": {
+                    "type": "string"
                 },
                 "producerName": {
                     "type": "string"
+                },
+                "supportsPartialProducer": {
+                    "type": "boolean"
+                },
+                "msgRateIn": {
+                    "type": "number",
+                    "format": "double"
                 }
             }
         },
@@ -27697,6 +27697,13 @@
                     "type": "number",
                     "format": "double"
                 },
+                "replicationDelayInSeconds": {
+                    "type": "integer",
+                    "format": "int64"
+                },
+                "connected": {
+                    "type": "boolean"
+                },
                 "msgRateExpired": {
                     "type": "number",
                     "format": "double"
@@ -27717,14 +27724,7 @@
                 "outboundConnectedSince": {
                     "type": "string"
                 },
-                "connected": {
-                    "type": "boolean"
-                },
-                "replicationDelayInSeconds": {
-                    "type": "integer",
-                    "format": "int64"
-                },
-                "msgRateIn": {
+                "msgThroughputOut": {
                     "type": "number",
                     "format": "double"
                 },
@@ -27732,11 +27732,11 @@
                     "type": "number",
                     "format": "double"
                 },
-                "msgRateOut": {
+                "msgRateIn": {
                     "type": "number",
                     "format": "double"
                 },
-                "msgThroughputOut": {
+                "msgRateOut": {
                     "type": "number",
                     "format": "double"
                 }
@@ -27752,18 +27752,6 @@
                 "type": {
                     "type": "string"
                 },
-                "subscriptionProperties": {
-                    "type": "object",
-                    "additionalProperties": {
-                        "type": "string"
-                    }
-                },
-                "allowOutOfOrderDelivery": {
-                    "type": "boolean"
-                },
-                "keySharedMode": {
-                    "type": "string"
-                },
                 "chunkedMessageRate": {
                     "type": "integer",
                     "format": "int32"
@@ -27832,15 +27820,17 @@
                         "type": "string"
                     }
                 },
-                "consumers": {
-                    "type": "array",
-                    "items": {
-                        "$ref": "#/definitions/ConsumerStats"
+                "subscriptionProperties": {
+                    "type": "object",
+                    "additionalProperties": {
+                        "type": "string"
                     }
                 },
-                "msgRateOut": {
-                    "type": "number",
-                    "format": "double"
+                "allowOutOfOrderDelivery": {
+                    "type": "boolean"
+                },
+                "keySharedMode": {
+                    "type": "string"
                 },
                 "msgThroughputOut": {
                     "type": "number",
@@ -27871,6 +27861,16 @@
                 },
                 "durable": {
                     "type": "boolean"
+                },
+                "msgRateOut": {
+                    "type": "number",
+                    "format": "double"
+                },
+                "consumers": {
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/ConsumerStats"
+                    }
                 }
             }
         },
@@ -27899,7 +27899,7 @@
                         "$ref": "#/definitions/NonPersistentSubscriptionStats"
                     }
                 },
-                "msgRateIn": {
+                "msgThroughputOut": {
                     "type": "number",
                     "format": "double"
                 },
@@ -27907,14 +27907,6 @@
                     "type": "number",
                     "format": "double"
                 },
-                "msgRateOut": {
-                    "type": "number",
-                    "format": "double"
-                },
-                "msgThroughputOut": {
-                    "type": "number",
-                    "format": "double"
-                },
                 "bytesInCounter": {
                     "type": "integer",
                     "format": "int64"
@@ -27935,9 +27927,6 @@
                     "type": "number",
                     "format": "double"
                 },
-                "msgChunkPublished": {
-                    "type": "boolean"
-                },
                 "storageSize": {
                     "type": "integer",
                     "format": "int64"
@@ -27950,11 +27939,11 @@
                     "type": "integer",
                     "format": "int64"
                 },
-                "offloadedStorageSize": {
+                "waitingPublishers": {
                     "type": "integer",
-                    "format": "int64"
+                    "format": "int32"
                 },
-                "waitingPublishers": {
+                "nonContiguousDeletedMessagesRanges": {
                     "type": "integer",
                     "format": "int32"
                 },
@@ -27965,16 +27954,27 @@
                     "type": "integer",
                     "format": "int64"
                 },
-                "nonContiguousDeletedMessagesRanges": {
-                    "type": "integer",
-                    "format": "int32"
-                },
                 "nonContiguousDeletedMessagesRangesSerializedSize": {
                     "type": "integer",
                     "format": "int32"
                 },
                 "compaction": {
                     "$ref": "#/definitions/CompactionStats"
+                },
+                "offloadedStorageSize": {
+                    "type": "integer",
+                    "format": "int64"
+                },
+                "msgChunkPublished": {
+                    "type": "boolean"
+                },
+                "msgRateIn": {
+                    "type": "number",
+                    "format": "double"
+                },
+                "msgRateOut": {
+                    "type": "number",
+                    "format": "double"
                 }
             }
         },
@@ -28006,6 +28006,9 @@
                     "type": "integer",
                     "format": "int32"
                 },
+                "currency": {
+                    "$ref": "#/definitions/Currency"
+                },
                 "roundingMode": {
                     "type": "string",
                     "enum": [
@@ -28018,9 +28021,6 @@
                         "HALF_EVEN",
                         "UNNECESSARY"
                     ]
-                },
-                "currency": {
-                    "$ref": "#/definitions/Currency"
                 }
             }
         },
@@ -28041,27 +28041,6 @@
                 "factory": {
                     "$ref": "#/definitions/JsonFactory"
                 },
-                "serializationConfig": {
-                    "$ref": "#/definitions/SerializationConfig"
-                },
-                "deserializationConfig": {
-                    "$ref": "#/definitions/DeserializationConfig"
-                },
-                "deserializationContext": {
-                    "$ref": "#/definitions/DeserializationContext"
-                },
-                "serializerFactory": {
-                    "$ref": "#/definitions/SerializerFactory"
-                },
-                "serializerProvider": {
-                    "$ref": "#/definitions/SerializerProvider"
-                },
-                "serializerProviderInstance": {
-                    "$ref": "#/definitions/SerializerProvider"
-                },
-                "typeFactory": {
-                    "$ref": "#/definitions/TypeFactory"
-                },
                 "visibilityChecker": {
                     "$ref": "#/definitions/VisibilityCheckerObject"
                 },
@@ -28071,6 +28050,9 @@
                 "propertyNamingStrategy": {
                     "$ref": "#/definitions/PropertyNamingStrategy"
                 },
+                "typeFactory": {
+                    "$ref": "#/definitions/TypeFactory"
+                },
                 "nodeFactory": {
                     "$ref": "#/definitions/JsonNodeFactory"
                 },
@@ -28082,6 +28064,24 @@
                 },
                 "injectableValues": {
                     "$ref": "#/definitions/InjectableValues"
+                },
+                "serializationConfig": {
+                    "$ref": "#/definitions/SerializationConfig"
+                },
+                "deserializationConfig": {
+                    "$ref": "#/definitions/DeserializationConfig"
+                },
+                "deserializationContext": {
+                    "$ref": "#/definitions/DeserializationContext"
+                },
+                "serializerFactory": {
+                    "$ref": "#/definitions/SerializerFactory"
+                },
+                "serializerProvider": {
+                    "$ref": "#/definitions/SerializerProvider"
+                },
+                "serializerProviderInstance": {
+                    "$ref": "#/definitions/SerializerProvider"
                 }
             }
         },
@@ -28110,9 +28110,33 @@
                     "type": "integer",
                     "format": "int32"
                 },
+                "fileSystemURI": {
+                    "type": "string"
+                },
+                "managedLedgerOffloadedReadPriority": {
+                    "type": "string",
+                    "enum": [
+                        "BOOKKEEPER_FIRST",
+                        "TIERED_STORAGE_FIRST"
+                    ]
+                },
                 "s3ManagedLedgerOffloadRegion": {
                     "type": "string"
                 },
+                "s3ManagedLedgerOffloadBucket": {
+                    "type": "string"
+                },
+                "s3ManagedLedgerOffloadServiceEndpoint": {
+                    "type": "string"
+                },
+                "s3ManagedLedgerOffloadMaxBlockSizeInBytes": {
+                    "type": "integer",
+                    "format": "int32"
+                },
+                "s3ManagedLedgerOffloadReadBufferSizeInBytes": {
+                    "type": "integer",
+                    "format": "int32"
+                },
                 "s3ManagedLedgerOffloadCredentialId": {
                     "type": "string"
                 },
@@ -28161,30 +28185,6 @@
                 "managedLedgerOffloadReadBufferSizeInBytes": {
                     "type": "integer",
                     "format": "int32"
-                },
-                "fileSystemURI": {
-                    "type": "string"
-                },
-                "s3ManagedLedgerOffloadServiceEndpoint": {
-                    "type": "string"
-                },
-                "s3ManagedLedgerOffloadMaxBlockSizeInBytes": {
-                    "type": "integer",
-                    "format": "int32"
-                },
-                "s3ManagedLedgerOffloadReadBufferSizeInBytes": {
-                    "type": "integer",
-                    "format": "int32"
-                },
-                "s3ManagedLedgerOffloadBucket": {
-                    "type": "string"
-                },
-                "managedLedgerOffloadedReadPriority": {
-                    "type": "string",
-                    "enum": [
-                        "BOOKKEEPER_FIRST",
-                        "TIERED_STORAGE_FIRST"
-                    ]
                 }
             }
         },
@@ -28925,10 +28925,10 @@
         "PublicKey": {
             "type": "object",
             "properties": {
-                "format": {
+                "algorithm": {
                     "type": "string"
                 },
-                "algorithm": {
+                "format": {
                     "type": "string"
                 },
                 "encoded": {
@@ -28959,6 +28959,14 @@
                 "address": {
                     "type": "string"
                 },
+                "accessMode": {
+                    "type": "string",
+                    "enum": [
+                        "Shared",
+                        "Exclusive",
+                        "WaitForExclusive"
+                    ]
+                },
                 "metadata": {
                     "type": "object",
                     "additionalProperties": {
@@ -28976,16 +28984,6 @@
                 "clientVersion": {
                     "type": "string"
                 },
-                "supportsPartialProducer": {
-                    "type": "boolean"
-                },
-                "connectedSince": {
-                    "type": "string"
-                },
-                "msgRateIn": {
-                    "type": "number",
-                    "format": "double"
-                },
                 "msgThroughputIn": {
                     "type": "number",
                     "format": "double"
@@ -28994,16 +28992,18 @@
                     "type": "number",
                     "format": "double"
                 },
-                "accessMode": {
-                    "type": "string",
-                    "enum": [
-                        "Shared",
-                        "Exclusive",
-                        "WaitForExclusive"
-                    ]
+                "connectedSince": {
+                    "type": "string"
                 },
                 "producerName": {
                     "type": "string"
+                },
+                "supportsPartialProducer": {
+                    "type": "boolean"
+                },
+                "msgRateIn": {
+                    "type": "number",
+                    "format": "double"
                 }
             }
         },
@@ -29018,6 +29018,13 @@
         "ReplicatorStats": {
             "type": "object",
             "properties": {
+                "replicationDelayInSeconds": {
+                    "type": "integer",
+                    "format": "int64"
+                },
+                "connected": {
+                    "type": "boolean"
+                },
                 "msgRateExpired": {
                     "type": "number",
                     "format": "double"
@@ -29038,14 +29045,7 @@
                 "outboundConnectedSince": {
                     "type": "string"
                 },
-                "connected": {
-                    "type": "boolean"
-                },
-                "replicationDelayInSeconds": {
-                    "type": "integer",
-                    "format": "int64"
-                },
-                "msgRateIn": {
+                "msgThroughputOut": {
                     "type": "number",
                     "format": "double"
                 },
@@ -29053,11 +29053,11 @@
                     "type": "number",
                     "format": "double"
                 },
-                "msgRateOut": {
+                "msgRateIn": {
                     "type": "number",
                     "format": "double"
                 },
-                "msgThroughputOut": {
+                "msgRateOut": {
                     "type": "number",
                     "format": "double"
                 }
@@ -29090,15 +29090,15 @@
         "ResourceDescription": {
             "type": "object",
             "properties": {
+                "usagePct": {
+                    "type": "integer",
+                    "format": "int32"
+                },
                 "resourceUsage": {
                     "type": "object",
                     "additionalProperties": {
                         "$ref": "#/definitions/ResourceUsage"
                     }
-                },
-                "usagePct": {
-                    "type": "integer",
-                    "format": "int32"
                 }
             }
         },
@@ -29211,6 +29211,9 @@
         "SerializationConfig": {
             "type": "object",
             "properties": {
+                "defaultPrettyPrinter": {
+                    "$ref": "#/definitions/PrettyPrinter"
+                },
                 "annotationIntrospector": {
                     "$ref": "#/definitions/AnnotationIntrospector"
                 },
@@ -29220,9 +29223,6 @@
                 "filterProvider": {
                     "$ref": "#/definitions/FilterProvider"
                 },
-                "defaultPrettyPrinter": {
-                    "$ref": "#/definitions/PrettyPrinter"
-                },
                 "serializationInclusion": {
                     "type": "string",
                     "enum": [
@@ -29241,26 +29241,23 @@
                 "attributes": {
                     "$ref": "#/definitions/ContextAttributes"
                 },
-                "rootName": {
-                    "type": "string"
-                },
                 "subtypeResolver": {
                     "$ref": "#/definitions/SubtypeResolver"
                 },
-                "fullRootName": {
-                    "$ref": "#/definitions/PropertyName"
-                },
                 "defaultVisibilityChecker": {
                     "$ref": "#/definitions/VisibilityCheckerObject"
                 },
-                "timeZone": {
-                    "$ref": "#/definitions/TimeZone"
+                "rootName": {
+                    "type": "string"
+                },
+                "fullRootName": {
+                    "$ref": "#/definitions/PropertyName"
                 },
                 "locale": {
                     "$ref": "#/definitions/Locale"
                 },
-                "typeFactory": {
-                    "$ref": "#/definitions/TypeFactory"
+                "timeZone": {
+                    "$ref": "#/definitions/TimeZone"
                 },
                 "propertyNamingStrategy": {
                     "$ref": "#/definitions/PropertyNamingStrategy"
@@ -29268,15 +29265,18 @@
                 "dateFormat": {
                     "$ref": "#/definitions/DateFormat"
                 },
+                "annotationProcessingEnabled": {
+                    "type": "boolean"
+                },
+                "typeFactory": {
+                    "$ref": "#/definitions/TypeFactory"
+                },
                 "handlerInstantiator": {
                     "$ref": "#/definitions/HandlerInstantiator"
                 },
                 "base64Variant": {
                     "$ref": "#/definitions/Base64Variant"
                 },
-                "annotationProcessingEnabled": {
-                    "type": "boolean"
-                },
                 "classIntrospector": {
                     "$ref": "#/definitions/ClassIntrospector"
                 }
@@ -29288,12 +29288,12 @@
         "SerializerProvider": {
             "type": "object",
             "properties": {
-                "timeZone": {
-                    "$ref": "#/definitions/TimeZone"
-                },
                 "locale": {
                     "$ref": "#/definitions/Locale"
                 },
+                "timeZone": {
+                    "$ref": "#/definitions/TimeZone"
+                },
                 "config": {
                     "$ref": "#/definitions/SerializationConfig"
                 },
@@ -29410,18 +29410,6 @@
                 "type": {
                     "type": "string"
                 },
-                "subscriptionProperties": {
-                    "type": "object",
-                    "additionalProperties": {
-                        "type": "string"
-                    }
-                },
-                "allowOutOfOrderDelivery": {
-                    "type": "boolean"
-                },
-                "keySharedMode": {
-                    "type": "string"
-                },
                 "chunkedMessageRate": {
                     "type": "integer",
                     "format": "int32"
@@ -29490,15 +29478,17 @@
                         "type": "string"
                     }
                 },
-                "consumers": {
-                    "type": "array",
-                    "items": {
-                        "$ref": "#/definitions/ConsumerStats"
+                "subscriptionProperties": {
+                    "type": "object",
+                    "additionalProperties": {
+                        "type": "string"
                     }
                 },
-                "msgRateOut": {
-                    "type": "number",
-                    "format": "double"
+                "allowOutOfOrderDelivery": {
+                    "type": "boolean"
+                },
+                "keySharedMode": {
+                    "type": "string"
                 },
                 "msgThroughputOut": {
                     "type": "number",
@@ -29529,6 +29519,16 @@
                 },
                 "durable": {
                     "type": "boolean"
+                },
+                "msgRateOut": {
+                    "type": "number",
+                    "format": "double"
+                },
+                "consumers": {
+                    "type": "array",
+                    "items": {
+                        "$ref": "#/definitions/ConsumerStats"
+                    }
                 }
             }
         },
@@ -29591,10 +29591,10 @@
         "TimeZone": {
             "type": "object",
             "properties": {
-                "id": {
+                "displayName": {
                     "type": "string"
                 },
-                "displayName": {
+                "id": {
                     "type": "string"
                 },
                 "dstsavings": {
@@ -29610,7 +29610,7 @@
         "TopicStats": {
             "type": "object",
             "properties": {
-                "msgRateIn": {
+                "msgThroughputOut": {
                     "type": "number",
                     "format": "double"
                 },
@@ -29618,14 +29618,6 @@
                     "type": "number",
                     "format": "double"
                 },
-                "msgRateOut": {
-                    "type": "number",
-                    "format": "double"
-                },
-                "msgThroughputOut": {
-                    "type": "number",
-                    "format": "double"
-                },
                 "bytesInCounter": {
                     "type": "integer",
                     "format": "int64"
@@ -29646,9 +29638,6 @@
                     "type": "number",
                     "format": "double"
                 },
-                "msgChunkPublished": {
-                    "type": "boolean"
-                },
                 "storageSize": {
                     "type": "integer",
                     "format": "int64"
@@ -29661,10 +29650,6 @@
                     "type": "integer",
                     "format": "int64"
                 },
-                "offloadedStorageSize": {
-                    "type": "integer",
-                    "format": "int64"
-                },
                 "publishers": {
                     "type": "array",
                     "items": {
@@ -29681,6 +29666,10 @@
                         "$ref": "#/definitions/ReplicatorStats"
                     }
                 },
+                "nonContiguousDeletedMessagesRanges": {
+                    "type": "integer",
+                    "format": "int32"
+                },
                 "deduplicationStatus": {
                     "type": "string"
                 },
@@ -29688,10 +29677,6 @@
                     "type": "integer",
                     "format": "int64"
                 },
-                "nonContiguousDeletedMessagesRanges": {
-                    "type": "integer",
-                    "format": "int32"
-                },
                 "nonContiguousDeletedMessagesRangesSerializedSize": {
                     "type": "integer",
                     "format": "int32"
@@ -29704,6 +29689,21 @@
                     "additionalProperties": {
                         "$ref": "#/definitions/SubscriptionStats"
                     }
+                },
+                "offloadedStorageSize": {
+                    "type": "integer",
+                    "format": "int64"
+                },
+                "msgChunkPublished": {
+                    "type": "boolean"
+                },
+                "msgRateIn": {
+                    "type": "number",
+                    "format": "double"
+                },
+                "msgRateOut": {
+                    "type": "number",
+                    "format": "double"
                 }
             }
         },
diff --git a/content/swagger/2.10.0-SNAPSHOT/v3/swaggerfunctions.json b/content/swagger/2.10.0-SNAPSHOT/v3/swaggerfunctions.json
index 4b6df5b..e36edc7 100644
--- a/content/swagger/2.10.0-SNAPSHOT/v3/swaggerfunctions.json
+++ b/content/swagger/2.10.0-SNAPSHOT/v3/swaggerfunctions.json
@@ -1168,6 +1168,9 @@
                 "subscription": {
                     "type": "string"
                 },
+                "peerAddress": {
+                    "$ref": "#/definitions/SocketAddress"
+                },
                 "tlsCertificates": {
                     "type": "array",
                     "items": {
@@ -1179,9 +1182,6 @@
                 },
                 "commandData": {
                     "type": "string"
-                },
-                "peerAddress": {
-                    "$ref": "#/definitions/SocketAddress"
                 }
             }
         },
@@ -1408,14 +1408,14 @@
                     "type": "integer",
                     "format": "int32"
                 },
-                "numericCodeAsString": {
-                    "type": "string"
-                },
                 "displayName": {
                     "type": "string"
                 },
                 "symbol": {
                     "type": "string"
+                },
+                "numericCodeAsString": {
+                    "type": "string"
                 }
             }
         },
@@ -1459,26 +1459,23 @@
                 "attributes": {
                     "$ref": "#/definitions/ContextAttributes"
                 },
-                "rootName": {
-                    "type": "string"
-                },
                 "subtypeResolver": {
                     "$ref": "#/definitions/SubtypeResolver"
                 },
-                "fullRootName": {
-                    "$ref": "#/definitions/PropertyName"
-                },
                 "defaultVisibilityChecker": {
                     "$ref": "#/definitions/VisibilityCheckerObject"
                 },
-                "timeZone": {
-                    "$ref": "#/definitions/TimeZone"
+                "rootName": {
+                    "type": "string"
+                },
+                "fullRootName": {
+                    "$ref": "#/definitions/PropertyName"
                 },
                 "locale": {
                     "$ref": "#/definitions/Locale"
                 },
-                "typeFactory": {
-                    "$ref": "#/definitions/TypeFactory"
+                "timeZone": {
+                    "$ref": "#/definitions/TimeZone"
                 },
                 "propertyNamingStrategy": {
                     "$ref": "#/definitions/PropertyNamingStrategy"
@@ -1486,15 +1483,18 @@
                 "dateFormat": {
                     "$ref": "#/definitions/DateFormat"
                 },
+                "annotationProcessingEnabled": {
+                    "type": "boolean"
+                },
+                "typeFactory": {
+                    "$ref": "#/definitions/TypeFactory"
+                },
                 "handlerInstantiator": {
                     "$ref": "#/definitions/HandlerInstantiator"
                 },
                 "base64Variant": {
                     "$ref": "#/definitions/Base64Variant"
                 },
-                "annotationProcessingEnabled": {
-                    "type": "boolean"
-                },
                 "classIntrospector": {
                     "$ref": "#/definitions/ClassIntrospector"
                 }
@@ -1503,27 +1503,27 @@
         "DeserializationContext": {
             "type": "object",
             "properties": {
-                "timeZone": {
-                    "$ref": "#/definitions/TimeZone"
-                },
                 "locale": {
                     "$ref": "#/definitions/Locale"
                 },
+                "timeZone": {
+                    "$ref": "#/definitions/TimeZone"
+                },
                 "factory": {
                     "$ref": "#/definitions/DeserializerFactory"
                 },
                 "config": {
                     "$ref": "#/definitions/DeserializationConfig"
                 },
+                "nodeFactory": {
+                    "$ref": "#/definitions/JsonNodeFactory"
+                },
                 "parser": {
                     "$ref": "#/definitions/JsonParser"
                 },
                 "typeFactory": {
                     "$ref": "#/definitions/TypeFactory"
                 },
-                "nodeFactory": {
-                    "$ref": "#/definitions/JsonNodeFactory"
-                },
                 "annotationIntrospector": {
                     "$ref": "#/definitions/AnnotationIntrospector"
                 },
@@ -1801,13 +1801,6 @@
         "FunctionInstanceStatsData": {
             "type": "object",
             "properties": {
-                "oneMin": {
-                    "$ref": "#/definitions/FunctionInstanceStatsDataBase"
-                },
-                "lastInvocation": {
-                    "type": "integer",
-                    "format": "int64"
-                },
                 "userMetrics": {
                     "type": "object",
                     "additionalProperties": {
@@ -1815,6 +1808,13 @@
                         "format": "double"
                     }
                 },
+                "oneMin": {
+                    "$ref": "#/definitions/FunctionInstanceStatsDataBase"
+                },
+                "lastInvocation": {
+                    "type": "integer",
+                    "format": "int64"
+                },
                 "receivedTotal": {
                     "type": "integer",
                     "format": "int64"
@@ -2191,15 +2191,9 @@
         "JsonFactory": {
             "type": "object",
             "properties": {
-                "rootValueSeparator": {
-                    "type": "string"
-                },
                 "codec": {
                     "$ref": "#/definitions/ObjectCodec"
                 },
-                "formatName": {
-                    "type": "string"
-                },
                 "inputDecorator": {
                     "$ref": "#/definitions/InputDecorator"
                 },
@@ -2208,27 +2202,33 @@
                 },
                 "outputDecorator": {
                     "$ref": "#/definitions/OutputDecorator"
+                },
+                "formatName": {
+                    "type": "string"
+                },
+                "rootValueSeparator": {
+                    "type": "string"
                 }
             }
         },
         "JsonGenerator": {
             "type": "object",
             "properties": {
-                "closed": {
-                    "type": "boolean"
-                },
-                "schema": {
-                    "$ref": "#/definitions/FormatSchema"
-                },
                 "codec": {
                     "$ref": "#/definitions/ObjectCodec"
                 },
                 "prettyPrinter": {
                     "$ref": "#/definitions/PrettyPrinter"
                 },
+                "closed": {
+                    "type": "boolean"
+                },
                 "characterEscapes": {
                     "$ref": "#/definitions/CharacterEscapes"
                 },
+                "schema": {
+                    "$ref": "#/definitions/FormatSchema"
+                },
                 "featureMask": {
                     "type": "integer",
                     "format": "int32"
@@ -2237,9 +2237,6 @@
                     "type": "integer",
                     "format": "int32"
                 },
-                "currentValue": {
-                    "type": "object"
-                },
                 "highestEscapedChar": {
                     "type": "integer",
                     "format": "int32"
@@ -2251,6 +2248,9 @@
                     "type": "integer",
                     "format": "int32"
                 },
+                "currentValue": {
+                    "type": "object"
+                },
                 "outputContext": {
                     "$ref": "#/definitions/JsonStreamContext"
                 }
@@ -2290,6 +2290,9 @@
                     "type": "integer",
                     "format": "int32"
                 },
+                "codec": {
+                    "$ref": "#/definitions/ObjectCodec"
+                },
                 "text": {
                     "type": "string"
                 },
@@ -2299,6 +2302,24 @@
                         "type": "string"
                     }
                 },
+                "currentToken": {
+                    "type": "string",
+                    "enum": [
... 9642 lines suppressed ...