You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by mm...@apache.org on 2019/03/24 08:57:11 UTC

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

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

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


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

commit 2896259651278402a980f3bb01ff438032fac6b1
Author: jenkins <bu...@apache.org>
AuthorDate: Sun Mar 24 08:57:02 2019 +0000

    Updated site at revision dfc0e0e
---
 .../admin-api-partitioned-topics.html              |  6 +-
 .../admin-api-partitioned-topics/index.html        |  6 +-
 .../2.1.0-incubating/administration-proxy.html     | 48 ++++++++--------
 .../administration-proxy/index.html                | 48 ++++++++--------
 .../zh-CN/2.1.0-incubating/concepts-messaging.html |  6 +-
 .../2.1.0-incubating/concepts-messaging/index.html |  6 +-
 .../2.1.0-incubating/cookbooks-deduplication.html  |  2 +-
 .../cookbooks-deduplication/index.html             |  2 +-
 .../2.1.0-incubating/cookbooks-non-persistent.html | 48 ++++++++--------
 .../cookbooks-non-persistent/index.html            | 48 ++++++++--------
 .../2.1.0-incubating/cookbooks-partitioned.html    |  2 +-
 .../cookbooks-partitioned/index.html               |  2 +-
 .../2.1.0-incubating/reference-configuration.html  | 62 ++++++++++-----------
 .../reference-configuration/index.html             | 62 ++++++++++-----------
 .../admin-api-partitioned-topics.html              |  6 +-
 .../admin-api-partitioned-topics/index.html        |  6 +-
 .../2.1.1-incubating/administration-proxy.html     | 48 ++++++++--------
 .../administration-proxy/index.html                | 48 ++++++++--------
 .../zh-CN/2.1.1-incubating/concepts-messaging.html |  6 +-
 .../2.1.1-incubating/concepts-messaging/index.html |  6 +-
 .../2.1.1-incubating/cookbooks-deduplication.html  |  2 +-
 .../cookbooks-deduplication/index.html             |  2 +-
 .../2.1.1-incubating/cookbooks-non-persistent.html | 48 ++++++++--------
 .../cookbooks-non-persistent/index.html            | 48 ++++++++--------
 .../2.1.1-incubating/cookbooks-partitioned.html    |  2 +-
 .../cookbooks-partitioned/index.html               |  2 +-
 .../2.1.1-incubating/reference-configuration.html  | 62 ++++++++++-----------
 .../reference-configuration/index.html             | 62 ++++++++++-----------
 .../zh-CN/2.2.0/admin-api-partitioned-topics.html  |  6 +-
 .../2.2.0/admin-api-partitioned-topics/index.html  |  6 +-
 content/docs/zh-CN/2.2.0/administration-proxy.html | 48 ++++++++--------
 .../zh-CN/2.2.0/administration-proxy/index.html    | 48 ++++++++--------
 content/docs/zh-CN/2.2.0/concepts-messaging.html   |  6 +-
 .../docs/zh-CN/2.2.0/concepts-messaging/index.html |  6 +-
 .../docs/zh-CN/2.2.0/cookbooks-deduplication.html  |  2 +-
 .../zh-CN/2.2.0/cookbooks-deduplication/index.html |  2 +-
 .../docs/zh-CN/2.2.0/cookbooks-non-persistent.html | 48 ++++++++--------
 .../2.2.0/cookbooks-non-persistent/index.html      | 48 ++++++++--------
 .../docs/zh-CN/2.2.0/cookbooks-partitioned.html    |  2 +-
 .../zh-CN/2.2.0/cookbooks-partitioned/index.html   |  2 +-
 .../docs/zh-CN/2.2.0/reference-configuration.html  | 62 ++++++++++-----------
 .../zh-CN/2.2.0/reference-configuration/index.html | 62 ++++++++++-----------
 .../zh-CN/2.2.1/admin-api-partitioned-topics.html  |  6 +-
 .../2.2.1/admin-api-partitioned-topics/index.html  |  6 +-
 content/docs/zh-CN/2.2.1/administration-proxy.html | 48 ++++++++--------
 .../zh-CN/2.2.1/administration-proxy/index.html    | 48 ++++++++--------
 content/docs/zh-CN/2.2.1/concepts-messaging.html   |  6 +-
 .../docs/zh-CN/2.2.1/concepts-messaging/index.html |  6 +-
 .../docs/zh-CN/2.2.1/cookbooks-deduplication.html  |  2 +-
 .../zh-CN/2.2.1/cookbooks-deduplication/index.html |  2 +-
 .../docs/zh-CN/2.2.1/cookbooks-non-persistent.html | 48 ++++++++--------
 .../2.2.1/cookbooks-non-persistent/index.html      | 48 ++++++++--------
 .../docs/zh-CN/2.2.1/cookbooks-partitioned.html    |  2 +-
 .../zh-CN/2.2.1/cookbooks-partitioned/index.html   |  2 +-
 .../docs/zh-CN/2.2.1/reference-configuration.html  | 52 +++++++++---------
 .../zh-CN/2.2.1/reference-configuration/index.html | 52 +++++++++---------
 .../docs/zh-CN/admin-api-partitioned-topics.html   |  6 +-
 .../zh-CN/admin-api-partitioned-topics/index.html  |  6 +-
 content/docs/zh-CN/administration-proxy.html       | 48 ++++++++--------
 content/docs/zh-CN/administration-proxy/index.html | 48 ++++++++--------
 content/docs/zh-CN/concepts-messaging.html         |  6 +-
 content/docs/zh-CN/concepts-messaging/index.html   |  6 +-
 content/docs/zh-CN/cookbooks-deduplication.html    |  2 +-
 .../docs/zh-CN/cookbooks-deduplication/index.html  |  2 +-
 content/docs/zh-CN/cookbooks-non-persistent.html   | 48 ++++++++--------
 .../docs/zh-CN/cookbooks-non-persistent/index.html | 48 ++++++++--------
 content/docs/zh-CN/cookbooks-partitioned.html      |  2 +-
 .../docs/zh-CN/cookbooks-partitioned/index.html    |  2 +-
 content/docs/zh-CN/next/adaptors-kafka.html        |  2 +-
 content/docs/zh-CN/next/adaptors-kafka/index.html  |  2 +-
 content/docs/zh-CN/next/adaptors-spark.html        |  2 +-
 content/docs/zh-CN/next/adaptors-spark/index.html  |  2 +-
 content/docs/zh-CN/next/adaptors-storm.html        |  2 +-
 content/docs/zh-CN/next/adaptors-storm/index.html  |  2 +-
 content/docs/zh-CN/next/admin-api-brokers.html     |  2 +-
 .../docs/zh-CN/next/admin-api-brokers/index.html   |  2 +-
 content/docs/zh-CN/next/admin-api-clusters.html    |  2 +-
 .../docs/zh-CN/next/admin-api-clusters/index.html  |  2 +-
 content/docs/zh-CN/next/admin-api-namespaces.html  |  2 +-
 .../zh-CN/next/admin-api-namespaces/index.html     |  2 +-
 .../next/admin-api-non-persistent-topics.html      |  2 +-
 .../admin-api-non-persistent-topics/index.html     |  2 +-
 content/docs/zh-CN/next/admin-api-overview.html    |  2 +-
 .../docs/zh-CN/next/admin-api-overview/index.html  |  2 +-
 .../zh-CN/next/admin-api-partitioned-topics.html   | 14 ++---
 .../next/admin-api-partitioned-topics/index.html   | 14 ++---
 content/docs/zh-CN/next/admin-api-permissions.html |  2 +-
 .../zh-CN/next/admin-api-permissions/index.html    |  2 +-
 .../zh-CN/next/admin-api-persistent-topics.html    |  2 +-
 .../next/admin-api-persistent-topics/index.html    |  2 +-
 content/docs/zh-CN/next/admin-api-schemas.html     |  2 +-
 .../docs/zh-CN/next/admin-api-schemas/index.html   |  2 +-
 content/docs/zh-CN/next/admin-api-tenants.html     |  2 +-
 .../docs/zh-CN/next/admin-api-tenants/index.html   |  2 +-
 .../docs/zh-CN/next/administration-dashboard.html  |  2 +-
 .../zh-CN/next/administration-dashboard/index.html |  2 +-
 content/docs/zh-CN/next/administration-geo.html    |  2 +-
 .../docs/zh-CN/next/administration-geo/index.html  |  2 +-
 .../next/administration-load-distribution.html     |  2 +-
 .../administration-load-distribution/index.html    |  2 +-
 content/docs/zh-CN/next/administration-proxy.html  | 58 ++++++++++----------
 .../zh-CN/next/administration-proxy/index.html     | 58 ++++++++++----------
 content/docs/zh-CN/next/administration-stats.html  |  2 +-
 .../zh-CN/next/administration-stats/index.html     |  2 +-
 content/docs/zh-CN/next/administration-zk-bk.html  |  2 +-
 .../zh-CN/next/administration-zk-bk/index.html     |  2 +-
 content/docs/zh-CN/next/client-libraries-cpp.html  |  2 +-
 .../zh-CN/next/client-libraries-cpp/index.html     |  2 +-
 content/docs/zh-CN/next/client-libraries-go.html   |  2 +-
 .../docs/zh-CN/next/client-libraries-go/index.html |  2 +-
 content/docs/zh-CN/next/client-libraries-java.html |  2 +-
 .../zh-CN/next/client-libraries-java/index.html    |  2 +-
 .../docs/zh-CN/next/client-libraries-python.html   |  2 +-
 .../zh-CN/next/client-libraries-python/index.html  |  2 +-
 .../zh-CN/next/client-libraries-websocket.html     |  2 +-
 .../next/client-libraries-websocket/index.html     |  2 +-
 content/docs/zh-CN/next/client-libraries.html      |  2 +-
 .../docs/zh-CN/next/client-libraries/index.html    |  2 +-
 .../zh-CN/next/concepts-architecture-overview.html |  2 +-
 .../next/concepts-architecture-overview/index.html |  2 +-
 .../docs/zh-CN/next/concepts-authentication.html   |  2 +-
 .../zh-CN/next/concepts-authentication/index.html  |  2 +-
 content/docs/zh-CN/next/concepts-clients.html      |  2 +-
 .../docs/zh-CN/next/concepts-clients/index.html    |  2 +-
 content/docs/zh-CN/next/concepts-messaging.html    |  8 +--
 .../docs/zh-CN/next/concepts-messaging/index.html  |  8 +--
 .../docs/zh-CN/next/concepts-multi-tenancy.html    |  2 +-
 .../zh-CN/next/concepts-multi-tenancy/index.html   |  2 +-
 content/docs/zh-CN/next/concepts-overview.html     |  2 +-
 .../docs/zh-CN/next/concepts-overview/index.html   |  2 +-
 content/docs/zh-CN/next/concepts-replication.html  |  2 +-
 .../zh-CN/next/concepts-replication/index.html     |  2 +-
 .../docs/zh-CN/next/concepts-schema-registry.html  |  2 +-
 .../zh-CN/next/concepts-schema-registry/index.html |  2 +-
 .../docs/zh-CN/next/concepts-tiered-storage.html   |  2 +-
 .../zh-CN/next/concepts-tiered-storage/index.html  |  2 +-
 .../docs/zh-CN/next/concepts-topic-compaction.html |  2 +-
 .../next/concepts-topic-compaction/index.html      |  2 +-
 .../zh-CN/next/cookbooks-bookkeepermetadata.html   |  2 +-
 .../next/cookbooks-bookkeepermetadata/index.html   |  2 +-
 content/docs/zh-CN/next/cookbooks-compaction.html  |  2 +-
 .../zh-CN/next/cookbooks-compaction/index.html     |  2 +-
 .../docs/zh-CN/next/cookbooks-deduplication.html   |  4 +-
 .../zh-CN/next/cookbooks-deduplication/index.html  |  4 +-
 content/docs/zh-CN/next/cookbooks-encryption.html  |  2 +-
 .../zh-CN/next/cookbooks-encryption/index.html     |  2 +-
 .../docs/zh-CN/next/cookbooks-message-queue.html   |  2 +-
 .../zh-CN/next/cookbooks-message-queue/index.html  |  2 +-
 .../docs/zh-CN/next/cookbooks-non-persistent.html  | 50 ++++++++---------
 .../zh-CN/next/cookbooks-non-persistent/index.html | 50 ++++++++---------
 content/docs/zh-CN/next/cookbooks-partitioned.html |  4 +-
 .../zh-CN/next/cookbooks-partitioned/index.html    |  4 +-
 .../zh-CN/next/cookbooks-retention-expiry.html     |  2 +-
 .../next/cookbooks-retention-expiry/index.html     |  2 +-
 .../docs/zh-CN/next/cookbooks-tiered-storage.html  |  2 +-
 .../zh-CN/next/cookbooks-tiered-storage/index.html |  2 +-
 content/docs/zh-CN/next/deploy-aws.html            |  2 +-
 content/docs/zh-CN/next/deploy-aws/index.html      |  2 +-
 .../next/deploy-bare-metal-multi-cluster.html      |  2 +-
 .../deploy-bare-metal-multi-cluster/index.html     |  2 +-
 content/docs/zh-CN/next/deploy-bare-metal.html     |  2 +-
 .../docs/zh-CN/next/deploy-bare-metal/index.html   |  2 +-
 content/docs/zh-CN/next/deploy-dcos.html           |  2 +-
 content/docs/zh-CN/next/deploy-dcos/index.html     |  2 +-
 content/docs/zh-CN/next/deploy-kubernetes.html     |  2 +-
 .../docs/zh-CN/next/deploy-kubernetes/index.html   |  2 +-
 content/docs/zh-CN/next/deploy-monitoring.html     |  2 +-
 .../docs/zh-CN/next/deploy-monitoring/index.html   |  2 +-
 .../docs/zh-CN/next/develop-binary-protocol.html   |  2 +-
 .../zh-CN/next/develop-binary-protocol/index.html  |  2 +-
 content/docs/zh-CN/next/develop-cpp.html           |  2 +-
 content/docs/zh-CN/next/develop-cpp/index.html     |  2 +-
 content/docs/zh-CN/next/develop-load-manager.html  |  2 +-
 .../zh-CN/next/develop-load-manager/index.html     |  2 +-
 content/docs/zh-CN/next/develop-schema.html        |  2 +-
 content/docs/zh-CN/next/develop-schema/index.html  |  2 +-
 content/docs/zh-CN/next/develop-tools.html         |  2 +-
 content/docs/zh-CN/next/develop-tools/index.html   |  2 +-
 content/docs/zh-CN/next/functions-api.html         |  2 +-
 content/docs/zh-CN/next/functions-api/index.html   |  2 +-
 content/docs/zh-CN/next/functions-deploying.html   |  2 +-
 .../docs/zh-CN/next/functions-deploying/index.html |  2 +-
 content/docs/zh-CN/next/functions-guarantees.html  |  2 +-
 .../zh-CN/next/functions-guarantees/index.html     |  2 +-
 content/docs/zh-CN/next/functions-metrics.html     |  2 +-
 .../docs/zh-CN/next/functions-metrics/index.html   |  2 +-
 content/docs/zh-CN/next/functions-overview.html    |  2 +-
 .../docs/zh-CN/next/functions-overview/index.html  |  2 +-
 content/docs/zh-CN/next/functions-quickstart.html  |  2 +-
 .../zh-CN/next/functions-quickstart/index.html     |  2 +-
 content/docs/zh-CN/next/functions-state.html       |  2 +-
 content/docs/zh-CN/next/functions-state/index.html |  2 +-
 content/docs/zh-CN/next/io-cdc.html                |  2 +-
 content/docs/zh-CN/next/io-cdc/index.html          |  2 +-
 content/docs/zh-CN/next/io-connectors.html         |  2 +-
 content/docs/zh-CN/next/io-connectors/index.html   |  2 +-
 content/docs/zh-CN/next/io-develop.html            |  2 +-
 content/docs/zh-CN/next/io-develop/index.html      |  2 +-
 content/docs/zh-CN/next/io-managing.html           |  2 +-
 content/docs/zh-CN/next/io-managing/index.html     |  2 +-
 content/docs/zh-CN/next/io-overview.html           |  2 +-
 content/docs/zh-CN/next/io-overview/index.html     |  2 +-
 content/docs/zh-CN/next/io-quickstart.html         |  2 +-
 content/docs/zh-CN/next/io-quickstart/index.html   |  2 +-
 content/docs/zh-CN/next/pulsar-2.0.html            |  2 +-
 content/docs/zh-CN/next/pulsar-2.0/index.html      |  2 +-
 content/docs/zh-CN/next/pulsar-admin.html          |  2 +-
 content/docs/zh-CN/next/pulsar-admin/index.html    |  2 +-
 content/docs/zh-CN/next/reference-cli-tools.html   |  2 +-
 .../docs/zh-CN/next/reference-cli-tools/index.html |  2 +-
 .../docs/zh-CN/next/reference-configuration.html   | 64 +++++++++++-----------
 .../zh-CN/next/reference-configuration/index.html  | 64 +++++++++++-----------
 content/docs/zh-CN/next/reference-terminology.html |  2 +-
 .../zh-CN/next/reference-terminology/index.html    |  2 +-
 content/docs/zh-CN/next/security-athenz.html       |  2 +-
 content/docs/zh-CN/next/security-athenz/index.html |  2 +-
 .../docs/zh-CN/next/security-authorization.html    |  2 +-
 .../zh-CN/next/security-authorization/index.html   |  2 +-
 content/docs/zh-CN/next/security-encryption.html   |  2 +-
 .../docs/zh-CN/next/security-encryption/index.html |  2 +-
 content/docs/zh-CN/next/security-extending.html    |  2 +-
 .../docs/zh-CN/next/security-extending/index.html  |  2 +-
 content/docs/zh-CN/next/security-overview.html     |  2 +-
 .../docs/zh-CN/next/security-overview/index.html   |  2 +-
 .../zh-CN/next/security-tls-authentication.html    |  2 +-
 .../next/security-tls-authentication/index.html    |  2 +-
 .../docs/zh-CN/next/security-tls-transport.html    |  2 +-
 .../zh-CN/next/security-tls-transport/index.html   |  2 +-
 content/docs/zh-CN/next/security-token-admin.html  |  2 +-
 .../zh-CN/next/security-token-admin/index.html     |  2 +-
 content/docs/zh-CN/next/security-token-client.html |  2 +-
 .../zh-CN/next/security-token-client/index.html    |  2 +-
 .../zh-CN/next/sql-deployment-configurations.html  |  2 +-
 .../next/sql-deployment-configurations/index.html  |  2 +-
 content/docs/zh-CN/next/sql-getting-started.html   |  2 +-
 .../docs/zh-CN/next/sql-getting-started/index.html |  2 +-
 content/docs/zh-CN/next/sql-overview.html          |  2 +-
 content/docs/zh-CN/next/sql-overview/index.html    |  2 +-
 content/docs/zh-CN/next/standalone-docker.html     |  2 +-
 .../docs/zh-CN/next/standalone-docker/index.html   |  2 +-
 content/docs/zh-CN/next/standalone.html            |  2 +-
 content/docs/zh-CN/next/standalone/index.html      |  2 +-
 content/docs/zh-CN/reference-configuration.html    | 54 +++++++++---------
 .../docs/zh-CN/reference-configuration/index.html  | 54 +++++++++---------
 content/swagger/swagger.json                       | 38 ++++++-------
 245 files changed, 1233 insertions(+), 1233 deletions(-)

diff --git a/content/docs/zh-CN/2.1.0-incubating/admin-api-partitioned-topics.html b/content/docs/zh-CN/2.1.0-incubating/admin-api-partitioned-topics.html
index b3dda8f..67be6c5 100644
--- a/content/docs/zh-CN/2.1.0-incubating/admin-api-partitioned-topics.html
+++ b/content/docs/zh-CN/2.1.0-incubating/admin-api-partitioned-topics.html
@@ -74,9 +74,9 @@
 <p>In all of the instructions and commands below, the topic name structure is:</p>
 <pre><code class="hljs css language-shell">persistent://tenant/namespace/topic
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="partitioned-topics-资源"></a><a href="#partitioned-topics-资源" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
+<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. [...]
 <h3><a class="anchor" aria-hidden="true" id="创建"></a><a href="#创建" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>在Pulsar中, Partitioned topics 必须被显示的创建. 创建新的partitioned topic时, 你需要提供topic的名称以及所需的partition的数量.</p>
+<p>在 Pulsar 中, 必须显式的创建分区主题。创建新的分区主题时,您需要提供主题的名称以及所需的分区的数量。</p>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
 <p>你可以使用<a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin#create-partitioned-topic"><code>create-partitioned-topic</code></a>命令创建partitioned topic,并指定topic的名字;使用<code>-p</code> 或 <code>--partitions</code>标志指定分区数。 这里有一个示例:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin topics create-partitioned-topic \</span>
@@ -312,7 +312,7 @@ persistent://tenant/namespace/topic2
 <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.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/admin-api-schemas"><span>Schema</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-资源">Partitioned topics 资源</a>< [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/admin-api-schemas"><span>Schema</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 [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.1.0-incubating/admin-api-partitioned-topics/index.html b/content/docs/zh-CN/2.1.0-incubating/admin-api-partitioned-topics/index.html
index b3dda8f..67be6c5 100644
--- a/content/docs/zh-CN/2.1.0-incubating/admin-api-partitioned-topics/index.html
+++ b/content/docs/zh-CN/2.1.0-incubating/admin-api-partitioned-topics/index.html
@@ -74,9 +74,9 @@
 <p>In all of the instructions and commands below, the topic name structure is:</p>
 <pre><code class="hljs css language-shell">persistent://tenant/namespace/topic
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="partitioned-topics-资源"></a><a href="#partitioned-topics-资源" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
+<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. [...]
 <h3><a class="anchor" aria-hidden="true" id="创建"></a><a href="#创建" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>在Pulsar中, Partitioned topics 必须被显示的创建. 创建新的partitioned topic时, 你需要提供topic的名称以及所需的partition的数量.</p>
+<p>在 Pulsar 中, 必须显式的创建分区主题。创建新的分区主题时,您需要提供主题的名称以及所需的分区的数量。</p>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
 <p>你可以使用<a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin#create-partitioned-topic"><code>create-partitioned-topic</code></a>命令创建partitioned topic,并指定topic的名字;使用<code>-p</code> 或 <code>--partitions</code>标志指定分区数。 这里有一个示例:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin topics create-partitioned-topic \</span>
@@ -312,7 +312,7 @@ persistent://tenant/namespace/topic2
 <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.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/admin-api-schemas"><span>Schema</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-资源">Partitioned topics 资源</a>< [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/admin-api-schemas"><span>Schema</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 [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.1.0-incubating/administration-proxy.html b/content/docs/zh-CN/2.1.0-incubating/administration-proxy.html
index 4c79924..c96ceb9 100644
--- a/content/docs/zh-CN/2.1.0-incubating/administration-proxy.html
+++ b/content/docs/zh-CN/2.1.0-incubating/administration-proxy.html
@@ -95,30 +95,30 @@ $ bin/pulsar proxy \
 <tr><th>Name</th><th>说明:</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td>zookeeperServers</td><td>The ZooKeeper quorum connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper session timeout (in milliseconds)</td><td>30000</td></tr>
-<tr><td>servicePort</td><td>The port to use for server binary Protobuf requests</td><td>6650</td></tr>
-<tr><td>servicePortTls</td><td>The port to use to server binary Protobuf TLS requests</td><td>6651</td></tr>
-<tr><td>statusFilePath</td><td>Path for the file used to determine the rotation status for the proxy instance when responding to service discovery health checks</td><td></td></tr>
-<tr><td>authenticationEnabled</td><td>Whether authentication is enabled for the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authenticationProviders</td><td>Authentication provider name list (a comma-separated list of class names)</td><td></td></tr>
-<tr><td>authorizationEnabled</td><td>Whether authorization is enforced by the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authorizationProvider</td><td>Authorization provider as a fully qualified class name</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
-<tr><td>brokerClientAuthenticationPlugin</td><td>The authentication plugin used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientAuthenticationParameters</td><td>The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientTrustCertsFilePath</td><td>The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>superUserRoles</td><td>Role names that are treated as “super-users,” meaning that they will be able to perform all admin</td><td></td></tr>
-<tr><td>forwardAuthorizationCredentials</td><td>Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.</td><td>false</td></tr>
-<tr><td>maxConcurrentInboundConnections</td><td>Max concurrent inbound connections. The proxy will reject requests beyond that.</td><td>10000</td></tr>
-<tr><td>maxConcurrentLookupRequests</td><td>Max concurrent outbound connections. The proxy will error out requests beyond that.</td><td>10000</td></tr>
-<tr><td>tlsEnabledInProxy</td><td>Whether TLS is enabled for the proxy</td><td>false</td></tr>
-<tr><td>tlsEnabledWithBroker</td><td>Whether TLS is enabled when communicating with Pulsar brokers</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
-<tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate pem file</td><td></td></tr>
-<tr><td>tlsHostnameVerificationEnabled</td><td>Whether the hostname is validated when the proxy creates a TLS connection with brokers</td><td>false</td></tr>
-<tr><td>tlsRequireTrustedClientCertOnConnect</td><td>Whether client certificates are required for TLS. Connections are rejected if the client certificate isn’t trusted.</td><td>false</td></tr>
+<tr><td>zookeeperServers</td><td>ZooKeeper仲裁连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper会话超时(以毫秒为单位)</td><td>30000</td></tr>
+<tr><td>servicePort</td><td>用于服务器二进制Protobuf请求的端口</td><td>6650</td></tr>
+<tr><td>servicePortTls</td><td>用于服务器二进制Protobuf TLS请求的端口</td><td>6651</td></tr>
+<tr><td>statusFilePath</td><td>在响应服务发现健康检查时,用于确定代理实例的轮换状态的文件的路径</td><td></td></tr>
+<tr><td>authenticationEnabled</td><td>是否为Pulsar代理启用身份验证</td><td>false</td></tr>
+<tr><td>authenticationProviders</td><td>身份验证提供者名称列表(以逗号分隔的类名列表)</td><td></td></tr>
+<tr><td>authorizationEnabled</td><td>是否由Pulsar代理强制执行授权</td><td>false</td></tr>
+<tr><td>authorizationProvider</td><td>授权提供程序的完全限定类名</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
+<tr><td>brokerClientAuthenticationPlugin</td><td>Pulsar代理使用的身份验证插件,用于对Pulsar brokers进行身份验证</td><td></td></tr>
+<tr><td>brokerClientAuthenticationParameters</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的参数</td><td></td></tr>
+<tr><td>brokerClientTrustCertsFilePath</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的可信证书的路径</td><td></td></tr>
+<tr><td>superUserRoles</td><td>“超级用户”的角色名,这意味着它们将能够执行所有管理</td><td></td></tr>
+<tr><td>forwardAuthorizationCredentials</td><td>客户端授权凭据是否转发给broker以进行重新授权。必须通过AuthenticationEnabled=true启用身份验证才能生效。</td><td>false</td></tr>
+<tr><td>maxConcurrentInboundConnections</td><td>最大进站并发连接数, 代理将拒绝超出此范围的请求。</td><td>10000</td></tr>
+<tr><td>maxConcurrentLookupRequests</td><td>最大出站并发连接数。代理将错误地输出超过此范围的请求。</td><td>10000</td></tr>
+<tr><td>tlsEnabledInProxy</td><td>是否为代理启用TLS</td><td>false</td></tr>
+<tr><td>tlsEnabledWithBroker</td><td>与Pulsar Brokers通信时是否启用TLS</td><td>false</td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
+<tr><td>tlsTrustCertsFilePath</td><td>受信任的TLS证书pem文件的路径</td><td></td></tr>
+<tr><td>tlsHostnameVerificationEnabled</td><td>当代理与brokers建立TLS连接时是否验证主机名</td><td>false</td></tr>
+<tr><td>tlsRequireTrustedClientCertOnConnect</td><td>TLS是否需要客户端证书。如果客户端证书不受信任,连接将被拒绝。</td><td>false</td></tr>
 </tbody>
 </table>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/administration-load-distribution"><span class="arrow-prev">← </span><span>Load distribution</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/security-overview"><span>概述</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#running-the-proxy">Running the proxy</a></li><li><a href [...]
diff --git a/content/docs/zh-CN/2.1.0-incubating/administration-proxy/index.html b/content/docs/zh-CN/2.1.0-incubating/administration-proxy/index.html
index 4c79924..c96ceb9 100644
--- a/content/docs/zh-CN/2.1.0-incubating/administration-proxy/index.html
+++ b/content/docs/zh-CN/2.1.0-incubating/administration-proxy/index.html
@@ -95,30 +95,30 @@ $ bin/pulsar proxy \
 <tr><th>Name</th><th>说明:</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td>zookeeperServers</td><td>The ZooKeeper quorum connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper session timeout (in milliseconds)</td><td>30000</td></tr>
-<tr><td>servicePort</td><td>The port to use for server binary Protobuf requests</td><td>6650</td></tr>
-<tr><td>servicePortTls</td><td>The port to use to server binary Protobuf TLS requests</td><td>6651</td></tr>
-<tr><td>statusFilePath</td><td>Path for the file used to determine the rotation status for the proxy instance when responding to service discovery health checks</td><td></td></tr>
-<tr><td>authenticationEnabled</td><td>Whether authentication is enabled for the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authenticationProviders</td><td>Authentication provider name list (a comma-separated list of class names)</td><td></td></tr>
-<tr><td>authorizationEnabled</td><td>Whether authorization is enforced by the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authorizationProvider</td><td>Authorization provider as a fully qualified class name</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
-<tr><td>brokerClientAuthenticationPlugin</td><td>The authentication plugin used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientAuthenticationParameters</td><td>The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientTrustCertsFilePath</td><td>The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>superUserRoles</td><td>Role names that are treated as “super-users,” meaning that they will be able to perform all admin</td><td></td></tr>
-<tr><td>forwardAuthorizationCredentials</td><td>Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.</td><td>false</td></tr>
-<tr><td>maxConcurrentInboundConnections</td><td>Max concurrent inbound connections. The proxy will reject requests beyond that.</td><td>10000</td></tr>
-<tr><td>maxConcurrentLookupRequests</td><td>Max concurrent outbound connections. The proxy will error out requests beyond that.</td><td>10000</td></tr>
-<tr><td>tlsEnabledInProxy</td><td>Whether TLS is enabled for the proxy</td><td>false</td></tr>
-<tr><td>tlsEnabledWithBroker</td><td>Whether TLS is enabled when communicating with Pulsar brokers</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
-<tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate pem file</td><td></td></tr>
-<tr><td>tlsHostnameVerificationEnabled</td><td>Whether the hostname is validated when the proxy creates a TLS connection with brokers</td><td>false</td></tr>
-<tr><td>tlsRequireTrustedClientCertOnConnect</td><td>Whether client certificates are required for TLS. Connections are rejected if the client certificate isn’t trusted.</td><td>false</td></tr>
+<tr><td>zookeeperServers</td><td>ZooKeeper仲裁连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper会话超时(以毫秒为单位)</td><td>30000</td></tr>
+<tr><td>servicePort</td><td>用于服务器二进制Protobuf请求的端口</td><td>6650</td></tr>
+<tr><td>servicePortTls</td><td>用于服务器二进制Protobuf TLS请求的端口</td><td>6651</td></tr>
+<tr><td>statusFilePath</td><td>在响应服务发现健康检查时,用于确定代理实例的轮换状态的文件的路径</td><td></td></tr>
+<tr><td>authenticationEnabled</td><td>是否为Pulsar代理启用身份验证</td><td>false</td></tr>
+<tr><td>authenticationProviders</td><td>身份验证提供者名称列表(以逗号分隔的类名列表)</td><td></td></tr>
+<tr><td>authorizationEnabled</td><td>是否由Pulsar代理强制执行授权</td><td>false</td></tr>
+<tr><td>authorizationProvider</td><td>授权提供程序的完全限定类名</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
+<tr><td>brokerClientAuthenticationPlugin</td><td>Pulsar代理使用的身份验证插件,用于对Pulsar brokers进行身份验证</td><td></td></tr>
+<tr><td>brokerClientAuthenticationParameters</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的参数</td><td></td></tr>
+<tr><td>brokerClientTrustCertsFilePath</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的可信证书的路径</td><td></td></tr>
+<tr><td>superUserRoles</td><td>“超级用户”的角色名,这意味着它们将能够执行所有管理</td><td></td></tr>
+<tr><td>forwardAuthorizationCredentials</td><td>客户端授权凭据是否转发给broker以进行重新授权。必须通过AuthenticationEnabled=true启用身份验证才能生效。</td><td>false</td></tr>
+<tr><td>maxConcurrentInboundConnections</td><td>最大进站并发连接数, 代理将拒绝超出此范围的请求。</td><td>10000</td></tr>
+<tr><td>maxConcurrentLookupRequests</td><td>最大出站并发连接数。代理将错误地输出超过此范围的请求。</td><td>10000</td></tr>
+<tr><td>tlsEnabledInProxy</td><td>是否为代理启用TLS</td><td>false</td></tr>
+<tr><td>tlsEnabledWithBroker</td><td>与Pulsar Brokers通信时是否启用TLS</td><td>false</td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
+<tr><td>tlsTrustCertsFilePath</td><td>受信任的TLS证书pem文件的路径</td><td></td></tr>
+<tr><td>tlsHostnameVerificationEnabled</td><td>当代理与brokers建立TLS连接时是否验证主机名</td><td>false</td></tr>
+<tr><td>tlsRequireTrustedClientCertOnConnect</td><td>TLS是否需要客户端证书。如果客户端证书不受信任,连接将被拒绝。</td><td>false</td></tr>
 </tbody>
 </table>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/administration-load-distribution"><span class="arrow-prev">← </span><span>Load distribution</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/security-overview"><span>概述</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#running-the-proxy">Running the proxy</a></li><li><a href [...]
diff --git a/content/docs/zh-CN/2.1.0-incubating/concepts-messaging.html b/content/docs/zh-CN/2.1.0-incubating/concepts-messaging.html
index 73eda89..66edf9c 100644
--- a/content/docs/zh-CN/2.1.0-incubating/concepts-messaging.html
+++ b/content/docs/zh-CN/2.1.0-incubating/concepts-messaging.html
@@ -254,9 +254,9 @@ Consumer someTopicsConsumer = pulsarClient.subscribe(someTopicsInNamespace, "sub
 </table>
 <p>这些默认的模式之外,你还可以创建客制化的路由模式,如果你在使用<a href="client-libraries-java.md">Java client</a>,可以通过实现MessageRouter接口来做客制化。</p>
 <h2><a class="anchor" aria-hidden="true" id="非持久topic"></a><a href="#非持久topic" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>默认的,Pulsar保存<em>所有</em>没有确认的消息到多个<a href="concepts-architecture-overview.md#persistent-storage">BookKeeper</a>的bookies中(存储节点)。持久topic的消息数据可以在broker重启或者订阅者出问题的情况下存活下来。 Data for messages on persistent topics can thus survive broker restarts and subscriber failover.</p>
-<p>Pulsar also, however, supports <strong>non-persistent topics</strong>, which are topics on which messages are <em>never</em> persisted to disk and live only in memory. Pulsar也提供了非持久topic。非持久topic的消息不会被保存在硬盘上,只存活于内存中。当使用非持久topic分发时,杀掉Pulsar的broker或者关闭订阅者,此topic( non-persistent))上所有的瞬时消息都会丢失,意味着客户端可能会遇到消息缺失。</p>
-<p>Non-persistent topics have names of this form (note the <code>non-persistent</code> in the name):</p>
+<p>默认的,Pulsar保存<em>所有</em>没有确认的消息到多个<a href="concepts-architecture-overview.md#persistent-storage">BookKeeper</a>的bookies中(存储节点)。持久topic的消息数据可以在broker重启或者订阅者出问题的情况下存活下来。 因此,持久性主题上的消息数据可以在 broker 重启和订阅者故障转移之后继续存在。</p>
+<p>但是,Pulsar还支持<strong>非持久性主题</strong>,这些主题的消息<em>从不</em>持久存储到磁盘,只存在于内存中。 Pulsar也提供了非持久topic。非持久topic的消息不会被保存在硬盘上,只存活于内存中。当使用非持久topic分发时,杀掉Pulsar的broker或者关闭订阅者,此topic( non-persistent))上所有的瞬时消息都会丢失,意味着客户端可能会遇到消息缺失。</p>
+<p>非持久性主题具有这种形式的名称(注意名称中的 <code>non-persistent</code>):</p>
 <pre><code class="hljs css language-http">non-persistent://tenant/namespace/topic
 </code></pre>
 <blockquote>
diff --git a/content/docs/zh-CN/2.1.0-incubating/concepts-messaging/index.html b/content/docs/zh-CN/2.1.0-incubating/concepts-messaging/index.html
index 73eda89..66edf9c 100644
--- a/content/docs/zh-CN/2.1.0-incubating/concepts-messaging/index.html
+++ b/content/docs/zh-CN/2.1.0-incubating/concepts-messaging/index.html
@@ -254,9 +254,9 @@ Consumer someTopicsConsumer = pulsarClient.subscribe(someTopicsInNamespace, "sub
 </table>
 <p>这些默认的模式之外,你还可以创建客制化的路由模式,如果你在使用<a href="client-libraries-java.md">Java client</a>,可以通过实现MessageRouter接口来做客制化。</p>
 <h2><a class="anchor" aria-hidden="true" id="非持久topic"></a><a href="#非持久topic" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>默认的,Pulsar保存<em>所有</em>没有确认的消息到多个<a href="concepts-architecture-overview.md#persistent-storage">BookKeeper</a>的bookies中(存储节点)。持久topic的消息数据可以在broker重启或者订阅者出问题的情况下存活下来。 Data for messages on persistent topics can thus survive broker restarts and subscriber failover.</p>
-<p>Pulsar also, however, supports <strong>non-persistent topics</strong>, which are topics on which messages are <em>never</em> persisted to disk and live only in memory. Pulsar也提供了非持久topic。非持久topic的消息不会被保存在硬盘上,只存活于内存中。当使用非持久topic分发时,杀掉Pulsar的broker或者关闭订阅者,此topic( non-persistent))上所有的瞬时消息都会丢失,意味着客户端可能会遇到消息缺失。</p>
-<p>Non-persistent topics have names of this form (note the <code>non-persistent</code> in the name):</p>
+<p>默认的,Pulsar保存<em>所有</em>没有确认的消息到多个<a href="concepts-architecture-overview.md#persistent-storage">BookKeeper</a>的bookies中(存储节点)。持久topic的消息数据可以在broker重启或者订阅者出问题的情况下存活下来。 因此,持久性主题上的消息数据可以在 broker 重启和订阅者故障转移之后继续存在。</p>
+<p>但是,Pulsar还支持<strong>非持久性主题</strong>,这些主题的消息<em>从不</em>持久存储到磁盘,只存在于内存中。 Pulsar也提供了非持久topic。非持久topic的消息不会被保存在硬盘上,只存活于内存中。当使用非持久topic分发时,杀掉Pulsar的broker或者关闭订阅者,此topic( non-persistent))上所有的瞬时消息都会丢失,意味着客户端可能会遇到消息缺失。</p>
+<p>非持久性主题具有这种形式的名称(注意名称中的 <code>non-persistent</code>):</p>
 <pre><code class="hljs css language-http">non-persistent://tenant/namespace/topic
 </code></pre>
 <blockquote>
diff --git a/content/docs/zh-CN/2.1.0-incubating/cookbooks-deduplication.html b/content/docs/zh-CN/2.1.0-incubating/cookbooks-deduplication.html
index 8ad65d9..5a67922 100644
--- a/content/docs/zh-CN/2.1.0-incubating/cookbooks-deduplication.html
+++ b/content/docs/zh-CN/2.1.0-incubating/cookbooks-deduplication.html
@@ -159,7 +159,7 @@ Producer producer;
 
 Result result = client.createProducer(topic, producerConfig, producer);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/cookbooks-compaction"><span class="arrow-prev">← </span><span>Topic compaction</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/cookbooks-non-persistent"><span>Non-persistent messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</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-compaction"><span class="arrow-prev">← </span><span>Topic compaction</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/cookbooks-non-persistent"><span>非持久化消息</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a href="#configura [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.1.0-incubating/cookbooks-deduplication/index.html b/content/docs/zh-CN/2.1.0-incubating/cookbooks-deduplication/index.html
index 8ad65d9..5a67922 100644
--- a/content/docs/zh-CN/2.1.0-incubating/cookbooks-deduplication/index.html
+++ b/content/docs/zh-CN/2.1.0-incubating/cookbooks-deduplication/index.html
@@ -159,7 +159,7 @@ Producer producer;
 
 Result result = client.createProducer(topic, producerConfig, producer);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/cookbooks-compaction"><span class="arrow-prev">← </span><span>Topic compaction</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/cookbooks-non-persistent"><span>Non-persistent messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</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-compaction"><span class="arrow-prev">← </span><span>Topic compaction</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/cookbooks-non-persistent"><span>非持久化消息</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a href="#configura [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.1.0-incubating/cookbooks-non-persistent.html b/content/docs/zh-CN/2.1.0-incubating/cookbooks-non-persistent.html
index 82bbe34..c662a1e 100644
--- a/content/docs/zh-CN/2.1.0-incubating/cookbooks-non-persistent.html
+++ b/content/docs/zh-CN/2.1.0-incubating/cookbooks-non-persistent.html
@@ -1,5 +1,5 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Non-persistent messaging · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;&lt;strong&gt;Non-persistent topics&lt;/strong&gt; are Pulsar topics in which message data is &lt;em&gt;never&lt;/em&gt; &lt;a href=&quot;/docs/zh-CN/2.1.0-incubating/concepts-arch [...]
-"/><meta name="docsearch:version" content="2.1.0-incubating"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Non-persistent messaging · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;&lt;strong&gt;Non-persistent topics&lt;/strong&gt; are Pulsar topics in which message data is &lt;em&gt;never&lt;/em&gt; &lt;a href=&quot [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Non-persistent messaging · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;&lt;strong&gt;非持久性主题&lt;/strong&gt;也是 Pulsar 的一种主题,其中消息数据&lt;em&gt;永远不会&lt;/em&gt;&lt;a href=&quot;/docs/zh-CN/2.1.0-incubating/concepts-architecture-overview#persistent-storage&qu [...]
+"/><meta name="docsearch:version" content="2.1.0-incubating"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Non-persistent messaging · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;&lt;strong&gt;非持久性主题&lt;/strong&gt;也是 Pulsar 的一种主题,其中消息数据&lt;em&gt;永远不会&lt;/em&gt;&lt;a href=&quot;/docs/zh-CN/2.1.0-incubating/concepts- [...]
 "/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://pulsar.incubator.apache.org/img/pulsar.svg"/><link rel="shortcut icon" href="/img/pulsar.ico"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><link rel="alternate" type="application/atom+xml" href="https://pulsar.incubator.apache.org/blog/atom.x [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
@@ -70,45 +70,45 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Non-persistent messaging</h1></header><article><div><span><p><strong>Non-persistent topics</strong> are Pulsar topics in which message data is <em>never</em> <a href="/docs/zh-CN/2.1.0-incu [...]
+        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Non-persistent messaging</h1></header><article><div><span><p><strong>非持久性主题</strong>也是 Pulsar 的一种主题,其中消息数据<em>永远不会</em><a href="/docs/zh-CN/2.1.0-incubating/concepts-architecture-overview#p [...]
 <ul>
-<li>A basic <a href="#overview">conceptual overview</a> of non-persistent topics</li>
-<li>Information about <a href="#configuration">configurable parameters</a> related to non-persistent topics</li>
-<li>A guide to the <a href="#cli">CLI interface</a> for managing non-persistent topics</li>
+<li>非持久性主题的基本<a href="#overview">概念概述</a></li>
+<li>非持久性主题相关的<a href="#configuration">可配置参数</a>信息</li>
+<li>用于管理非持久性主题<a href="#cli"> CLI(命令行工具)</a>指南</li>
 </ul>
 <h2><a class="anchor" aria-hidden="true" id="概述"></a><a href="#概述" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>By default, Pulsar persistently stores <em>all</em> unacknowledged messages on multiple <a href="#persistent-storage">BookKeeper</a> bookies (storage nodes). Data for messages on persistent topics can thus survive broker restarts and subscriber failover.</p>
-<p>Pulsar also, however, supports <strong>non-persistent topics</strong>, which are topics on which messages are <em>never</em> persisted to disk and live only in memory. When using non-persistent delivery, killing a Pulsar <a href="/docs/zh-CN/2.1.0-incubating/reference-terminology#broker">broker</a> or disconnecting a subscriber to a topic means that all in-transit messages are lost on that (non-persistent) topic, meaning that clients may see message loss.</p>
-<p>Non-persistent topics have names of this form (note the <code>non-persistent</code> in the name):</p>
+<p>默认情况下,Pulsar会在多个<a href="#persistent-storage"> BookKeeper </a> bookies(存储节点)上持续存储<em>所有</em>未确认的消息。 因此,持久性主题上的消息数据可以在 broker 重启和订阅者故障转移之后继续存在。</p>
+<p>但是,Pulsar还支持<strong>非持久性主题</strong>,这些主题的消息<em>从不</em>持久存储到磁盘,只存在于内存中。 使用非持久性主题传输时,当某个 Pulsar <a href="/docs/zh-CN/2.1.0-incubating/reference-terminology#broker">broker</a>宕机,或断开订阅者与某个主题(非持久性)的连接意味着所有正在传输的消息都会丢失,客户端也可能会看到消息的丢失。</p>
+<p>非持久性主题具有这种形式的名称(注意名称中的 <code>non-persistent</code>):</p>
 <pre><code class="hljs css language-http">non-persistent://tenant/namespace/topic
 </code></pre>
 <blockquote>
-<p>For more high-level information about non-persistent topics, see the <a href="/docs/zh-CN/2.1.0-incubating/concepts-messaging#non-persistent-topics">Concepts and Architecture</a> documentation.</p>
+<p>有关非持久性主题的更多高级信息,请参见 <a href="/docs/zh-CN/2.1.0-incubating/concepts-messaging#non-persistent-topics">Concepts and Architecture</a> 文档。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="using"></a><a href="#using" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
+<h2><a class="anchor" aria-hidden="true" id="使用"></a><a href="#使用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <blockquote>
-<p>In order to use non-persistent topics, they must be <a href="#enabling">enabled</a> in your Pulsar broker configuration.</p>
+<p>要使用非持久性主题,必须在 Pulsar broker 配置中<a href="#enabling">启用</a>。</p>
 </blockquote>
-<p>In order to use non-persistent topics, you only need to differentiate them by name when interacting with them. This <a href="/docs/zh-CN/2.1.0-incubating/reference-cli-tools#pulsar-client-produce"><code>pulsar-client produce</code></a> command, for example, would produce one message on a non-persistent topic in a standalone cluster:</p>
+<p>为了使用非持久性主题,你只需要在与它们交互时按名称区分它们。 例如,此<a href="/docs/zh-CN/2.1.0-incubating/reference-cli-tools#pulsar-client-produce"> <code>pulsar-client produce</code> </a>命令将在单集群的非持久性主题上生产一条消息:</p>
 <pre><code class="hljs css language-bash">$ bin/pulsar-client produce non-persistent://public/default/example-np-topic \
   --num-produce 1 \
   --messages <span class="hljs-string">"This message will be stored only in memory"</span>
 </code></pre>
 <blockquote>
-<p>For a more thorough guide to non-persistent topics from an administrative perspective, see the <a href="/docs/zh-CN/2.1.0-incubating/admin-api-non-persistent-topics">Non-persistent topics</a> guide.</p>
+<p>要从管理的角度获得关于非持久性主题的更详细的指南,请参阅<a href="/docs/zh-CN/2.1.0-incubating/admin-api-non-persistent-topics">非持久性主题</a>指南。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="enabling"></a><a href="#enabling" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 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>In order to enable non-persistent topics in a Pulsar broker, the <a href="/docs/zh-CN/2.1.0-incubating/reference-configuration#broker-enableNonPersistentTopics"><code>enableNonPersistentTopics</code></a> must be set to <code>true</code>. This is the default, and so you won't need to take any action to enable non-persistent messaging.</p>
+<h2><a class="anchor" aria-hidden="true" id="启用"></a><a href="#启用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>为了在 Pulsar broker 中启用非持久性主题,必须将 <a href="/docs/zh-CN/2.1.0-incubating/reference-configuration#broker-enableNonPersistentTopics"><code>enableNonPersistentTopics</code></a> 设置为<code>true</code>。 你无需采取任何操作来启用非持久性消息传递,因为这是默认设置。</p>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="configuration-for-standalone-mode"></a><a href="#configuration-for-standalone-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.5S1 [...]
-<p>If you're running Pulsar in standalone mode, the same configurable parameters are available but in the <a href="/docs/zh-CN/2.1.0-incubating/reference-configuration#standalone"><code>standalone.conf</code></a> configuration file.</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- [...]
+<p>如果你在独立模式下运行 Pulsar,则可以在<a href="/docs/zh-CN/2.1.0-incubating/reference-configuration#standalone"> <code>standalone.conf</code> </a>配置文件中使用相同的可配置参数。</p>
 </blockquote>
-<p>If you'd like to enable <em>only</em> non-persistent topics in a broker, you can set the <a href="/docs/zh-CN/2.1.0-incubating/reference-configuration#broker-enablePersistentTopics"><code>enablePersistentTopics</code></a> parameter to <code>false</code> and the <code>enableNonPersistentTopics</code> parameter to <code>true</code>.</p>
-<h2><a class="anchor" aria-hidden="true" id="managing-with-cli"></a><a href="#managing-with-cli" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
-<p>Non-persistent topics can be managed using the <a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin#non-persistent"><code>pulsar-admin non-persistent</code></a> command-line interface. With that interface you can perform actions like <a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin#non-persistent-create-partitioned-topic">create a partitioned non-persistent topic</a>, get <a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin#non-persistent-stats">stats</a> for a non-persistent topic, <a  [...]
-<h2><a class="anchor" aria-hidden="true" id="using-with-pulsar-clients"></a><a href="#using-with-pulsar-clients" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c [...]
-<p>You shouldn't need to make any changes to your Pulsar clients to use non-persistent messaging beyond making sure that you use proper <a href="#using">topic names</a> with <code>non-persistent</code> as the topic type.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/cookbooks-deduplication"><span class="arrow-prev">← </span><span>Message deduplication</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/cookbooks-partitioned"><span>分区Topic</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#概述">概述</a></li><li><a href="#using">Using</a></li><l [...]
+<p>如果你<em>只</em>想在 Broker 中启用非持久性主题,则可以将<a href="/docs/zh-CN/2.1.0-incubating/reference-configuration#broker-enablePersistentTopics">enablePersistentTopics</code></a>参数设置为<code>false</code>,将 <code>enableNonPersistentTopics</code>参数设置为<code>true</code>。</p>
+<h2><a class="anchor" aria-hidden="true" id="使用cli-命令行工具-管理"></a><a href="#使用cli-命令行工具-管理" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
+<p>可以使用<a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin#non-persistent"> <code>pulsar-admin non-persistent</code> </a>命令行管理非持久性主题。 使用命令行工具,你可以执行诸如<a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin#non-persistent-create-partitioned-topic">创建分区非持久性主题</a>,获取非持久主题的<a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin#non-persistent-stats">统计信息</a>,获取命名空间下的非持久主题<a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin">列表</a>等操作。</p>
+<h2><a class="anchor" aria-hidden="true" id="与pulsar客户端一起使用"></a><a href="#与pulsar客户端一起使用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 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>除了确保使用具有<code>非持久性</code>的正确<a href="#using">主题名称</a>作为主题类型之外,你不应该对 Pulsar 客户端进行任何更改以使用非持久性消息传递。</p>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/cookbooks-deduplication"><span class="arrow-prev">← </span><span>Message deduplication</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/cookbooks-partitioned"><span>分区Topic</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#概述">概述</a></li><li><a href="#使用">使用</a></li><li><a h [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.1.0-incubating/cookbooks-non-persistent/index.html b/content/docs/zh-CN/2.1.0-incubating/cookbooks-non-persistent/index.html
index 82bbe34..c662a1e 100644
--- a/content/docs/zh-CN/2.1.0-incubating/cookbooks-non-persistent/index.html
+++ b/content/docs/zh-CN/2.1.0-incubating/cookbooks-non-persistent/index.html
@@ -1,5 +1,5 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Non-persistent messaging · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;&lt;strong&gt;Non-persistent topics&lt;/strong&gt; are Pulsar topics in which message data is &lt;em&gt;never&lt;/em&gt; &lt;a href=&quot;/docs/zh-CN/2.1.0-incubating/concepts-arch [...]
-"/><meta name="docsearch:version" content="2.1.0-incubating"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Non-persistent messaging · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;&lt;strong&gt;Non-persistent topics&lt;/strong&gt; are Pulsar topics in which message data is &lt;em&gt;never&lt;/em&gt; &lt;a href=&quot [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Non-persistent messaging · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;&lt;strong&gt;非持久性主题&lt;/strong&gt;也是 Pulsar 的一种主题,其中消息数据&lt;em&gt;永远不会&lt;/em&gt;&lt;a href=&quot;/docs/zh-CN/2.1.0-incubating/concepts-architecture-overview#persistent-storage&qu [...]
+"/><meta name="docsearch:version" content="2.1.0-incubating"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Non-persistent messaging · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;&lt;strong&gt;非持久性主题&lt;/strong&gt;也是 Pulsar 的一种主题,其中消息数据&lt;em&gt;永远不会&lt;/em&gt;&lt;a href=&quot;/docs/zh-CN/2.1.0-incubating/concepts- [...]
 "/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://pulsar.incubator.apache.org/img/pulsar.svg"/><link rel="shortcut icon" href="/img/pulsar.ico"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><link rel="alternate" type="application/atom+xml" href="https://pulsar.incubator.apache.org/blog/atom.x [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
@@ -70,45 +70,45 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Non-persistent messaging</h1></header><article><div><span><p><strong>Non-persistent topics</strong> are Pulsar topics in which message data is <em>never</em> <a href="/docs/zh-CN/2.1.0-incu [...]
+        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Non-persistent messaging</h1></header><article><div><span><p><strong>非持久性主题</strong>也是 Pulsar 的一种主题,其中消息数据<em>永远不会</em><a href="/docs/zh-CN/2.1.0-incubating/concepts-architecture-overview#p [...]
 <ul>
-<li>A basic <a href="#overview">conceptual overview</a> of non-persistent topics</li>
-<li>Information about <a href="#configuration">configurable parameters</a> related to non-persistent topics</li>
-<li>A guide to the <a href="#cli">CLI interface</a> for managing non-persistent topics</li>
+<li>非持久性主题的基本<a href="#overview">概念概述</a></li>
+<li>非持久性主题相关的<a href="#configuration">可配置参数</a>信息</li>
+<li>用于管理非持久性主题<a href="#cli"> CLI(命令行工具)</a>指南</li>
 </ul>
 <h2><a class="anchor" aria-hidden="true" id="概述"></a><a href="#概述" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>By default, Pulsar persistently stores <em>all</em> unacknowledged messages on multiple <a href="#persistent-storage">BookKeeper</a> bookies (storage nodes). Data for messages on persistent topics can thus survive broker restarts and subscriber failover.</p>
-<p>Pulsar also, however, supports <strong>non-persistent topics</strong>, which are topics on which messages are <em>never</em> persisted to disk and live only in memory. When using non-persistent delivery, killing a Pulsar <a href="/docs/zh-CN/2.1.0-incubating/reference-terminology#broker">broker</a> or disconnecting a subscriber to a topic means that all in-transit messages are lost on that (non-persistent) topic, meaning that clients may see message loss.</p>
-<p>Non-persistent topics have names of this form (note the <code>non-persistent</code> in the name):</p>
+<p>默认情况下,Pulsar会在多个<a href="#persistent-storage"> BookKeeper </a> bookies(存储节点)上持续存储<em>所有</em>未确认的消息。 因此,持久性主题上的消息数据可以在 broker 重启和订阅者故障转移之后继续存在。</p>
+<p>但是,Pulsar还支持<strong>非持久性主题</strong>,这些主题的消息<em>从不</em>持久存储到磁盘,只存在于内存中。 使用非持久性主题传输时,当某个 Pulsar <a href="/docs/zh-CN/2.1.0-incubating/reference-terminology#broker">broker</a>宕机,或断开订阅者与某个主题(非持久性)的连接意味着所有正在传输的消息都会丢失,客户端也可能会看到消息的丢失。</p>
+<p>非持久性主题具有这种形式的名称(注意名称中的 <code>non-persistent</code>):</p>
 <pre><code class="hljs css language-http">non-persistent://tenant/namespace/topic
 </code></pre>
 <blockquote>
-<p>For more high-level information about non-persistent topics, see the <a href="/docs/zh-CN/2.1.0-incubating/concepts-messaging#non-persistent-topics">Concepts and Architecture</a> documentation.</p>
+<p>有关非持久性主题的更多高级信息,请参见 <a href="/docs/zh-CN/2.1.0-incubating/concepts-messaging#non-persistent-topics">Concepts and Architecture</a> 文档。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="using"></a><a href="#using" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
+<h2><a class="anchor" aria-hidden="true" id="使用"></a><a href="#使用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <blockquote>
-<p>In order to use non-persistent topics, they must be <a href="#enabling">enabled</a> in your Pulsar broker configuration.</p>
+<p>要使用非持久性主题,必须在 Pulsar broker 配置中<a href="#enabling">启用</a>。</p>
 </blockquote>
-<p>In order to use non-persistent topics, you only need to differentiate them by name when interacting with them. This <a href="/docs/zh-CN/2.1.0-incubating/reference-cli-tools#pulsar-client-produce"><code>pulsar-client produce</code></a> command, for example, would produce one message on a non-persistent topic in a standalone cluster:</p>
+<p>为了使用非持久性主题,你只需要在与它们交互时按名称区分它们。 例如,此<a href="/docs/zh-CN/2.1.0-incubating/reference-cli-tools#pulsar-client-produce"> <code>pulsar-client produce</code> </a>命令将在单集群的非持久性主题上生产一条消息:</p>
 <pre><code class="hljs css language-bash">$ bin/pulsar-client produce non-persistent://public/default/example-np-topic \
   --num-produce 1 \
   --messages <span class="hljs-string">"This message will be stored only in memory"</span>
 </code></pre>
 <blockquote>
-<p>For a more thorough guide to non-persistent topics from an administrative perspective, see the <a href="/docs/zh-CN/2.1.0-incubating/admin-api-non-persistent-topics">Non-persistent topics</a> guide.</p>
+<p>要从管理的角度获得关于非持久性主题的更详细的指南,请参阅<a href="/docs/zh-CN/2.1.0-incubating/admin-api-non-persistent-topics">非持久性主题</a>指南。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="enabling"></a><a href="#enabling" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 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>In order to enable non-persistent topics in a Pulsar broker, the <a href="/docs/zh-CN/2.1.0-incubating/reference-configuration#broker-enableNonPersistentTopics"><code>enableNonPersistentTopics</code></a> must be set to <code>true</code>. This is the default, and so you won't need to take any action to enable non-persistent messaging.</p>
+<h2><a class="anchor" aria-hidden="true" id="启用"></a><a href="#启用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>为了在 Pulsar broker 中启用非持久性主题,必须将 <a href="/docs/zh-CN/2.1.0-incubating/reference-configuration#broker-enableNonPersistentTopics"><code>enableNonPersistentTopics</code></a> 设置为<code>true</code>。 你无需采取任何操作来启用非持久性消息传递,因为这是默认设置。</p>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="configuration-for-standalone-mode"></a><a href="#configuration-for-standalone-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.5S1 [...]
-<p>If you're running Pulsar in standalone mode, the same configurable parameters are available but in the <a href="/docs/zh-CN/2.1.0-incubating/reference-configuration#standalone"><code>standalone.conf</code></a> configuration file.</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- [...]
+<p>如果你在独立模式下运行 Pulsar,则可以在<a href="/docs/zh-CN/2.1.0-incubating/reference-configuration#standalone"> <code>standalone.conf</code> </a>配置文件中使用相同的可配置参数。</p>
 </blockquote>
-<p>If you'd like to enable <em>only</em> non-persistent topics in a broker, you can set the <a href="/docs/zh-CN/2.1.0-incubating/reference-configuration#broker-enablePersistentTopics"><code>enablePersistentTopics</code></a> parameter to <code>false</code> and the <code>enableNonPersistentTopics</code> parameter to <code>true</code>.</p>
-<h2><a class="anchor" aria-hidden="true" id="managing-with-cli"></a><a href="#managing-with-cli" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
-<p>Non-persistent topics can be managed using the <a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin#non-persistent"><code>pulsar-admin non-persistent</code></a> command-line interface. With that interface you can perform actions like <a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin#non-persistent-create-partitioned-topic">create a partitioned non-persistent topic</a>, get <a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin#non-persistent-stats">stats</a> for a non-persistent topic, <a  [...]
-<h2><a class="anchor" aria-hidden="true" id="using-with-pulsar-clients"></a><a href="#using-with-pulsar-clients" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c [...]
-<p>You shouldn't need to make any changes to your Pulsar clients to use non-persistent messaging beyond making sure that you use proper <a href="#using">topic names</a> with <code>non-persistent</code> as the topic type.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/cookbooks-deduplication"><span class="arrow-prev">← </span><span>Message deduplication</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/cookbooks-partitioned"><span>分区Topic</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#概述">概述</a></li><li><a href="#using">Using</a></li><l [...]
+<p>如果你<em>只</em>想在 Broker 中启用非持久性主题,则可以将<a href="/docs/zh-CN/2.1.0-incubating/reference-configuration#broker-enablePersistentTopics">enablePersistentTopics</code></a>参数设置为<code>false</code>,将 <code>enableNonPersistentTopics</code>参数设置为<code>true</code>。</p>
+<h2><a class="anchor" aria-hidden="true" id="使用cli-命令行工具-管理"></a><a href="#使用cli-命令行工具-管理" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
+<p>可以使用<a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin#non-persistent"> <code>pulsar-admin non-persistent</code> </a>命令行管理非持久性主题。 使用命令行工具,你可以执行诸如<a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin#non-persistent-create-partitioned-topic">创建分区非持久性主题</a>,获取非持久主题的<a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin#non-persistent-stats">统计信息</a>,获取命名空间下的非持久主题<a href="/docs/zh-CN/2.1.0-incubating/pulsar-admin">列表</a>等操作。</p>
+<h2><a class="anchor" aria-hidden="true" id="与pulsar客户端一起使用"></a><a href="#与pulsar客户端一起使用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 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>除了确保使用具有<code>非持久性</code>的正确<a href="#using">主题名称</a>作为主题类型之外,你不应该对 Pulsar 客户端进行任何更改以使用非持久性消息传递。</p>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/cookbooks-deduplication"><span class="arrow-prev">← </span><span>Message deduplication</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/cookbooks-partitioned"><span>分区Topic</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#概述">概述</a></li><li><a href="#使用">使用</a></li><li><a h [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.1.0-incubating/cookbooks-partitioned.html b/content/docs/zh-CN/2.1.0-incubating/cookbooks-partitioned.html
index c031893..4cb1d55 100644
--- a/content/docs/zh-CN/2.1.0-incubating/cookbooks-partitioned.html
+++ b/content/docs/zh-CN/2.1.0-incubating/cookbooks-partitioned.html
@@ -121,7 +121,7 @@ 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- [...]
 <p>您可以使用Pulsar的<a href="/docs/zh-CN/2.1.0-incubating/admin-api-overview"> admin API </a>来创建和管理<a href="/docs/zh-CN/2.1.0-incubating/admin-api-partitioned-topics">分区主题</a>。</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>Non-persistent messaging</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/cookbooks-retention-expiry"><span>Message retention and expiry</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#发布到分区主题">发布到分区主题</a><u [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/cookbooks-retention-expiry"><span>Message retention and expiry</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#发布到分区主题">发布到分区主题</a><ul class="toc-headi [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.1.0-incubating/cookbooks-partitioned/index.html b/content/docs/zh-CN/2.1.0-incubating/cookbooks-partitioned/index.html
index c031893..4cb1d55 100644
--- a/content/docs/zh-CN/2.1.0-incubating/cookbooks-partitioned/index.html
+++ b/content/docs/zh-CN/2.1.0-incubating/cookbooks-partitioned/index.html
@@ -121,7 +121,7 @@ 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- [...]
 <p>您可以使用Pulsar的<a href="/docs/zh-CN/2.1.0-incubating/admin-api-overview"> admin API </a>来创建和管理<a href="/docs/zh-CN/2.1.0-incubating/admin-api-partitioned-topics">分区主题</a>。</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>Non-persistent messaging</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/cookbooks-retention-expiry"><span>Message retention and expiry</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#发布到分区主题">发布到分区主题</a><u [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.0-incubating/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.0-incubating/cookbooks-retention-expiry"><span>Message retention and expiry</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#发布到分区主题">发布到分区主题</a><ul class="toc-headi [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.1.0-incubating/reference-configuration.html b/content/docs/zh-CN/2.1.0-incubating/reference-configuration.html
index 6af6d1a..a388a6a 100644
--- a/content/docs/zh-CN/2.1.0-incubating/reference-configuration.html
+++ b/content/docs/zh-CN/2.1.0-incubating/reference-configuration.html
@@ -170,7 +170,7 @@
 <tr><td>enableNonPersistentTopics</td><td>Whether non-persistent topics are enabled on the broker</td><td>true</td></tr>
 <tr><td>functionsWorkerEnabled</td><td>Whether the Pulsar Functions worker service is enabled in the broker</td><td>false</td></tr>
 <tr><td>zookeeperServers</td><td>Zookeeper quorum connection string</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
 <tr><td>brokerServicePort</td><td>Broker data port</td><td>6650</td></tr>
 <tr><td>brokerServicePortTls</td><td>Broker data port for TLS</td><td>6651</td></tr>
 <tr><td>webServicePort</td><td>Port to use to server HTTP request</td><td>8080</td></tr>
@@ -198,8 +198,8 @@
 <tr><td>statusFilePath</td><td>Path for the file used to determine the rotation status for the broker when responding to service discovery health checks</td><td></td></tr>
 <tr><td>preferLaterVersions</td><td>If true, (and ModularLoadManagerImpl is being used), the load manager will attempt to use only brokers running the latest software version (to minimize impact to bundles)</td><td>false</td></tr>
 <tr><td>tlsEnabled</td><td>Enable TLS</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
 <tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate file</td><td></td></tr>
 <tr><td>tlsAllowInsecureConnection</td><td>Accept untrusted TLS certificate from client</td><td>false</td></tr>
 <tr><td>maxUnackedMessagesPerConsumer</td><td>Max number of unacknowledged messages allowed to receive messages by a consumer on a shared subscription. Broker will stop sending messages to consumer once, this limit reaches until consumer starts acknowledging messages back. Using a value of 0, is disabling unackeMessage limit check and consumer can receive messages without any restriction</td><td>50000</td></tr>
@@ -261,7 +261,7 @@
 </thead>
 <tbody>
 <tr><td>zookeeperServers</td><td>Zookeeper quorum connection string (comma-separated)</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
 <tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper session timeout</td><td>30000</td></tr>
 <tr><td>servicePort</td><td>Port to use to server binary-proto request</td><td>6650</td></tr>
 <tr><td>servicePortTls</td><td>Port to use to server binary-proto-tls request</td><td>6651</td></tr>
@@ -273,8 +273,8 @@
 <tr><td>authorizationEnabled</td><td>Enforce authorization</td><td>false</td></tr>
 <tr><td>superUserRoles</td><td>Role names that are treated as “super-user”, meaning they will be able to do all admin operations and publish/consume from all topics (comma-separated)</td><td></td></tr>
 <tr><td>tlsEnabled</td><td>Enable TLS</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
 </tbody>
 </table>
 <h2><a class="anchor" aria-hidden="true" id="log4j"></a><a href="#log4j" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
@@ -327,7 +327,7 @@
 </thead>
 <tbody>
 <tr><td>zookeeperServers</td><td>The quorum connection string for local ZooKeeper</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
 <tr><td>brokerServicePort</td><td>The port on which the standalone broker listens for connections</td><td>6650</td></tr>
 <tr><td>webServicePort</td><td>THe port used by the standalone broker for HTTP requests</td><td>8080</td></tr>
 <tr><td>bindAddress</td><td>The hostname or IP address on which the standalone service binds</td><td>0.0.0.0</td></tr>
@@ -440,30 +440,30 @@
 <tr><th>Name</th><th>说明:</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td>zookeeperServers</td><td>The ZooKeeper quorum connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper session timeout (in milliseconds)</td><td>30000</td></tr>
-<tr><td>servicePort</td><td>The port to use for server binary Protobuf requests</td><td>6650</td></tr>
-<tr><td>servicePortTls</td><td>The port to use to server binary Protobuf TLS requests</td><td>6651</td></tr>
-<tr><td>statusFilePath</td><td>Path for the file used to determine the rotation status for the proxy instance when responding to service discovery health checks</td><td></td></tr>
-<tr><td>authenticationEnabled</td><td>Whether authentication is enabled for the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authenticationProviders</td><td>Authentication provider name list (a comma-separated list of class names)</td><td></td></tr>
-<tr><td>authorizationEnabled</td><td>Whether authorization is enforced by the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authorizationProvider</td><td>Authorization provider as a fully qualified class name</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
-<tr><td>brokerClientAuthenticationPlugin</td><td>The authentication plugin used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientAuthenticationParameters</td><td>The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientTrustCertsFilePath</td><td>The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>superUserRoles</td><td>Role names that are treated as “super-users,” meaning that they will be able to perform all admin</td><td></td></tr>
-<tr><td>forwardAuthorizationCredentials</td><td>Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.</td><td>false</td></tr>
-<tr><td>maxConcurrentInboundConnections</td><td>Max concurrent inbound connections. The proxy will reject requests beyond that.</td><td>10000</td></tr>
-<tr><td>maxConcurrentLookupRequests</td><td>Max concurrent outbound connections. The proxy will error out requests beyond that.</td><td>10000</td></tr>
-<tr><td>tlsEnabledInProxy</td><td>Whether TLS is enabled for the proxy</td><td>false</td></tr>
-<tr><td>tlsEnabledWithBroker</td><td>Whether TLS is enabled when communicating with Pulsar brokers</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
-<tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate pem file</td><td></td></tr>
-<tr><td>tlsHostnameVerificationEnabled</td><td>Whether the hostname is validated when the proxy creates a TLS connection with brokers</td><td>false</td></tr>
-<tr><td>tlsRequireTrustedClientCertOnConnect</td><td>Whether client certificates are required for TLS. Connections are rejected if the client certificate isn’t trusted.</td><td>false</td></tr>
+<tr><td>zookeeperServers</td><td>ZooKeeper仲裁连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper会话超时(以毫秒为单位)</td><td>30000</td></tr>
+<tr><td>servicePort</td><td>用于服务器二进制Protobuf请求的端口</td><td>6650</td></tr>
+<tr><td>servicePortTls</td><td>用于服务器二进制Protobuf TLS请求的端口</td><td>6651</td></tr>
+<tr><td>statusFilePath</td><td>在响应服务发现健康检查时,用于确定代理实例的轮换状态的文件的路径</td><td></td></tr>
+<tr><td>authenticationEnabled</td><td>是否为Pulsar代理启用身份验证</td><td>false</td></tr>
+<tr><td>authenticationProviders</td><td>身份验证提供者名称列表(以逗号分隔的类名列表)</td><td></td></tr>
+<tr><td>authorizationEnabled</td><td>是否由Pulsar代理强制执行授权</td><td>false</td></tr>
+<tr><td>authorizationProvider</td><td>授权提供程序的完全限定类名</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
+<tr><td>brokerClientAuthenticationPlugin</td><td>Pulsar代理使用的身份验证插件,用于对Pulsar brokers进行身份验证</td><td></td></tr>
+<tr><td>brokerClientAuthenticationParameters</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的参数</td><td></td></tr>
+<tr><td>brokerClientTrustCertsFilePath</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的可信证书的路径</td><td></td></tr>
+<tr><td>superUserRoles</td><td>“超级用户”的角色名,这意味着它们将能够执行所有管理</td><td></td></tr>
+<tr><td>forwardAuthorizationCredentials</td><td>客户端授权凭据是否转发给broker以进行重新授权。必须通过AuthenticationEnabled=true启用身份验证才能生效。</td><td>false</td></tr>
+<tr><td>maxConcurrentInboundConnections</td><td>最大进站并发连接数, 代理将拒绝超出此范围的请求。</td><td>10000</td></tr>
+<tr><td>maxConcurrentLookupRequests</td><td>最大出站并发连接数。代理将错误地输出超过此范围的请求。</td><td>10000</td></tr>
+<tr><td>tlsEnabledInProxy</td><td>是否为代理启用TLS</td><td>false</td></tr>
+<tr><td>tlsEnabledWithBroker</td><td>与Pulsar Brokers通信时是否启用TLS</td><td>false</td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
+<tr><td>tlsTrustCertsFilePath</td><td>受信任的TLS证书pem文件的路径</td><td></td></tr>
+<tr><td>tlsHostnameVerificationEnabled</td><td>当代理与brokers建立TLS连接时是否验证主机名</td><td>false</td></tr>
+<tr><td>tlsRequireTrustedClientCertOnConnect</td><td>TLS是否需要客户端证书。如果客户端证书不受信任,连接将被拒绝。</td><td>false</td></tr>
 </tbody>
 </table>
 <h2><a class="anchor" aria-hidden="true" id="zookeeper"></a><a href="#zookeeper" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-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 [...]
diff --git a/content/docs/zh-CN/2.1.0-incubating/reference-configuration/index.html b/content/docs/zh-CN/2.1.0-incubating/reference-configuration/index.html
index 6af6d1a..a388a6a 100644
--- a/content/docs/zh-CN/2.1.0-incubating/reference-configuration/index.html
+++ b/content/docs/zh-CN/2.1.0-incubating/reference-configuration/index.html
@@ -170,7 +170,7 @@
 <tr><td>enableNonPersistentTopics</td><td>Whether non-persistent topics are enabled on the broker</td><td>true</td></tr>
 <tr><td>functionsWorkerEnabled</td><td>Whether the Pulsar Functions worker service is enabled in the broker</td><td>false</td></tr>
 <tr><td>zookeeperServers</td><td>Zookeeper quorum connection string</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
 <tr><td>brokerServicePort</td><td>Broker data port</td><td>6650</td></tr>
 <tr><td>brokerServicePortTls</td><td>Broker data port for TLS</td><td>6651</td></tr>
 <tr><td>webServicePort</td><td>Port to use to server HTTP request</td><td>8080</td></tr>
@@ -198,8 +198,8 @@
 <tr><td>statusFilePath</td><td>Path for the file used to determine the rotation status for the broker when responding to service discovery health checks</td><td></td></tr>
 <tr><td>preferLaterVersions</td><td>If true, (and ModularLoadManagerImpl is being used), the load manager will attempt to use only brokers running the latest software version (to minimize impact to bundles)</td><td>false</td></tr>
 <tr><td>tlsEnabled</td><td>Enable TLS</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
 <tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate file</td><td></td></tr>
 <tr><td>tlsAllowInsecureConnection</td><td>Accept untrusted TLS certificate from client</td><td>false</td></tr>
 <tr><td>maxUnackedMessagesPerConsumer</td><td>Max number of unacknowledged messages allowed to receive messages by a consumer on a shared subscription. Broker will stop sending messages to consumer once, this limit reaches until consumer starts acknowledging messages back. Using a value of 0, is disabling unackeMessage limit check and consumer can receive messages without any restriction</td><td>50000</td></tr>
@@ -261,7 +261,7 @@
 </thead>
 <tbody>
 <tr><td>zookeeperServers</td><td>Zookeeper quorum connection string (comma-separated)</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
 <tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper session timeout</td><td>30000</td></tr>
 <tr><td>servicePort</td><td>Port to use to server binary-proto request</td><td>6650</td></tr>
 <tr><td>servicePortTls</td><td>Port to use to server binary-proto-tls request</td><td>6651</td></tr>
@@ -273,8 +273,8 @@
 <tr><td>authorizationEnabled</td><td>Enforce authorization</td><td>false</td></tr>
 <tr><td>superUserRoles</td><td>Role names that are treated as “super-user”, meaning they will be able to do all admin operations and publish/consume from all topics (comma-separated)</td><td></td></tr>
 <tr><td>tlsEnabled</td><td>Enable TLS</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
 </tbody>
 </table>
 <h2><a class="anchor" aria-hidden="true" id="log4j"></a><a href="#log4j" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
@@ -327,7 +327,7 @@
 </thead>
 <tbody>
 <tr><td>zookeeperServers</td><td>The quorum connection string for local ZooKeeper</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
 <tr><td>brokerServicePort</td><td>The port on which the standalone broker listens for connections</td><td>6650</td></tr>
 <tr><td>webServicePort</td><td>THe port used by the standalone broker for HTTP requests</td><td>8080</td></tr>
 <tr><td>bindAddress</td><td>The hostname or IP address on which the standalone service binds</td><td>0.0.0.0</td></tr>
@@ -440,30 +440,30 @@
 <tr><th>Name</th><th>说明:</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td>zookeeperServers</td><td>The ZooKeeper quorum connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper session timeout (in milliseconds)</td><td>30000</td></tr>
-<tr><td>servicePort</td><td>The port to use for server binary Protobuf requests</td><td>6650</td></tr>
-<tr><td>servicePortTls</td><td>The port to use to server binary Protobuf TLS requests</td><td>6651</td></tr>
-<tr><td>statusFilePath</td><td>Path for the file used to determine the rotation status for the proxy instance when responding to service discovery health checks</td><td></td></tr>
-<tr><td>authenticationEnabled</td><td>Whether authentication is enabled for the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authenticationProviders</td><td>Authentication provider name list (a comma-separated list of class names)</td><td></td></tr>
-<tr><td>authorizationEnabled</td><td>Whether authorization is enforced by the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authorizationProvider</td><td>Authorization provider as a fully qualified class name</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
-<tr><td>brokerClientAuthenticationPlugin</td><td>The authentication plugin used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientAuthenticationParameters</td><td>The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientTrustCertsFilePath</td><td>The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>superUserRoles</td><td>Role names that are treated as “super-users,” meaning that they will be able to perform all admin</td><td></td></tr>
-<tr><td>forwardAuthorizationCredentials</td><td>Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.</td><td>false</td></tr>
-<tr><td>maxConcurrentInboundConnections</td><td>Max concurrent inbound connections. The proxy will reject requests beyond that.</td><td>10000</td></tr>
-<tr><td>maxConcurrentLookupRequests</td><td>Max concurrent outbound connections. The proxy will error out requests beyond that.</td><td>10000</td></tr>
-<tr><td>tlsEnabledInProxy</td><td>Whether TLS is enabled for the proxy</td><td>false</td></tr>
-<tr><td>tlsEnabledWithBroker</td><td>Whether TLS is enabled when communicating with Pulsar brokers</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
-<tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate pem file</td><td></td></tr>
-<tr><td>tlsHostnameVerificationEnabled</td><td>Whether the hostname is validated when the proxy creates a TLS connection with brokers</td><td>false</td></tr>
-<tr><td>tlsRequireTrustedClientCertOnConnect</td><td>Whether client certificates are required for TLS. Connections are rejected if the client certificate isn’t trusted.</td><td>false</td></tr>
+<tr><td>zookeeperServers</td><td>ZooKeeper仲裁连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper会话超时(以毫秒为单位)</td><td>30000</td></tr>
+<tr><td>servicePort</td><td>用于服务器二进制Protobuf请求的端口</td><td>6650</td></tr>
+<tr><td>servicePortTls</td><td>用于服务器二进制Protobuf TLS请求的端口</td><td>6651</td></tr>
+<tr><td>statusFilePath</td><td>在响应服务发现健康检查时,用于确定代理实例的轮换状态的文件的路径</td><td></td></tr>
+<tr><td>authenticationEnabled</td><td>是否为Pulsar代理启用身份验证</td><td>false</td></tr>
+<tr><td>authenticationProviders</td><td>身份验证提供者名称列表(以逗号分隔的类名列表)</td><td></td></tr>
+<tr><td>authorizationEnabled</td><td>是否由Pulsar代理强制执行授权</td><td>false</td></tr>
+<tr><td>authorizationProvider</td><td>授权提供程序的完全限定类名</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
+<tr><td>brokerClientAuthenticationPlugin</td><td>Pulsar代理使用的身份验证插件,用于对Pulsar brokers进行身份验证</td><td></td></tr>
+<tr><td>brokerClientAuthenticationParameters</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的参数</td><td></td></tr>
+<tr><td>brokerClientTrustCertsFilePath</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的可信证书的路径</td><td></td></tr>
+<tr><td>superUserRoles</td><td>“超级用户”的角色名,这意味着它们将能够执行所有管理</td><td></td></tr>
+<tr><td>forwardAuthorizationCredentials</td><td>客户端授权凭据是否转发给broker以进行重新授权。必须通过AuthenticationEnabled=true启用身份验证才能生效。</td><td>false</td></tr>
+<tr><td>maxConcurrentInboundConnections</td><td>最大进站并发连接数, 代理将拒绝超出此范围的请求。</td><td>10000</td></tr>
+<tr><td>maxConcurrentLookupRequests</td><td>最大出站并发连接数。代理将错误地输出超过此范围的请求。</td><td>10000</td></tr>
+<tr><td>tlsEnabledInProxy</td><td>是否为代理启用TLS</td><td>false</td></tr>
+<tr><td>tlsEnabledWithBroker</td><td>与Pulsar Brokers通信时是否启用TLS</td><td>false</td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
+<tr><td>tlsTrustCertsFilePath</td><td>受信任的TLS证书pem文件的路径</td><td></td></tr>
+<tr><td>tlsHostnameVerificationEnabled</td><td>当代理与brokers建立TLS连接时是否验证主机名</td><td>false</td></tr>
+<tr><td>tlsRequireTrustedClientCertOnConnect</td><td>TLS是否需要客户端证书。如果客户端证书不受信任,连接将被拒绝。</td><td>false</td></tr>
 </tbody>
 </table>
 <h2><a class="anchor" aria-hidden="true" id="zookeeper"></a><a href="#zookeeper" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-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 [...]
diff --git a/content/docs/zh-CN/2.1.1-incubating/admin-api-partitioned-topics.html b/content/docs/zh-CN/2.1.1-incubating/admin-api-partitioned-topics.html
index ac28d6f..eb705cc 100644
--- a/content/docs/zh-CN/2.1.1-incubating/admin-api-partitioned-topics.html
+++ b/content/docs/zh-CN/2.1.1-incubating/admin-api-partitioned-topics.html
@@ -74,9 +74,9 @@
 <p>In all of the instructions and commands below, the topic name structure is:</p>
 <pre><code class="hljs css language-shell">persistent://tenant/namespace/topic
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="partitioned-topics-资源"></a><a href="#partitioned-topics-资源" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
+<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. [...]
 <h3><a class="anchor" aria-hidden="true" id="创建"></a><a href="#创建" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>在Pulsar中, Partitioned topics 必须被显示的创建. 创建新的partitioned topic时, 你需要提供topic的名称以及所需的partition的数量.</p>
+<p>在 Pulsar 中, 必须显式的创建分区主题。创建新的分区主题时,您需要提供主题的名称以及所需的分区的数量。</p>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
 <p>你可以使用<a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin#create-partitioned-topic"><code>create-partitioned-topic</code></a>命令创建partitioned topic,并指定topic的名字;使用<code>-p</code> 或 <code>--partitions</code>标志指定分区数。 这里有一个示例:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin topics create-partitioned-topic \</span>
@@ -312,7 +312,7 @@ persistent://tenant/namespace/topic2
 <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.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/admin-api-schemas"><span>Schema</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-资源">Partitioned topics 资源</a>< [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/admin-api-schemas"><span>Schema</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 [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.1.1-incubating/admin-api-partitioned-topics/index.html b/content/docs/zh-CN/2.1.1-incubating/admin-api-partitioned-topics/index.html
index ac28d6f..eb705cc 100644
--- a/content/docs/zh-CN/2.1.1-incubating/admin-api-partitioned-topics/index.html
+++ b/content/docs/zh-CN/2.1.1-incubating/admin-api-partitioned-topics/index.html
@@ -74,9 +74,9 @@
 <p>In all of the instructions and commands below, the topic name structure is:</p>
 <pre><code class="hljs css language-shell">persistent://tenant/namespace/topic
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="partitioned-topics-资源"></a><a href="#partitioned-topics-资源" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
+<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. [...]
 <h3><a class="anchor" aria-hidden="true" id="创建"></a><a href="#创建" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>在Pulsar中, Partitioned topics 必须被显示的创建. 创建新的partitioned topic时, 你需要提供topic的名称以及所需的partition的数量.</p>
+<p>在 Pulsar 中, 必须显式的创建分区主题。创建新的分区主题时,您需要提供主题的名称以及所需的分区的数量。</p>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
 <p>你可以使用<a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin#create-partitioned-topic"><code>create-partitioned-topic</code></a>命令创建partitioned topic,并指定topic的名字;使用<code>-p</code> 或 <code>--partitions</code>标志指定分区数。 这里有一个示例:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin topics create-partitioned-topic \</span>
@@ -312,7 +312,7 @@ persistent://tenant/namespace/topic2
 <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.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/admin-api-schemas"><span>Schema</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-资源">Partitioned topics 资源</a>< [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/admin-api-schemas"><span>Schema</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 [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.1.1-incubating/administration-proxy.html b/content/docs/zh-CN/2.1.1-incubating/administration-proxy.html
index a80432f..89ddd16 100644
--- a/content/docs/zh-CN/2.1.1-incubating/administration-proxy.html
+++ b/content/docs/zh-CN/2.1.1-incubating/administration-proxy.html
@@ -95,30 +95,30 @@ $ bin/pulsar proxy \
 <tr><th>Name</th><th>说明:</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td>zookeeperServers</td><td>The ZooKeeper quorum connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper session timeout (in milliseconds)</td><td>30000</td></tr>
-<tr><td>servicePort</td><td>The port to use for server binary Protobuf requests</td><td>6650</td></tr>
-<tr><td>servicePortTls</td><td>The port to use to server binary Protobuf TLS requests</td><td>6651</td></tr>
-<tr><td>statusFilePath</td><td>Path for the file used to determine the rotation status for the proxy instance when responding to service discovery health checks</td><td></td></tr>
-<tr><td>authenticationEnabled</td><td>Whether authentication is enabled for the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authenticationProviders</td><td>Authentication provider name list (a comma-separated list of class names)</td><td></td></tr>
-<tr><td>authorizationEnabled</td><td>Whether authorization is enforced by the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authorizationProvider</td><td>Authorization provider as a fully qualified class name</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
-<tr><td>brokerClientAuthenticationPlugin</td><td>The authentication plugin used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientAuthenticationParameters</td><td>The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientTrustCertsFilePath</td><td>The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>superUserRoles</td><td>Role names that are treated as “super-users,” meaning that they will be able to perform all admin</td><td></td></tr>
-<tr><td>forwardAuthorizationCredentials</td><td>Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.</td><td>false</td></tr>
-<tr><td>maxConcurrentInboundConnections</td><td>Max concurrent inbound connections. The proxy will reject requests beyond that.</td><td>10000</td></tr>
-<tr><td>maxConcurrentLookupRequests</td><td>Max concurrent outbound connections. The proxy will error out requests beyond that.</td><td>50000</td></tr>
-<tr><td>tlsEnabledInProxy</td><td>Whether TLS is enabled for the proxy</td><td>false</td></tr>
-<tr><td>tlsEnabledWithBroker</td><td>Whether TLS is enabled when communicating with Pulsar brokers</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
-<tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate pem file</td><td></td></tr>
-<tr><td>tlsHostnameVerificationEnabled</td><td>Whether the hostname is validated when the proxy creates a TLS connection with brokers</td><td>false</td></tr>
-<tr><td>tlsRequireTrustedClientCertOnConnect</td><td>Whether client certificates are required for TLS. Connections are rejected if the client certificate isn’t trusted.</td><td>false</td></tr>
+<tr><td>zookeeperServers</td><td>ZooKeeper仲裁连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper会话超时(以毫秒为单位)</td><td>30000</td></tr>
+<tr><td>servicePort</td><td>用于服务器二进制Protobuf请求的端口</td><td>6650</td></tr>
+<tr><td>servicePortTls</td><td>用于服务器二进制Protobuf TLS请求的端口</td><td>6651</td></tr>
+<tr><td>statusFilePath</td><td>在响应服务发现健康检查时,用于确定代理实例的轮换状态的文件的路径</td><td></td></tr>
+<tr><td>authenticationEnabled</td><td>是否为Pulsar代理启用身份验证</td><td>false</td></tr>
+<tr><td>authenticationProviders</td><td>身份验证提供者名称列表(以逗号分隔的类名列表)</td><td></td></tr>
+<tr><td>authorizationEnabled</td><td>是否由Pulsar代理强制执行授权</td><td>false</td></tr>
+<tr><td>authorizationProvider</td><td>授权提供程序的完全限定类名</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
+<tr><td>brokerClientAuthenticationPlugin</td><td>Pulsar代理使用的身份验证插件,用于对Pulsar brokers进行身份验证</td><td></td></tr>
+<tr><td>brokerClientAuthenticationParameters</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的参数</td><td></td></tr>
+<tr><td>brokerClientTrustCertsFilePath</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的可信证书的路径</td><td></td></tr>
+<tr><td>superUserRoles</td><td>“超级用户”的角色名,这意味着它们将能够执行所有管理</td><td></td></tr>
+<tr><td>forwardAuthorizationCredentials</td><td>客户端授权凭据是否转发给broker以进行重新授权。必须通过AuthenticationEnabled=true启用身份验证才能生效。</td><td>false</td></tr>
+<tr><td>maxConcurrentInboundConnections</td><td>最大进站并发连接数, 代理将拒绝超出此范围的请求。</td><td>10000</td></tr>
+<tr><td>maxConcurrentLookupRequests</td><td>最大出站并发连接数。代理将错误地输出超过此范围的请求。</td><td>50000</td></tr>
+<tr><td>tlsEnabledInProxy</td><td>是否为代理启用TLS</td><td>false</td></tr>
+<tr><td>tlsEnabledWithBroker</td><td>与Pulsar Brokers通信时是否启用TLS</td><td>false</td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
+<tr><td>tlsTrustCertsFilePath</td><td>受信任的TLS证书pem文件的路径</td><td></td></tr>
+<tr><td>tlsHostnameVerificationEnabled</td><td>当代理与brokers建立TLS连接时是否验证主机名</td><td>false</td></tr>
+<tr><td>tlsRequireTrustedClientCertOnConnect</td><td>TLS是否需要客户端证书。如果客户端证书不受信任,连接将被拒绝。</td><td>false</td></tr>
 </tbody>
 </table>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/administration-load-distribution"><span class="arrow-prev">← </span><span>Load distribution</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/security-overview"><span>概述</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#running-the-proxy">Running the proxy</a></li><li><a href [...]
diff --git a/content/docs/zh-CN/2.1.1-incubating/administration-proxy/index.html b/content/docs/zh-CN/2.1.1-incubating/administration-proxy/index.html
index a80432f..89ddd16 100644
--- a/content/docs/zh-CN/2.1.1-incubating/administration-proxy/index.html
+++ b/content/docs/zh-CN/2.1.1-incubating/administration-proxy/index.html
@@ -95,30 +95,30 @@ $ bin/pulsar proxy \
 <tr><th>Name</th><th>说明:</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td>zookeeperServers</td><td>The ZooKeeper quorum connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper session timeout (in milliseconds)</td><td>30000</td></tr>
-<tr><td>servicePort</td><td>The port to use for server binary Protobuf requests</td><td>6650</td></tr>
-<tr><td>servicePortTls</td><td>The port to use to server binary Protobuf TLS requests</td><td>6651</td></tr>
-<tr><td>statusFilePath</td><td>Path for the file used to determine the rotation status for the proxy instance when responding to service discovery health checks</td><td></td></tr>
-<tr><td>authenticationEnabled</td><td>Whether authentication is enabled for the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authenticationProviders</td><td>Authentication provider name list (a comma-separated list of class names)</td><td></td></tr>
-<tr><td>authorizationEnabled</td><td>Whether authorization is enforced by the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authorizationProvider</td><td>Authorization provider as a fully qualified class name</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
-<tr><td>brokerClientAuthenticationPlugin</td><td>The authentication plugin used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientAuthenticationParameters</td><td>The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientTrustCertsFilePath</td><td>The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>superUserRoles</td><td>Role names that are treated as “super-users,” meaning that they will be able to perform all admin</td><td></td></tr>
-<tr><td>forwardAuthorizationCredentials</td><td>Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.</td><td>false</td></tr>
-<tr><td>maxConcurrentInboundConnections</td><td>Max concurrent inbound connections. The proxy will reject requests beyond that.</td><td>10000</td></tr>
-<tr><td>maxConcurrentLookupRequests</td><td>Max concurrent outbound connections. The proxy will error out requests beyond that.</td><td>50000</td></tr>
-<tr><td>tlsEnabledInProxy</td><td>Whether TLS is enabled for the proxy</td><td>false</td></tr>
-<tr><td>tlsEnabledWithBroker</td><td>Whether TLS is enabled when communicating with Pulsar brokers</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
-<tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate pem file</td><td></td></tr>
-<tr><td>tlsHostnameVerificationEnabled</td><td>Whether the hostname is validated when the proxy creates a TLS connection with brokers</td><td>false</td></tr>
-<tr><td>tlsRequireTrustedClientCertOnConnect</td><td>Whether client certificates are required for TLS. Connections are rejected if the client certificate isn’t trusted.</td><td>false</td></tr>
+<tr><td>zookeeperServers</td><td>ZooKeeper仲裁连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper会话超时(以毫秒为单位)</td><td>30000</td></tr>
+<tr><td>servicePort</td><td>用于服务器二进制Protobuf请求的端口</td><td>6650</td></tr>
+<tr><td>servicePortTls</td><td>用于服务器二进制Protobuf TLS请求的端口</td><td>6651</td></tr>
+<tr><td>statusFilePath</td><td>在响应服务发现健康检查时,用于确定代理实例的轮换状态的文件的路径</td><td></td></tr>
+<tr><td>authenticationEnabled</td><td>是否为Pulsar代理启用身份验证</td><td>false</td></tr>
+<tr><td>authenticationProviders</td><td>身份验证提供者名称列表(以逗号分隔的类名列表)</td><td></td></tr>
+<tr><td>authorizationEnabled</td><td>是否由Pulsar代理强制执行授权</td><td>false</td></tr>
+<tr><td>authorizationProvider</td><td>授权提供程序的完全限定类名</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
+<tr><td>brokerClientAuthenticationPlugin</td><td>Pulsar代理使用的身份验证插件,用于对Pulsar brokers进行身份验证</td><td></td></tr>
+<tr><td>brokerClientAuthenticationParameters</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的参数</td><td></td></tr>
+<tr><td>brokerClientTrustCertsFilePath</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的可信证书的路径</td><td></td></tr>
+<tr><td>superUserRoles</td><td>“超级用户”的角色名,这意味着它们将能够执行所有管理</td><td></td></tr>
+<tr><td>forwardAuthorizationCredentials</td><td>客户端授权凭据是否转发给broker以进行重新授权。必须通过AuthenticationEnabled=true启用身份验证才能生效。</td><td>false</td></tr>
+<tr><td>maxConcurrentInboundConnections</td><td>最大进站并发连接数, 代理将拒绝超出此范围的请求。</td><td>10000</td></tr>
+<tr><td>maxConcurrentLookupRequests</td><td>最大出站并发连接数。代理将错误地输出超过此范围的请求。</td><td>50000</td></tr>
+<tr><td>tlsEnabledInProxy</td><td>是否为代理启用TLS</td><td>false</td></tr>
+<tr><td>tlsEnabledWithBroker</td><td>与Pulsar Brokers通信时是否启用TLS</td><td>false</td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
+<tr><td>tlsTrustCertsFilePath</td><td>受信任的TLS证书pem文件的路径</td><td></td></tr>
+<tr><td>tlsHostnameVerificationEnabled</td><td>当代理与brokers建立TLS连接时是否验证主机名</td><td>false</td></tr>
+<tr><td>tlsRequireTrustedClientCertOnConnect</td><td>TLS是否需要客户端证书。如果客户端证书不受信任,连接将被拒绝。</td><td>false</td></tr>
 </tbody>
 </table>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/administration-load-distribution"><span class="arrow-prev">← </span><span>Load distribution</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/security-overview"><span>概述</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#running-the-proxy">Running the proxy</a></li><li><a href [...]
diff --git a/content/docs/zh-CN/2.1.1-incubating/concepts-messaging.html b/content/docs/zh-CN/2.1.1-incubating/concepts-messaging.html
index 594f5d8..7afe0ad 100644
--- a/content/docs/zh-CN/2.1.1-incubating/concepts-messaging.html
+++ b/content/docs/zh-CN/2.1.1-incubating/concepts-messaging.html
@@ -254,9 +254,9 @@ Consumer someTopicsConsumer = pulsarClient.subscribe(someTopicsInNamespace, "sub
 </table>
 <p>这些默认的模式之外,你还可以创建客制化的路由模式,如果你在使用<a href="client-libraries-java.md">Java client</a>,可以通过实现MessageRouter接口来做客制化。</p>
 <h2><a class="anchor" aria-hidden="true" id="非持久topic"></a><a href="#非持久topic" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>默认的,Pulsar保存<em>所有</em>没有确认的消息到多个<a href="concepts-architecture-overview.md#persistent-storage">BookKeeper</a>的bookies中(存储节点)。持久topic的消息数据可以在broker重启或者订阅者出问题的情况下存活下来。 Data for messages on persistent topics can thus survive broker restarts and subscriber failover.</p>
-<p>Pulsar also, however, supports <strong>non-persistent topics</strong>, which are topics on which messages are <em>never</em> persisted to disk and live only in memory. Pulsar也提供了非持久topic。非持久topic的消息不会被保存在硬盘上,只存活于内存中。当使用非持久topic分发时,杀掉Pulsar的broker或者关闭订阅者,此topic( non-persistent))上所有的瞬时消息都会丢失,意味着客户端可能会遇到消息缺失。</p>
-<p>Non-persistent topics have names of this form (note the <code>non-persistent</code> in the name):</p>
+<p>默认的,Pulsar保存<em>所有</em>没有确认的消息到多个<a href="concepts-architecture-overview.md#persistent-storage">BookKeeper</a>的bookies中(存储节点)。持久topic的消息数据可以在broker重启或者订阅者出问题的情况下存活下来。 因此,持久性主题上的消息数据可以在 broker 重启和订阅者故障转移之后继续存在。</p>
+<p>但是,Pulsar还支持<strong>非持久性主题</strong>,这些主题的消息<em>从不</em>持久存储到磁盘,只存在于内存中。 Pulsar也提供了非持久topic。非持久topic的消息不会被保存在硬盘上,只存活于内存中。当使用非持久topic分发时,杀掉Pulsar的broker或者关闭订阅者,此topic( non-persistent))上所有的瞬时消息都会丢失,意味着客户端可能会遇到消息缺失。</p>
+<p>非持久性主题具有这种形式的名称(注意名称中的 <code>non-persistent</code>):</p>
 <pre><code class="hljs css language-http">non-persistent://tenant/namespace/topic
 </code></pre>
 <blockquote>
diff --git a/content/docs/zh-CN/2.1.1-incubating/concepts-messaging/index.html b/content/docs/zh-CN/2.1.1-incubating/concepts-messaging/index.html
index 594f5d8..7afe0ad 100644
--- a/content/docs/zh-CN/2.1.1-incubating/concepts-messaging/index.html
+++ b/content/docs/zh-CN/2.1.1-incubating/concepts-messaging/index.html
@@ -254,9 +254,9 @@ Consumer someTopicsConsumer = pulsarClient.subscribe(someTopicsInNamespace, "sub
 </table>
 <p>这些默认的模式之外,你还可以创建客制化的路由模式,如果你在使用<a href="client-libraries-java.md">Java client</a>,可以通过实现MessageRouter接口来做客制化。</p>
 <h2><a class="anchor" aria-hidden="true" id="非持久topic"></a><a href="#非持久topic" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>默认的,Pulsar保存<em>所有</em>没有确认的消息到多个<a href="concepts-architecture-overview.md#persistent-storage">BookKeeper</a>的bookies中(存储节点)。持久topic的消息数据可以在broker重启或者订阅者出问题的情况下存活下来。 Data for messages on persistent topics can thus survive broker restarts and subscriber failover.</p>
-<p>Pulsar also, however, supports <strong>non-persistent topics</strong>, which are topics on which messages are <em>never</em> persisted to disk and live only in memory. Pulsar也提供了非持久topic。非持久topic的消息不会被保存在硬盘上,只存活于内存中。当使用非持久topic分发时,杀掉Pulsar的broker或者关闭订阅者,此topic( non-persistent))上所有的瞬时消息都会丢失,意味着客户端可能会遇到消息缺失。</p>
-<p>Non-persistent topics have names of this form (note the <code>non-persistent</code> in the name):</p>
+<p>默认的,Pulsar保存<em>所有</em>没有确认的消息到多个<a href="concepts-architecture-overview.md#persistent-storage">BookKeeper</a>的bookies中(存储节点)。持久topic的消息数据可以在broker重启或者订阅者出问题的情况下存活下来。 因此,持久性主题上的消息数据可以在 broker 重启和订阅者故障转移之后继续存在。</p>
+<p>但是,Pulsar还支持<strong>非持久性主题</strong>,这些主题的消息<em>从不</em>持久存储到磁盘,只存在于内存中。 Pulsar也提供了非持久topic。非持久topic的消息不会被保存在硬盘上,只存活于内存中。当使用非持久topic分发时,杀掉Pulsar的broker或者关闭订阅者,此topic( non-persistent))上所有的瞬时消息都会丢失,意味着客户端可能会遇到消息缺失。</p>
+<p>非持久性主题具有这种形式的名称(注意名称中的 <code>non-persistent</code>):</p>
 <pre><code class="hljs css language-http">non-persistent://tenant/namespace/topic
 </code></pre>
 <blockquote>
diff --git a/content/docs/zh-CN/2.1.1-incubating/cookbooks-deduplication.html b/content/docs/zh-CN/2.1.1-incubating/cookbooks-deduplication.html
index d60ecbb..b7ed806 100644
--- a/content/docs/zh-CN/2.1.1-incubating/cookbooks-deduplication.html
+++ b/content/docs/zh-CN/2.1.1-incubating/cookbooks-deduplication.html
@@ -159,7 +159,7 @@ Producer producer;
 
 Result result = client.createProducer(topic, producerConfig, producer);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/cookbooks-compaction"><span class="arrow-prev">← </span><span>Topic compaction</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/cookbooks-non-persistent"><span>Non-persistent messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</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-compaction"><span class="arrow-prev">← </span><span>Topic compaction</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/cookbooks-non-persistent"><span>非持久化消息</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a href="#configura [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.1.1-incubating/cookbooks-deduplication/index.html b/content/docs/zh-CN/2.1.1-incubating/cookbooks-deduplication/index.html
index d60ecbb..b7ed806 100644
--- a/content/docs/zh-CN/2.1.1-incubating/cookbooks-deduplication/index.html
+++ b/content/docs/zh-CN/2.1.1-incubating/cookbooks-deduplication/index.html
@@ -159,7 +159,7 @@ Producer producer;
 
 Result result = client.createProducer(topic, producerConfig, producer);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/cookbooks-compaction"><span class="arrow-prev">← </span><span>Topic compaction</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/cookbooks-non-persistent"><span>Non-persistent messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</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-compaction"><span class="arrow-prev">← </span><span>Topic compaction</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/cookbooks-non-persistent"><span>非持久化消息</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a href="#configura [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.1.1-incubating/cookbooks-non-persistent.html b/content/docs/zh-CN/2.1.1-incubating/cookbooks-non-persistent.html
index f2ee3e7..cb3fc11 100644
--- a/content/docs/zh-CN/2.1.1-incubating/cookbooks-non-persistent.html
+++ b/content/docs/zh-CN/2.1.1-incubating/cookbooks-non-persistent.html
@@ -1,5 +1,5 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Non-persistent messaging · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;&lt;strong&gt;Non-persistent topics&lt;/strong&gt; are Pulsar topics in which message data is &lt;em&gt;never&lt;/em&gt; &lt;a href=&quot;/docs/zh-CN/2.1.1-incubating/concepts-arch [...]
-"/><meta name="docsearch:version" content="2.1.1-incubating"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Non-persistent messaging · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;&lt;strong&gt;Non-persistent topics&lt;/strong&gt; are Pulsar topics in which message data is &lt;em&gt;never&lt;/em&gt; &lt;a href=&quot [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Non-persistent messaging · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;&lt;strong&gt;非持久性主题&lt;/strong&gt;也是 Pulsar 的一种主题,其中消息数据&lt;em&gt;永远不会&lt;/em&gt;&lt;a href=&quot;/docs/zh-CN/2.1.1-incubating/concepts-architecture-overview#persistent-storage&qu [...]
+"/><meta name="docsearch:version" content="2.1.1-incubating"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Non-persistent messaging · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;&lt;strong&gt;非持久性主题&lt;/strong&gt;也是 Pulsar 的一种主题,其中消息数据&lt;em&gt;永远不会&lt;/em&gt;&lt;a href=&quot;/docs/zh-CN/2.1.1-incubating/concepts- [...]
 "/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://pulsar.incubator.apache.org/img/pulsar.svg"/><link rel="shortcut icon" href="/img/pulsar.ico"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><link rel="alternate" type="application/atom+xml" href="https://pulsar.incubator.apache.org/blog/atom.x [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
@@ -70,45 +70,45 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Non-persistent messaging</h1></header><article><div><span><p><strong>Non-persistent topics</strong> are Pulsar topics in which message data is <em>never</em> <a href="/docs/zh-CN/2.1.1-incu [...]
+        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Non-persistent messaging</h1></header><article><div><span><p><strong>非持久性主题</strong>也是 Pulsar 的一种主题,其中消息数据<em>永远不会</em><a href="/docs/zh-CN/2.1.1-incubating/concepts-architecture-overview#p [...]
 <ul>
-<li>A basic <a href="#overview">conceptual overview</a> of non-persistent topics</li>
-<li>Information about <a href="#configuration">configurable parameters</a> related to non-persistent topics</li>
-<li>A guide to the <a href="#cli">CLI interface</a> for managing non-persistent topics</li>
+<li>非持久性主题的基本<a href="#overview">概念概述</a></li>
+<li>非持久性主题相关的<a href="#configuration">可配置参数</a>信息</li>
+<li>用于管理非持久性主题<a href="#cli"> CLI(命令行工具)</a>指南</li>
 </ul>
 <h2><a class="anchor" aria-hidden="true" id="概述"></a><a href="#概述" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>By default, Pulsar persistently stores <em>all</em> unacknowledged messages on multiple <a href="#persistent-storage">BookKeeper</a> bookies (storage nodes). Data for messages on persistent topics can thus survive broker restarts and subscriber failover.</p>
-<p>Pulsar also, however, supports <strong>non-persistent topics</strong>, which are topics on which messages are <em>never</em> persisted to disk and live only in memory. When using non-persistent delivery, killing a Pulsar <a href="/docs/zh-CN/2.1.1-incubating/reference-terminology#broker">broker</a> or disconnecting a subscriber to a topic means that all in-transit messages are lost on that (non-persistent) topic, meaning that clients may see message loss.</p>
-<p>Non-persistent topics have names of this form (note the <code>non-persistent</code> in the name):</p>
+<p>默认情况下,Pulsar会在多个<a href="#persistent-storage"> BookKeeper </a> bookies(存储节点)上持续存储<em>所有</em>未确认的消息。 因此,持久性主题上的消息数据可以在 broker 重启和订阅者故障转移之后继续存在。</p>
+<p>但是,Pulsar还支持<strong>非持久性主题</strong>,这些主题的消息<em>从不</em>持久存储到磁盘,只存在于内存中。 使用非持久性主题传输时,当某个 Pulsar <a href="/docs/zh-CN/2.1.1-incubating/reference-terminology#broker">broker</a>宕机,或断开订阅者与某个主题(非持久性)的连接意味着所有正在传输的消息都会丢失,客户端也可能会看到消息的丢失。</p>
+<p>非持久性主题具有这种形式的名称(注意名称中的 <code>non-persistent</code>):</p>
 <pre><code class="hljs css language-http">non-persistent://tenant/namespace/topic
 </code></pre>
 <blockquote>
-<p>For more high-level information about non-persistent topics, see the <a href="/docs/zh-CN/2.1.1-incubating/concepts-messaging#non-persistent-topics">Concepts and Architecture</a> documentation.</p>
+<p>有关非持久性主题的更多高级信息,请参见 <a href="/docs/zh-CN/2.1.1-incubating/concepts-messaging#non-persistent-topics">Concepts and Architecture</a> 文档。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="using"></a><a href="#using" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
+<h2><a class="anchor" aria-hidden="true" id="使用"></a><a href="#使用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <blockquote>
-<p>In order to use non-persistent topics, they must be <a href="#enabling">enabled</a> in your Pulsar broker configuration.</p>
+<p>要使用非持久性主题,必须在 Pulsar broker 配置中<a href="#enabling">启用</a>。</p>
 </blockquote>
-<p>In order to use non-persistent topics, you only need to differentiate them by name when interacting with them. This <a href="/docs/zh-CN/2.1.1-incubating/reference-cli-tools#pulsar-client-produce"><code>pulsar-client produce</code></a> command, for example, would produce one message on a non-persistent topic in a standalone cluster:</p>
+<p>为了使用非持久性主题,你只需要在与它们交互时按名称区分它们。 例如,此<a href="/docs/zh-CN/2.1.1-incubating/reference-cli-tools#pulsar-client-produce"> <code>pulsar-client produce</code> </a>命令将在单集群的非持久性主题上生产一条消息:</p>
 <pre><code class="hljs css language-bash">$ bin/pulsar-client produce non-persistent://public/default/example-np-topic \
   --num-produce 1 \
   --messages <span class="hljs-string">"This message will be stored only in memory"</span>
 </code></pre>
 <blockquote>
-<p>For a more thorough guide to non-persistent topics from an administrative perspective, see the <a href="/docs/zh-CN/2.1.1-incubating/admin-api-non-persistent-topics">Non-persistent topics</a> guide.</p>
+<p>要从管理的角度获得关于非持久性主题的更详细的指南,请参阅<a href="/docs/zh-CN/2.1.1-incubating/admin-api-non-persistent-topics">非持久性主题</a>指南。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="enabling"></a><a href="#enabling" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 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>In order to enable non-persistent topics in a Pulsar broker, the <a href="/docs/zh-CN/2.1.1-incubating/reference-configuration#broker-enableNonPersistentTopics"><code>enableNonPersistentTopics</code></a> must be set to <code>true</code>. This is the default, and so you won't need to take any action to enable non-persistent messaging.</p>
+<h2><a class="anchor" aria-hidden="true" id="启用"></a><a href="#启用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>为了在 Pulsar broker 中启用非持久性主题,必须将 <a href="/docs/zh-CN/2.1.1-incubating/reference-configuration#broker-enableNonPersistentTopics"><code>enableNonPersistentTopics</code></a> 设置为<code>true</code>。 你无需采取任何操作来启用非持久性消息传递,因为这是默认设置。</p>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="configuration-for-standalone-mode"></a><a href="#configuration-for-standalone-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.5S1 [...]
-<p>If you're running Pulsar in standalone mode, the same configurable parameters are available but in the <a href="/docs/zh-CN/2.1.1-incubating/reference-configuration#standalone"><code>standalone.conf</code></a> configuration file.</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- [...]
+<p>如果你在独立模式下运行 Pulsar,则可以在<a href="/docs/zh-CN/2.1.1-incubating/reference-configuration#standalone"> <code>standalone.conf</code> </a>配置文件中使用相同的可配置参数。</p>
 </blockquote>
-<p>If you'd like to enable <em>only</em> non-persistent topics in a broker, you can set the <a href="/docs/zh-CN/2.1.1-incubating/reference-configuration#broker-enablePersistentTopics"><code>enablePersistentTopics</code></a> parameter to <code>false</code> and the <code>enableNonPersistentTopics</code> parameter to <code>true</code>.</p>
-<h2><a class="anchor" aria-hidden="true" id="managing-with-cli"></a><a href="#managing-with-cli" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
-<p>Non-persistent topics can be managed using the <a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin#non-persistent"><code>pulsar-admin non-persistent</code></a> command-line interface. With that interface you can perform actions like <a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin#non-persistent-create-partitioned-topic">create a partitioned non-persistent topic</a>, get <a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin#non-persistent-stats">stats</a> for a non-persistent topic, <a  [...]
-<h2><a class="anchor" aria-hidden="true" id="using-with-pulsar-clients"></a><a href="#using-with-pulsar-clients" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c [...]
-<p>You shouldn't need to make any changes to your Pulsar clients to use non-persistent messaging beyond making sure that you use proper <a href="#using">topic names</a> with <code>non-persistent</code> as the topic type.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/cookbooks-deduplication"><span class="arrow-prev">← </span><span>Message deduplication</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/cookbooks-partitioned"><span>分区Topic</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#概述">概述</a></li><li><a href="#using">Using</a></li><l [...]
+<p>如果你<em>只</em>想在 Broker 中启用非持久性主题,则可以将<a href="/docs/zh-CN/2.1.1-incubating/reference-configuration#broker-enablePersistentTopics">enablePersistentTopics</code></a>参数设置为<code>false</code>,将 <code>enableNonPersistentTopics</code>参数设置为<code>true</code>。</p>
+<h2><a class="anchor" aria-hidden="true" id="使用cli-命令行工具-管理"></a><a href="#使用cli-命令行工具-管理" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
+<p>可以使用<a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin#non-persistent"> <code>pulsar-admin non-persistent</code> </a>命令行管理非持久性主题。 使用命令行工具,你可以执行诸如<a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin#non-persistent-create-partitioned-topic">创建分区非持久性主题</a>,获取非持久主题的<a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin#non-persistent-stats">统计信息</a>,获取命名空间下的非持久主题<a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin">列表</a>等操作。</p>
+<h2><a class="anchor" aria-hidden="true" id="与pulsar客户端一起使用"></a><a href="#与pulsar客户端一起使用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 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>除了确保使用具有<code>非持久性</code>的正确<a href="#using">主题名称</a>作为主题类型之外,你不应该对 Pulsar 客户端进行任何更改以使用非持久性消息传递。</p>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/cookbooks-deduplication"><span class="arrow-prev">← </span><span>Message deduplication</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/cookbooks-partitioned"><span>分区Topic</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#概述">概述</a></li><li><a href="#使用">使用</a></li><li><a h [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.1.1-incubating/cookbooks-non-persistent/index.html b/content/docs/zh-CN/2.1.1-incubating/cookbooks-non-persistent/index.html
index f2ee3e7..cb3fc11 100644
--- a/content/docs/zh-CN/2.1.1-incubating/cookbooks-non-persistent/index.html
+++ b/content/docs/zh-CN/2.1.1-incubating/cookbooks-non-persistent/index.html
@@ -1,5 +1,5 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Non-persistent messaging · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;&lt;strong&gt;Non-persistent topics&lt;/strong&gt; are Pulsar topics in which message data is &lt;em&gt;never&lt;/em&gt; &lt;a href=&quot;/docs/zh-CN/2.1.1-incubating/concepts-arch [...]
-"/><meta name="docsearch:version" content="2.1.1-incubating"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Non-persistent messaging · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;&lt;strong&gt;Non-persistent topics&lt;/strong&gt; are Pulsar topics in which message data is &lt;em&gt;never&lt;/em&gt; &lt;a href=&quot [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Non-persistent messaging · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;&lt;strong&gt;非持久性主题&lt;/strong&gt;也是 Pulsar 的一种主题,其中消息数据&lt;em&gt;永远不会&lt;/em&gt;&lt;a href=&quot;/docs/zh-CN/2.1.1-incubating/concepts-architecture-overview#persistent-storage&qu [...]
+"/><meta name="docsearch:version" content="2.1.1-incubating"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Non-persistent messaging · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;&lt;strong&gt;非持久性主题&lt;/strong&gt;也是 Pulsar 的一种主题,其中消息数据&lt;em&gt;永远不会&lt;/em&gt;&lt;a href=&quot;/docs/zh-CN/2.1.1-incubating/concepts- [...]
 "/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://pulsar.incubator.apache.org/img/pulsar.svg"/><link rel="shortcut icon" href="/img/pulsar.ico"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><link rel="alternate" type="application/atom+xml" href="https://pulsar.incubator.apache.org/blog/atom.x [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
@@ -70,45 +70,45 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Non-persistent messaging</h1></header><article><div><span><p><strong>Non-persistent topics</strong> are Pulsar topics in which message data is <em>never</em> <a href="/docs/zh-CN/2.1.1-incu [...]
+        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Non-persistent messaging</h1></header><article><div><span><p><strong>非持久性主题</strong>也是 Pulsar 的一种主题,其中消息数据<em>永远不会</em><a href="/docs/zh-CN/2.1.1-incubating/concepts-architecture-overview#p [...]
 <ul>
-<li>A basic <a href="#overview">conceptual overview</a> of non-persistent topics</li>
-<li>Information about <a href="#configuration">configurable parameters</a> related to non-persistent topics</li>
-<li>A guide to the <a href="#cli">CLI interface</a> for managing non-persistent topics</li>
+<li>非持久性主题的基本<a href="#overview">概念概述</a></li>
+<li>非持久性主题相关的<a href="#configuration">可配置参数</a>信息</li>
+<li>用于管理非持久性主题<a href="#cli"> CLI(命令行工具)</a>指南</li>
 </ul>
 <h2><a class="anchor" aria-hidden="true" id="概述"></a><a href="#概述" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>By default, Pulsar persistently stores <em>all</em> unacknowledged messages on multiple <a href="#persistent-storage">BookKeeper</a> bookies (storage nodes). Data for messages on persistent topics can thus survive broker restarts and subscriber failover.</p>
-<p>Pulsar also, however, supports <strong>non-persistent topics</strong>, which are topics on which messages are <em>never</em> persisted to disk and live only in memory. When using non-persistent delivery, killing a Pulsar <a href="/docs/zh-CN/2.1.1-incubating/reference-terminology#broker">broker</a> or disconnecting a subscriber to a topic means that all in-transit messages are lost on that (non-persistent) topic, meaning that clients may see message loss.</p>
-<p>Non-persistent topics have names of this form (note the <code>non-persistent</code> in the name):</p>
+<p>默认情况下,Pulsar会在多个<a href="#persistent-storage"> BookKeeper </a> bookies(存储节点)上持续存储<em>所有</em>未确认的消息。 因此,持久性主题上的消息数据可以在 broker 重启和订阅者故障转移之后继续存在。</p>
+<p>但是,Pulsar还支持<strong>非持久性主题</strong>,这些主题的消息<em>从不</em>持久存储到磁盘,只存在于内存中。 使用非持久性主题传输时,当某个 Pulsar <a href="/docs/zh-CN/2.1.1-incubating/reference-terminology#broker">broker</a>宕机,或断开订阅者与某个主题(非持久性)的连接意味着所有正在传输的消息都会丢失,客户端也可能会看到消息的丢失。</p>
+<p>非持久性主题具有这种形式的名称(注意名称中的 <code>non-persistent</code>):</p>
 <pre><code class="hljs css language-http">non-persistent://tenant/namespace/topic
 </code></pre>
 <blockquote>
-<p>For more high-level information about non-persistent topics, see the <a href="/docs/zh-CN/2.1.1-incubating/concepts-messaging#non-persistent-topics">Concepts and Architecture</a> documentation.</p>
+<p>有关非持久性主题的更多高级信息,请参见 <a href="/docs/zh-CN/2.1.1-incubating/concepts-messaging#non-persistent-topics">Concepts and Architecture</a> 文档。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="using"></a><a href="#using" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
+<h2><a class="anchor" aria-hidden="true" id="使用"></a><a href="#使用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <blockquote>
-<p>In order to use non-persistent topics, they must be <a href="#enabling">enabled</a> in your Pulsar broker configuration.</p>
+<p>要使用非持久性主题,必须在 Pulsar broker 配置中<a href="#enabling">启用</a>。</p>
 </blockquote>
-<p>In order to use non-persistent topics, you only need to differentiate them by name when interacting with them. This <a href="/docs/zh-CN/2.1.1-incubating/reference-cli-tools#pulsar-client-produce"><code>pulsar-client produce</code></a> command, for example, would produce one message on a non-persistent topic in a standalone cluster:</p>
+<p>为了使用非持久性主题,你只需要在与它们交互时按名称区分它们。 例如,此<a href="/docs/zh-CN/2.1.1-incubating/reference-cli-tools#pulsar-client-produce"> <code>pulsar-client produce</code> </a>命令将在单集群的非持久性主题上生产一条消息:</p>
 <pre><code class="hljs css language-bash">$ bin/pulsar-client produce non-persistent://public/default/example-np-topic \
   --num-produce 1 \
   --messages <span class="hljs-string">"This message will be stored only in memory"</span>
 </code></pre>
 <blockquote>
-<p>For a more thorough guide to non-persistent topics from an administrative perspective, see the <a href="/docs/zh-CN/2.1.1-incubating/admin-api-non-persistent-topics">Non-persistent topics</a> guide.</p>
+<p>要从管理的角度获得关于非持久性主题的更详细的指南,请参阅<a href="/docs/zh-CN/2.1.1-incubating/admin-api-non-persistent-topics">非持久性主题</a>指南。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="enabling"></a><a href="#enabling" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 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>In order to enable non-persistent topics in a Pulsar broker, the <a href="/docs/zh-CN/2.1.1-incubating/reference-configuration#broker-enableNonPersistentTopics"><code>enableNonPersistentTopics</code></a> must be set to <code>true</code>. This is the default, and so you won't need to take any action to enable non-persistent messaging.</p>
+<h2><a class="anchor" aria-hidden="true" id="启用"></a><a href="#启用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>为了在 Pulsar broker 中启用非持久性主题,必须将 <a href="/docs/zh-CN/2.1.1-incubating/reference-configuration#broker-enableNonPersistentTopics"><code>enableNonPersistentTopics</code></a> 设置为<code>true</code>。 你无需采取任何操作来启用非持久性消息传递,因为这是默认设置。</p>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="configuration-for-standalone-mode"></a><a href="#configuration-for-standalone-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.5S1 [...]
-<p>If you're running Pulsar in standalone mode, the same configurable parameters are available but in the <a href="/docs/zh-CN/2.1.1-incubating/reference-configuration#standalone"><code>standalone.conf</code></a> configuration file.</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- [...]
+<p>如果你在独立模式下运行 Pulsar,则可以在<a href="/docs/zh-CN/2.1.1-incubating/reference-configuration#standalone"> <code>standalone.conf</code> </a>配置文件中使用相同的可配置参数。</p>
 </blockquote>
-<p>If you'd like to enable <em>only</em> non-persistent topics in a broker, you can set the <a href="/docs/zh-CN/2.1.1-incubating/reference-configuration#broker-enablePersistentTopics"><code>enablePersistentTopics</code></a> parameter to <code>false</code> and the <code>enableNonPersistentTopics</code> parameter to <code>true</code>.</p>
-<h2><a class="anchor" aria-hidden="true" id="managing-with-cli"></a><a href="#managing-with-cli" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
-<p>Non-persistent topics can be managed using the <a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin#non-persistent"><code>pulsar-admin non-persistent</code></a> command-line interface. With that interface you can perform actions like <a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin#non-persistent-create-partitioned-topic">create a partitioned non-persistent topic</a>, get <a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin#non-persistent-stats">stats</a> for a non-persistent topic, <a  [...]
-<h2><a class="anchor" aria-hidden="true" id="using-with-pulsar-clients"></a><a href="#using-with-pulsar-clients" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c [...]
-<p>You shouldn't need to make any changes to your Pulsar clients to use non-persistent messaging beyond making sure that you use proper <a href="#using">topic names</a> with <code>non-persistent</code> as the topic type.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/cookbooks-deduplication"><span class="arrow-prev">← </span><span>Message deduplication</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/cookbooks-partitioned"><span>分区Topic</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#概述">概述</a></li><li><a href="#using">Using</a></li><l [...]
+<p>如果你<em>只</em>想在 Broker 中启用非持久性主题,则可以将<a href="/docs/zh-CN/2.1.1-incubating/reference-configuration#broker-enablePersistentTopics">enablePersistentTopics</code></a>参数设置为<code>false</code>,将 <code>enableNonPersistentTopics</code>参数设置为<code>true</code>。</p>
+<h2><a class="anchor" aria-hidden="true" id="使用cli-命令行工具-管理"></a><a href="#使用cli-命令行工具-管理" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
+<p>可以使用<a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin#non-persistent"> <code>pulsar-admin non-persistent</code> </a>命令行管理非持久性主题。 使用命令行工具,你可以执行诸如<a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin#non-persistent-create-partitioned-topic">创建分区非持久性主题</a>,获取非持久主题的<a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin#non-persistent-stats">统计信息</a>,获取命名空间下的非持久主题<a href="/docs/zh-CN/2.1.1-incubating/pulsar-admin">列表</a>等操作。</p>
+<h2><a class="anchor" aria-hidden="true" id="与pulsar客户端一起使用"></a><a href="#与pulsar客户端一起使用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 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>除了确保使用具有<code>非持久性</code>的正确<a href="#using">主题名称</a>作为主题类型之外,你不应该对 Pulsar 客户端进行任何更改以使用非持久性消息传递。</p>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/cookbooks-deduplication"><span class="arrow-prev">← </span><span>Message deduplication</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/cookbooks-partitioned"><span>分区Topic</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#概述">概述</a></li><li><a href="#使用">使用</a></li><li><a h [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.1.1-incubating/cookbooks-partitioned.html b/content/docs/zh-CN/2.1.1-incubating/cookbooks-partitioned.html
index a545ef5..855acf5 100644
--- a/content/docs/zh-CN/2.1.1-incubating/cookbooks-partitioned.html
+++ b/content/docs/zh-CN/2.1.1-incubating/cookbooks-partitioned.html
@@ -121,7 +121,7 @@ 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- [...]
 <p>您可以使用Pulsar的<a href="/docs/zh-CN/2.1.1-incubating/admin-api-overview"> admin API </a>来创建和管理<a href="/docs/zh-CN/2.1.1-incubating/admin-api-partitioned-topics">分区主题</a>。</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>Non-persistent messaging</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/cookbooks-retention-expiry"><span>Message retention and expiry</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#发布到分区主题">发布到分区主题</a><u [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/cookbooks-retention-expiry"><span>Message retention and expiry</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#发布到分区主题">发布到分区主题</a><ul class="toc-headi [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.1.1-incubating/cookbooks-partitioned/index.html b/content/docs/zh-CN/2.1.1-incubating/cookbooks-partitioned/index.html
index a545ef5..855acf5 100644
--- a/content/docs/zh-CN/2.1.1-incubating/cookbooks-partitioned/index.html
+++ b/content/docs/zh-CN/2.1.1-incubating/cookbooks-partitioned/index.html
@@ -121,7 +121,7 @@ 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- [...]
 <p>您可以使用Pulsar的<a href="/docs/zh-CN/2.1.1-incubating/admin-api-overview"> admin API </a>来创建和管理<a href="/docs/zh-CN/2.1.1-incubating/admin-api-partitioned-topics">分区主题</a>。</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>Non-persistent messaging</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/cookbooks-retention-expiry"><span>Message retention and expiry</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#发布到分区主题">发布到分区主题</a><u [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.1.1-incubating/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.1.1-incubating/cookbooks-retention-expiry"><span>Message retention and expiry</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#发布到分区主题">发布到分区主题</a><ul class="toc-headi [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.1.1-incubating/reference-configuration.html b/content/docs/zh-CN/2.1.1-incubating/reference-configuration.html
index 840c186..764e317 100644
--- a/content/docs/zh-CN/2.1.1-incubating/reference-configuration.html
+++ b/content/docs/zh-CN/2.1.1-incubating/reference-configuration.html
@@ -170,7 +170,7 @@
 <tr><td>enableNonPersistentTopics</td><td>Whether non-persistent topics are enabled on the broker</td><td>true</td></tr>
 <tr><td>functionsWorkerEnabled</td><td>Whether the Pulsar Functions worker service is enabled in the broker</td><td>false</td></tr>
 <tr><td>zookeeperServers</td><td>Zookeeper quorum connection string</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
 <tr><td>brokerServicePort</td><td>Broker data port</td><td>6650</td></tr>
 <tr><td>brokerServicePortTls</td><td>Broker data port for TLS</td><td>6651</td></tr>
 <tr><td>webServicePort</td><td>Port to use to server HTTP request</td><td>8080</td></tr>
@@ -198,8 +198,8 @@
 <tr><td>statusFilePath</td><td>Path for the file used to determine the rotation status for the broker when responding to service discovery health checks</td><td></td></tr>
 <tr><td>preferLaterVersions</td><td>If true, (and ModularLoadManagerImpl is being used), the load manager will attempt to use only brokers running the latest software version (to minimize impact to bundles)</td><td>false</td></tr>
 <tr><td>tlsEnabled</td><td>Enable TLS</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
 <tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate file</td><td></td></tr>
 <tr><td>tlsAllowInsecureConnection</td><td>Accept untrusted TLS certificate from client</td><td>false</td></tr>
 <tr><td>maxUnackedMessagesPerConsumer</td><td>Max number of unacknowledged messages allowed to receive messages by a consumer on a shared subscription. Broker will stop sending messages to consumer once, this limit reaches until consumer starts acknowledging messages back. Using a value of 0, is disabling unackeMessage limit check and consumer can receive messages without any restriction</td><td>50000</td></tr>
@@ -261,7 +261,7 @@
 </thead>
 <tbody>
 <tr><td>zookeeperServers</td><td>Zookeeper quorum connection string (comma-separated)</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
 <tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper session timeout</td><td>30000</td></tr>
 <tr><td>servicePort</td><td>Port to use to server binary-proto request</td><td>6650</td></tr>
 <tr><td>servicePortTls</td><td>Port to use to server binary-proto-tls request</td><td>6651</td></tr>
@@ -273,8 +273,8 @@
 <tr><td>authorizationEnabled</td><td>Enforce authorization</td><td>false</td></tr>
 <tr><td>superUserRoles</td><td>Role names that are treated as “super-user”, meaning they will be able to do all admin operations and publish/consume from all topics (comma-separated)</td><td></td></tr>
 <tr><td>tlsEnabled</td><td>Enable TLS</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
 </tbody>
 </table>
 <h2><a class="anchor" aria-hidden="true" id="log4j"></a><a href="#log4j" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
@@ -327,7 +327,7 @@
 </thead>
 <tbody>
 <tr><td>zookeeperServers</td><td>The quorum connection string for local ZooKeeper</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
 <tr><td>brokerServicePort</td><td>The port on which the standalone broker listens for connections</td><td>6650</td></tr>
 <tr><td>webServicePort</td><td>THe port used by the standalone broker for HTTP requests</td><td>8080</td></tr>
 <tr><td>bindAddress</td><td>The hostname or IP address on which the standalone service binds</td><td>0.0.0.0</td></tr>
@@ -440,30 +440,30 @@
 <tr><th>Name</th><th>说明:</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td>zookeeperServers</td><td>The ZooKeeper quorum connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper session timeout (in milliseconds)</td><td>30000</td></tr>
-<tr><td>servicePort</td><td>The port to use for server binary Protobuf requests</td><td>6650</td></tr>
-<tr><td>servicePortTls</td><td>The port to use to server binary Protobuf TLS requests</td><td>6651</td></tr>
-<tr><td>statusFilePath</td><td>Path for the file used to determine the rotation status for the proxy instance when responding to service discovery health checks</td><td></td></tr>
-<tr><td>authenticationEnabled</td><td>Whether authentication is enabled for the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authenticationProviders</td><td>Authentication provider name list (a comma-separated list of class names)</td><td></td></tr>
-<tr><td>authorizationEnabled</td><td>Whether authorization is enforced by the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authorizationProvider</td><td>Authorization provider as a fully qualified class name</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
-<tr><td>brokerClientAuthenticationPlugin</td><td>The authentication plugin used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientAuthenticationParameters</td><td>The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientTrustCertsFilePath</td><td>The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>superUserRoles</td><td>Role names that are treated as “super-users,” meaning that they will be able to perform all admin</td><td></td></tr>
-<tr><td>forwardAuthorizationCredentials</td><td>Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.</td><td>false</td></tr>
-<tr><td>maxConcurrentInboundConnections</td><td>Max concurrent inbound connections. The proxy will reject requests beyond that.</td><td>10000</td></tr>
-<tr><td>maxConcurrentLookupRequests</td><td>Max concurrent outbound connections. The proxy will error out requests beyond that.</td><td>50000</td></tr>
-<tr><td>tlsEnabledInProxy</td><td>Whether TLS is enabled for the proxy</td><td>false</td></tr>
-<tr><td>tlsEnabledWithBroker</td><td>Whether TLS is enabled when communicating with Pulsar brokers</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
-<tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate pem file</td><td></td></tr>
-<tr><td>tlsHostnameVerificationEnabled</td><td>Whether the hostname is validated when the proxy creates a TLS connection with brokers</td><td>false</td></tr>
-<tr><td>tlsRequireTrustedClientCertOnConnect</td><td>Whether client certificates are required for TLS. Connections are rejected if the client certificate isn’t trusted.</td><td>false</td></tr>
+<tr><td>zookeeperServers</td><td>ZooKeeper仲裁连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper会话超时(以毫秒为单位)</td><td>30000</td></tr>
+<tr><td>servicePort</td><td>用于服务器二进制Protobuf请求的端口</td><td>6650</td></tr>
+<tr><td>servicePortTls</td><td>用于服务器二进制Protobuf TLS请求的端口</td><td>6651</td></tr>
+<tr><td>statusFilePath</td><td>在响应服务发现健康检查时,用于确定代理实例的轮换状态的文件的路径</td><td></td></tr>
+<tr><td>authenticationEnabled</td><td>是否为Pulsar代理启用身份验证</td><td>false</td></tr>
+<tr><td>authenticationProviders</td><td>身份验证提供者名称列表(以逗号分隔的类名列表)</td><td></td></tr>
+<tr><td>authorizationEnabled</td><td>是否由Pulsar代理强制执行授权</td><td>false</td></tr>
+<tr><td>authorizationProvider</td><td>授权提供程序的完全限定类名</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
+<tr><td>brokerClientAuthenticationPlugin</td><td>Pulsar代理使用的身份验证插件,用于对Pulsar brokers进行身份验证</td><td></td></tr>
+<tr><td>brokerClientAuthenticationParameters</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的参数</td><td></td></tr>
+<tr><td>brokerClientTrustCertsFilePath</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的可信证书的路径</td><td></td></tr>
+<tr><td>superUserRoles</td><td>“超级用户”的角色名,这意味着它们将能够执行所有管理</td><td></td></tr>
+<tr><td>forwardAuthorizationCredentials</td><td>客户端授权凭据是否转发给broker以进行重新授权。必须通过AuthenticationEnabled=true启用身份验证才能生效。</td><td>false</td></tr>
+<tr><td>maxConcurrentInboundConnections</td><td>最大进站并发连接数, 代理将拒绝超出此范围的请求。</td><td>10000</td></tr>
+<tr><td>maxConcurrentLookupRequests</td><td>最大出站并发连接数。代理将错误地输出超过此范围的请求。</td><td>50000</td></tr>
+<tr><td>tlsEnabledInProxy</td><td>是否为代理启用TLS</td><td>false</td></tr>
+<tr><td>tlsEnabledWithBroker</td><td>与Pulsar Brokers通信时是否启用TLS</td><td>false</td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
+<tr><td>tlsTrustCertsFilePath</td><td>受信任的TLS证书pem文件的路径</td><td></td></tr>
+<tr><td>tlsHostnameVerificationEnabled</td><td>当代理与brokers建立TLS连接时是否验证主机名</td><td>false</td></tr>
+<tr><td>tlsRequireTrustedClientCertOnConnect</td><td>TLS是否需要客户端证书。如果客户端证书不受信任,连接将被拒绝。</td><td>false</td></tr>
 </tbody>
 </table>
 <h2><a class="anchor" aria-hidden="true" id="zookeeper"></a><a href="#zookeeper" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-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 [...]
diff --git a/content/docs/zh-CN/2.1.1-incubating/reference-configuration/index.html b/content/docs/zh-CN/2.1.1-incubating/reference-configuration/index.html
index 840c186..764e317 100644
--- a/content/docs/zh-CN/2.1.1-incubating/reference-configuration/index.html
+++ b/content/docs/zh-CN/2.1.1-incubating/reference-configuration/index.html
@@ -170,7 +170,7 @@
 <tr><td>enableNonPersistentTopics</td><td>Whether non-persistent topics are enabled on the broker</td><td>true</td></tr>
 <tr><td>functionsWorkerEnabled</td><td>Whether the Pulsar Functions worker service is enabled in the broker</td><td>false</td></tr>
 <tr><td>zookeeperServers</td><td>Zookeeper quorum connection string</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
 <tr><td>brokerServicePort</td><td>Broker data port</td><td>6650</td></tr>
 <tr><td>brokerServicePortTls</td><td>Broker data port for TLS</td><td>6651</td></tr>
 <tr><td>webServicePort</td><td>Port to use to server HTTP request</td><td>8080</td></tr>
@@ -198,8 +198,8 @@
 <tr><td>statusFilePath</td><td>Path for the file used to determine the rotation status for the broker when responding to service discovery health checks</td><td></td></tr>
 <tr><td>preferLaterVersions</td><td>If true, (and ModularLoadManagerImpl is being used), the load manager will attempt to use only brokers running the latest software version (to minimize impact to bundles)</td><td>false</td></tr>
 <tr><td>tlsEnabled</td><td>Enable TLS</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
 <tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate file</td><td></td></tr>
 <tr><td>tlsAllowInsecureConnection</td><td>Accept untrusted TLS certificate from client</td><td>false</td></tr>
 <tr><td>maxUnackedMessagesPerConsumer</td><td>Max number of unacknowledged messages allowed to receive messages by a consumer on a shared subscription. Broker will stop sending messages to consumer once, this limit reaches until consumer starts acknowledging messages back. Using a value of 0, is disabling unackeMessage limit check and consumer can receive messages without any restriction</td><td>50000</td></tr>
@@ -261,7 +261,7 @@
 </thead>
 <tbody>
 <tr><td>zookeeperServers</td><td>Zookeeper quorum connection string (comma-separated)</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
 <tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper session timeout</td><td>30000</td></tr>
 <tr><td>servicePort</td><td>Port to use to server binary-proto request</td><td>6650</td></tr>
 <tr><td>servicePortTls</td><td>Port to use to server binary-proto-tls request</td><td>6651</td></tr>
@@ -273,8 +273,8 @@
 <tr><td>authorizationEnabled</td><td>Enforce authorization</td><td>false</td></tr>
 <tr><td>superUserRoles</td><td>Role names that are treated as “super-user”, meaning they will be able to do all admin operations and publish/consume from all topics (comma-separated)</td><td></td></tr>
 <tr><td>tlsEnabled</td><td>Enable TLS</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
 </tbody>
 </table>
 <h2><a class="anchor" aria-hidden="true" id="log4j"></a><a href="#log4j" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
@@ -327,7 +327,7 @@
 </thead>
 <tbody>
 <tr><td>zookeeperServers</td><td>The quorum connection string for local ZooKeeper</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
 <tr><td>brokerServicePort</td><td>The port on which the standalone broker listens for connections</td><td>6650</td></tr>
 <tr><td>webServicePort</td><td>THe port used by the standalone broker for HTTP requests</td><td>8080</td></tr>
 <tr><td>bindAddress</td><td>The hostname or IP address on which the standalone service binds</td><td>0.0.0.0</td></tr>
@@ -440,30 +440,30 @@
 <tr><th>Name</th><th>说明:</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td>zookeeperServers</td><td>The ZooKeeper quorum connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper session timeout (in milliseconds)</td><td>30000</td></tr>
-<tr><td>servicePort</td><td>The port to use for server binary Protobuf requests</td><td>6650</td></tr>
-<tr><td>servicePortTls</td><td>The port to use to server binary Protobuf TLS requests</td><td>6651</td></tr>
-<tr><td>statusFilePath</td><td>Path for the file used to determine the rotation status for the proxy instance when responding to service discovery health checks</td><td></td></tr>
-<tr><td>authenticationEnabled</td><td>Whether authentication is enabled for the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authenticationProviders</td><td>Authentication provider name list (a comma-separated list of class names)</td><td></td></tr>
-<tr><td>authorizationEnabled</td><td>Whether authorization is enforced by the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authorizationProvider</td><td>Authorization provider as a fully qualified class name</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
-<tr><td>brokerClientAuthenticationPlugin</td><td>The authentication plugin used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientAuthenticationParameters</td><td>The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientTrustCertsFilePath</td><td>The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>superUserRoles</td><td>Role names that are treated as “super-users,” meaning that they will be able to perform all admin</td><td></td></tr>
-<tr><td>forwardAuthorizationCredentials</td><td>Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.</td><td>false</td></tr>
-<tr><td>maxConcurrentInboundConnections</td><td>Max concurrent inbound connections. The proxy will reject requests beyond that.</td><td>10000</td></tr>
-<tr><td>maxConcurrentLookupRequests</td><td>Max concurrent outbound connections. The proxy will error out requests beyond that.</td><td>50000</td></tr>
-<tr><td>tlsEnabledInProxy</td><td>Whether TLS is enabled for the proxy</td><td>false</td></tr>
-<tr><td>tlsEnabledWithBroker</td><td>Whether TLS is enabled when communicating with Pulsar brokers</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
-<tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate pem file</td><td></td></tr>
-<tr><td>tlsHostnameVerificationEnabled</td><td>Whether the hostname is validated when the proxy creates a TLS connection with brokers</td><td>false</td></tr>
-<tr><td>tlsRequireTrustedClientCertOnConnect</td><td>Whether client certificates are required for TLS. Connections are rejected if the client certificate isn’t trusted.</td><td>false</td></tr>
+<tr><td>zookeeperServers</td><td>ZooKeeper仲裁连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper会话超时(以毫秒为单位)</td><td>30000</td></tr>
+<tr><td>servicePort</td><td>用于服务器二进制Protobuf请求的端口</td><td>6650</td></tr>
+<tr><td>servicePortTls</td><td>用于服务器二进制Protobuf TLS请求的端口</td><td>6651</td></tr>
+<tr><td>statusFilePath</td><td>在响应服务发现健康检查时,用于确定代理实例的轮换状态的文件的路径</td><td></td></tr>
+<tr><td>authenticationEnabled</td><td>是否为Pulsar代理启用身份验证</td><td>false</td></tr>
+<tr><td>authenticationProviders</td><td>身份验证提供者名称列表(以逗号分隔的类名列表)</td><td></td></tr>
+<tr><td>authorizationEnabled</td><td>是否由Pulsar代理强制执行授权</td><td>false</td></tr>
+<tr><td>authorizationProvider</td><td>授权提供程序的完全限定类名</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
+<tr><td>brokerClientAuthenticationPlugin</td><td>Pulsar代理使用的身份验证插件,用于对Pulsar brokers进行身份验证</td><td></td></tr>
+<tr><td>brokerClientAuthenticationParameters</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的参数</td><td></td></tr>
+<tr><td>brokerClientTrustCertsFilePath</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的可信证书的路径</td><td></td></tr>
+<tr><td>superUserRoles</td><td>“超级用户”的角色名,这意味着它们将能够执行所有管理</td><td></td></tr>
+<tr><td>forwardAuthorizationCredentials</td><td>客户端授权凭据是否转发给broker以进行重新授权。必须通过AuthenticationEnabled=true启用身份验证才能生效。</td><td>false</td></tr>
+<tr><td>maxConcurrentInboundConnections</td><td>最大进站并发连接数, 代理将拒绝超出此范围的请求。</td><td>10000</td></tr>
+<tr><td>maxConcurrentLookupRequests</td><td>最大出站并发连接数。代理将错误地输出超过此范围的请求。</td><td>50000</td></tr>
+<tr><td>tlsEnabledInProxy</td><td>是否为代理启用TLS</td><td>false</td></tr>
+<tr><td>tlsEnabledWithBroker</td><td>与Pulsar Brokers通信时是否启用TLS</td><td>false</td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
+<tr><td>tlsTrustCertsFilePath</td><td>受信任的TLS证书pem文件的路径</td><td></td></tr>
+<tr><td>tlsHostnameVerificationEnabled</td><td>当代理与brokers建立TLS连接时是否验证主机名</td><td>false</td></tr>
+<tr><td>tlsRequireTrustedClientCertOnConnect</td><td>TLS是否需要客户端证书。如果客户端证书不受信任,连接将被拒绝。</td><td>false</td></tr>
 </tbody>
 </table>
 <h2><a class="anchor" aria-hidden="true" id="zookeeper"></a><a href="#zookeeper" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-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 [...]
diff --git a/content/docs/zh-CN/2.2.0/admin-api-partitioned-topics.html b/content/docs/zh-CN/2.2.0/admin-api-partitioned-topics.html
index a7742af..5a144b8 100644
--- a/content/docs/zh-CN/2.2.0/admin-api-partitioned-topics.html
+++ b/content/docs/zh-CN/2.2.0/admin-api-partitioned-topics.html
@@ -74,9 +74,9 @@
 <p>In all of the instructions and commands below, the topic name structure is:</p>
 <pre><code class="hljs css language-shell">persistent://tenant/namespace/topic
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="partitioned-topics-资源"></a><a href="#partitioned-topics-资源" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
+<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. [...]
 <h3><a class="anchor" aria-hidden="true" id="创建"></a><a href="#创建" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>在Pulsar中, Partitioned topics 必须被显示的创建. 创建新的partitioned topic时, 你需要提供topic的名称以及所需的partition的数量.</p>
+<p>在 Pulsar 中, 必须显式的创建分区主题。创建新的分区主题时,您需要提供主题的名称以及所需的分区的数量。</p>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
 <p>你可以使用<a href="/docs/zh-CN/2.2.0/pulsar-admin#create-partitioned-topic"><code>create-partitioned-topic</code></a>命令创建partitioned topic,并指定topic的名字;使用<code>-p</code> 或 <code>--partitions</code>标志指定分区数。 这里有一个示例:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin topics create-partitioned-topic \</span>
@@ -312,7 +312,7 @@ persistent://tenant/namespace/topic2
 <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.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.0/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.0/admin-api-schemas"><span>Schema</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-资源">Partitioned topics 资源</a><ul class="toc-headings [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.0/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.0/admin-api-schemas"><span>Schema</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 [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.2.0/admin-api-partitioned-topics/index.html b/content/docs/zh-CN/2.2.0/admin-api-partitioned-topics/index.html
index a7742af..5a144b8 100644
--- a/content/docs/zh-CN/2.2.0/admin-api-partitioned-topics/index.html
+++ b/content/docs/zh-CN/2.2.0/admin-api-partitioned-topics/index.html
@@ -74,9 +74,9 @@
 <p>In all of the instructions and commands below, the topic name structure is:</p>
 <pre><code class="hljs css language-shell">persistent://tenant/namespace/topic
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="partitioned-topics-资源"></a><a href="#partitioned-topics-资源" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
+<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. [...]
 <h3><a class="anchor" aria-hidden="true" id="创建"></a><a href="#创建" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>在Pulsar中, Partitioned topics 必须被显示的创建. 创建新的partitioned topic时, 你需要提供topic的名称以及所需的partition的数量.</p>
+<p>在 Pulsar 中, 必须显式的创建分区主题。创建新的分区主题时,您需要提供主题的名称以及所需的分区的数量。</p>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
 <p>你可以使用<a href="/docs/zh-CN/2.2.0/pulsar-admin#create-partitioned-topic"><code>create-partitioned-topic</code></a>命令创建partitioned topic,并指定topic的名字;使用<code>-p</code> 或 <code>--partitions</code>标志指定分区数。 这里有一个示例:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin topics create-partitioned-topic \</span>
@@ -312,7 +312,7 @@ persistent://tenant/namespace/topic2
 <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.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.0/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.0/admin-api-schemas"><span>Schema</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-资源">Partitioned topics 资源</a><ul class="toc-headings [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.0/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.0/admin-api-schemas"><span>Schema</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 [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.2.0/administration-proxy.html b/content/docs/zh-CN/2.2.0/administration-proxy.html
index 9b5a470..243f9c8 100644
--- a/content/docs/zh-CN/2.2.0/administration-proxy.html
+++ b/content/docs/zh-CN/2.2.0/administration-proxy.html
@@ -95,30 +95,30 @@ $ bin/pulsar proxy \
 <tr><th>Name</th><th>说明:</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td>zookeeperServers</td><td>The ZooKeeper quorum connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper session timeout (in milliseconds)</td><td>30000</td></tr>
-<tr><td>servicePort</td><td>The port to use for server binary Protobuf requests</td><td>6650</td></tr>
-<tr><td>servicePortTls</td><td>The port to use to server binary Protobuf TLS requests</td><td>6651</td></tr>
-<tr><td>statusFilePath</td><td>Path for the file used to determine the rotation status for the proxy instance when responding to service discovery health checks</td><td></td></tr>
-<tr><td>authenticationEnabled</td><td>Whether authentication is enabled for the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authenticationProviders</td><td>Authentication provider name list (a comma-separated list of class names)</td><td></td></tr>
-<tr><td>authorizationEnabled</td><td>Whether authorization is enforced by the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authorizationProvider</td><td>Authorization provider as a fully qualified class name</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
-<tr><td>brokerClientAuthenticationPlugin</td><td>The authentication plugin used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientAuthenticationParameters</td><td>The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientTrustCertsFilePath</td><td>The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>superUserRoles</td><td>Role names that are treated as “super-users,” meaning that they will be able to perform all admin</td><td></td></tr>
-<tr><td>forwardAuthorizationCredentials</td><td>Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.</td><td>false</td></tr>
-<tr><td>maxConcurrentInboundConnections</td><td>Max concurrent inbound connections. The proxy will reject requests beyond that.</td><td>10000</td></tr>
-<tr><td>maxConcurrentLookupRequests</td><td>Max concurrent outbound connections. The proxy will error out requests beyond that.</td><td>50000</td></tr>
-<tr><td>tlsEnabledInProxy</td><td>Whether TLS is enabled for the proxy</td><td>false</td></tr>
-<tr><td>tlsEnabledWithBroker</td><td>Whether TLS is enabled when communicating with Pulsar brokers</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
-<tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate pem file</td><td></td></tr>
-<tr><td>tlsHostnameVerificationEnabled</td><td>Whether the hostname is validated when the proxy creates a TLS connection with brokers</td><td>false</td></tr>
-<tr><td>tlsRequireTrustedClientCertOnConnect</td><td>Whether client certificates are required for TLS. Connections are rejected if the client certificate isn’t trusted.</td><td>false</td></tr>
+<tr><td>zookeeperServers</td><td>ZooKeeper仲裁连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper会话超时(以毫秒为单位)</td><td>30000</td></tr>
+<tr><td>servicePort</td><td>用于服务器二进制Protobuf请求的端口</td><td>6650</td></tr>
+<tr><td>servicePortTls</td><td>用于服务器二进制Protobuf TLS请求的端口</td><td>6651</td></tr>
+<tr><td>statusFilePath</td><td>在响应服务发现健康检查时,用于确定代理实例的轮换状态的文件的路径</td><td></td></tr>
+<tr><td>authenticationEnabled</td><td>是否为Pulsar代理启用身份验证</td><td>false</td></tr>
+<tr><td>authenticationProviders</td><td>身份验证提供者名称列表(以逗号分隔的类名列表)</td><td></td></tr>
+<tr><td>authorizationEnabled</td><td>是否由Pulsar代理强制执行授权</td><td>false</td></tr>
+<tr><td>authorizationProvider</td><td>授权提供程序的完全限定类名</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
+<tr><td>brokerClientAuthenticationPlugin</td><td>Pulsar代理使用的身份验证插件,用于对Pulsar brokers进行身份验证</td><td></td></tr>
+<tr><td>brokerClientAuthenticationParameters</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的参数</td><td></td></tr>
+<tr><td>brokerClientTrustCertsFilePath</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的可信证书的路径</td><td></td></tr>
+<tr><td>superUserRoles</td><td>“超级用户”的角色名,这意味着它们将能够执行所有管理</td><td></td></tr>
+<tr><td>forwardAuthorizationCredentials</td><td>客户端授权凭据是否转发给broker以进行重新授权。必须通过AuthenticationEnabled=true启用身份验证才能生效。</td><td>false</td></tr>
+<tr><td>maxConcurrentInboundConnections</td><td>最大进站并发连接数, 代理将拒绝超出此范围的请求。</td><td>10000</td></tr>
+<tr><td>maxConcurrentLookupRequests</td><td>最大出站并发连接数。代理将错误地输出超过此范围的请求。</td><td>50000</td></tr>
+<tr><td>tlsEnabledInProxy</td><td>是否为代理启用TLS</td><td>false</td></tr>
+<tr><td>tlsEnabledWithBroker</td><td>与Pulsar Brokers通信时是否启用TLS</td><td>false</td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
+<tr><td>tlsTrustCertsFilePath</td><td>受信任的TLS证书pem文件的路径</td><td></td></tr>
+<tr><td>tlsHostnameVerificationEnabled</td><td>当代理与brokers建立TLS连接时是否验证主机名</td><td>false</td></tr>
+<tr><td>tlsRequireTrustedClientCertOnConnect</td><td>TLS是否需要客户端证书。如果客户端证书不受信任,连接将被拒绝。</td><td>false</td></tr>
 </tbody>
 </table>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.0/administration-load-distribution"><span class="arrow-prev">← </span><span>Load distribution</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.0/security-overview"><span>概述</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#running-the-proxy">Running the proxy</a></li><li><a href="#stopping-the-proxy" [...]
diff --git a/content/docs/zh-CN/2.2.0/administration-proxy/index.html b/content/docs/zh-CN/2.2.0/administration-proxy/index.html
index 9b5a470..243f9c8 100644
--- a/content/docs/zh-CN/2.2.0/administration-proxy/index.html
+++ b/content/docs/zh-CN/2.2.0/administration-proxy/index.html
@@ -95,30 +95,30 @@ $ bin/pulsar proxy \
 <tr><th>Name</th><th>说明:</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td>zookeeperServers</td><td>The ZooKeeper quorum connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper session timeout (in milliseconds)</td><td>30000</td></tr>
-<tr><td>servicePort</td><td>The port to use for server binary Protobuf requests</td><td>6650</td></tr>
-<tr><td>servicePortTls</td><td>The port to use to server binary Protobuf TLS requests</td><td>6651</td></tr>
-<tr><td>statusFilePath</td><td>Path for the file used to determine the rotation status for the proxy instance when responding to service discovery health checks</td><td></td></tr>
-<tr><td>authenticationEnabled</td><td>Whether authentication is enabled for the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authenticationProviders</td><td>Authentication provider name list (a comma-separated list of class names)</td><td></td></tr>
-<tr><td>authorizationEnabled</td><td>Whether authorization is enforced by the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authorizationProvider</td><td>Authorization provider as a fully qualified class name</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
-<tr><td>brokerClientAuthenticationPlugin</td><td>The authentication plugin used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientAuthenticationParameters</td><td>The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientTrustCertsFilePath</td><td>The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>superUserRoles</td><td>Role names that are treated as “super-users,” meaning that they will be able to perform all admin</td><td></td></tr>
-<tr><td>forwardAuthorizationCredentials</td><td>Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.</td><td>false</td></tr>
-<tr><td>maxConcurrentInboundConnections</td><td>Max concurrent inbound connections. The proxy will reject requests beyond that.</td><td>10000</td></tr>
-<tr><td>maxConcurrentLookupRequests</td><td>Max concurrent outbound connections. The proxy will error out requests beyond that.</td><td>50000</td></tr>
-<tr><td>tlsEnabledInProxy</td><td>Whether TLS is enabled for the proxy</td><td>false</td></tr>
-<tr><td>tlsEnabledWithBroker</td><td>Whether TLS is enabled when communicating with Pulsar brokers</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
-<tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate pem file</td><td></td></tr>
-<tr><td>tlsHostnameVerificationEnabled</td><td>Whether the hostname is validated when the proxy creates a TLS connection with brokers</td><td>false</td></tr>
-<tr><td>tlsRequireTrustedClientCertOnConnect</td><td>Whether client certificates are required for TLS. Connections are rejected if the client certificate isn’t trusted.</td><td>false</td></tr>
+<tr><td>zookeeperServers</td><td>ZooKeeper仲裁连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper会话超时(以毫秒为单位)</td><td>30000</td></tr>
+<tr><td>servicePort</td><td>用于服务器二进制Protobuf请求的端口</td><td>6650</td></tr>
+<tr><td>servicePortTls</td><td>用于服务器二进制Protobuf TLS请求的端口</td><td>6651</td></tr>
+<tr><td>statusFilePath</td><td>在响应服务发现健康检查时,用于确定代理实例的轮换状态的文件的路径</td><td></td></tr>
+<tr><td>authenticationEnabled</td><td>是否为Pulsar代理启用身份验证</td><td>false</td></tr>
+<tr><td>authenticationProviders</td><td>身份验证提供者名称列表(以逗号分隔的类名列表)</td><td></td></tr>
+<tr><td>authorizationEnabled</td><td>是否由Pulsar代理强制执行授权</td><td>false</td></tr>
+<tr><td>authorizationProvider</td><td>授权提供程序的完全限定类名</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
+<tr><td>brokerClientAuthenticationPlugin</td><td>Pulsar代理使用的身份验证插件,用于对Pulsar brokers进行身份验证</td><td></td></tr>
+<tr><td>brokerClientAuthenticationParameters</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的参数</td><td></td></tr>
+<tr><td>brokerClientTrustCertsFilePath</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的可信证书的路径</td><td></td></tr>
+<tr><td>superUserRoles</td><td>“超级用户”的角色名,这意味着它们将能够执行所有管理</td><td></td></tr>
+<tr><td>forwardAuthorizationCredentials</td><td>客户端授权凭据是否转发给broker以进行重新授权。必须通过AuthenticationEnabled=true启用身份验证才能生效。</td><td>false</td></tr>
+<tr><td>maxConcurrentInboundConnections</td><td>最大进站并发连接数, 代理将拒绝超出此范围的请求。</td><td>10000</td></tr>
+<tr><td>maxConcurrentLookupRequests</td><td>最大出站并发连接数。代理将错误地输出超过此范围的请求。</td><td>50000</td></tr>
+<tr><td>tlsEnabledInProxy</td><td>是否为代理启用TLS</td><td>false</td></tr>
+<tr><td>tlsEnabledWithBroker</td><td>与Pulsar Brokers通信时是否启用TLS</td><td>false</td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
+<tr><td>tlsTrustCertsFilePath</td><td>受信任的TLS证书pem文件的路径</td><td></td></tr>
+<tr><td>tlsHostnameVerificationEnabled</td><td>当代理与brokers建立TLS连接时是否验证主机名</td><td>false</td></tr>
+<tr><td>tlsRequireTrustedClientCertOnConnect</td><td>TLS是否需要客户端证书。如果客户端证书不受信任,连接将被拒绝。</td><td>false</td></tr>
 </tbody>
 </table>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.0/administration-load-distribution"><span class="arrow-prev">← </span><span>Load distribution</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.0/security-overview"><span>概述</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#running-the-proxy">Running the proxy</a></li><li><a href="#stopping-the-proxy" [...]
diff --git a/content/docs/zh-CN/2.2.0/concepts-messaging.html b/content/docs/zh-CN/2.2.0/concepts-messaging.html
index 4c7971f..6947444 100644
--- a/content/docs/zh-CN/2.2.0/concepts-messaging.html
+++ b/content/docs/zh-CN/2.2.0/concepts-messaging.html
@@ -254,9 +254,9 @@ Consumer someTopicsConsumer = pulsarClient.subscribe(someTopicsInNamespace, "sub
 </table>
 <p>这些默认的模式之外,你还可以创建客制化的路由模式,如果你在使用<a href="client-libraries-java.md">Java client</a>,可以通过实现MessageRouter接口来做客制化。</p>
 <h2><a class="anchor" aria-hidden="true" id="非持久topic"></a><a href="#非持久topic" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>默认的,Pulsar保存<em>所有</em>没有确认的消息到多个<a href="concepts-architecture-overview.md#persistent-storage">BookKeeper</a>的bookies中(存储节点)。持久topic的消息数据可以在broker重启或者订阅者出问题的情况下存活下来。 Data for messages on persistent topics can thus survive broker restarts and subscriber failover.</p>
-<p>Pulsar also, however, supports <strong>non-persistent topics</strong>, which are topics on which messages are <em>never</em> persisted to disk and live only in memory. Pulsar也提供了非持久topic。非持久topic的消息不会被保存在硬盘上,只存活于内存中。当使用非持久topic分发时,杀掉Pulsar的broker或者关闭订阅者,此topic( non-persistent))上所有的瞬时消息都会丢失,意味着客户端可能会遇到消息缺失。</p>
-<p>Non-persistent topics have names of this form (note the <code>non-persistent</code> in the name):</p>
+<p>默认的,Pulsar保存<em>所有</em>没有确认的消息到多个<a href="concepts-architecture-overview.md#persistent-storage">BookKeeper</a>的bookies中(存储节点)。持久topic的消息数据可以在broker重启或者订阅者出问题的情况下存活下来。 因此,持久性主题上的消息数据可以在 broker 重启和订阅者故障转移之后继续存在。</p>
+<p>但是,Pulsar还支持<strong>非持久性主题</strong>,这些主题的消息<em>从不</em>持久存储到磁盘,只存在于内存中。 Pulsar也提供了非持久topic。非持久topic的消息不会被保存在硬盘上,只存活于内存中。当使用非持久topic分发时,杀掉Pulsar的broker或者关闭订阅者,此topic( non-persistent))上所有的瞬时消息都会丢失,意味着客户端可能会遇到消息缺失。</p>
+<p>非持久性主题具有这种形式的名称(注意名称中的 <code>non-persistent</code>):</p>
 <pre><code class="hljs css language-http">non-persistent://tenant/namespace/topic
 </code></pre>
 <blockquote>
diff --git a/content/docs/zh-CN/2.2.0/concepts-messaging/index.html b/content/docs/zh-CN/2.2.0/concepts-messaging/index.html
index 4c7971f..6947444 100644
--- a/content/docs/zh-CN/2.2.0/concepts-messaging/index.html
+++ b/content/docs/zh-CN/2.2.0/concepts-messaging/index.html
@@ -254,9 +254,9 @@ Consumer someTopicsConsumer = pulsarClient.subscribe(someTopicsInNamespace, "sub
 </table>
 <p>这些默认的模式之外,你还可以创建客制化的路由模式,如果你在使用<a href="client-libraries-java.md">Java client</a>,可以通过实现MessageRouter接口来做客制化。</p>
 <h2><a class="anchor" aria-hidden="true" id="非持久topic"></a><a href="#非持久topic" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>默认的,Pulsar保存<em>所有</em>没有确认的消息到多个<a href="concepts-architecture-overview.md#persistent-storage">BookKeeper</a>的bookies中(存储节点)。持久topic的消息数据可以在broker重启或者订阅者出问题的情况下存活下来。 Data for messages on persistent topics can thus survive broker restarts and subscriber failover.</p>
-<p>Pulsar also, however, supports <strong>non-persistent topics</strong>, which are topics on which messages are <em>never</em> persisted to disk and live only in memory. Pulsar也提供了非持久topic。非持久topic的消息不会被保存在硬盘上,只存活于内存中。当使用非持久topic分发时,杀掉Pulsar的broker或者关闭订阅者,此topic( non-persistent))上所有的瞬时消息都会丢失,意味着客户端可能会遇到消息缺失。</p>
-<p>Non-persistent topics have names of this form (note the <code>non-persistent</code> in the name):</p>
+<p>默认的,Pulsar保存<em>所有</em>没有确认的消息到多个<a href="concepts-architecture-overview.md#persistent-storage">BookKeeper</a>的bookies中(存储节点)。持久topic的消息数据可以在broker重启或者订阅者出问题的情况下存活下来。 因此,持久性主题上的消息数据可以在 broker 重启和订阅者故障转移之后继续存在。</p>
+<p>但是,Pulsar还支持<strong>非持久性主题</strong>,这些主题的消息<em>从不</em>持久存储到磁盘,只存在于内存中。 Pulsar也提供了非持久topic。非持久topic的消息不会被保存在硬盘上,只存活于内存中。当使用非持久topic分发时,杀掉Pulsar的broker或者关闭订阅者,此topic( non-persistent))上所有的瞬时消息都会丢失,意味着客户端可能会遇到消息缺失。</p>
+<p>非持久性主题具有这种形式的名称(注意名称中的 <code>non-persistent</code>):</p>
 <pre><code class="hljs css language-http">non-persistent://tenant/namespace/topic
 </code></pre>
 <blockquote>
diff --git a/content/docs/zh-CN/2.2.0/cookbooks-deduplication.html b/content/docs/zh-CN/2.2.0/cookbooks-deduplication.html
index b71bb37..7341bbd 100644
--- a/content/docs/zh-CN/2.2.0/cookbooks-deduplication.html
+++ b/content/docs/zh-CN/2.2.0/cookbooks-deduplication.html
@@ -159,7 +159,7 @@ Producer producer;
 
 Result result = client.createProducer(topic, producerConfig, producer);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.0/cookbooks-compaction"><span class="arrow-prev">← </span><span>Topic compaction</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.0/cookbooks-non-persistent"><span>Non-persistent messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a href="#configuration [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.0/cookbooks-compaction"><span class="arrow-prev">← </span><span>Topic compaction</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.0/cookbooks-non-persistent"><span>非持久化消息</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a href="#configuration-for-message-dedup [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.2.0/cookbooks-deduplication/index.html b/content/docs/zh-CN/2.2.0/cookbooks-deduplication/index.html
index b71bb37..7341bbd 100644
--- a/content/docs/zh-CN/2.2.0/cookbooks-deduplication/index.html
+++ b/content/docs/zh-CN/2.2.0/cookbooks-deduplication/index.html
@@ -159,7 +159,7 @@ Producer producer;
 
 Result result = client.createProducer(topic, producerConfig, producer);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.0/cookbooks-compaction"><span class="arrow-prev">← </span><span>Topic compaction</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.0/cookbooks-non-persistent"><span>Non-persistent messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a href="#configuration [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.0/cookbooks-compaction"><span class="arrow-prev">← </span><span>Topic compaction</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.0/cookbooks-non-persistent"><span>非持久化消息</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a href="#configuration-for-message-dedup [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.2.0/cookbooks-non-persistent.html b/content/docs/zh-CN/2.2.0/cookbooks-non-persistent.html
index 4822c52..36e446b 100644
--- a/content/docs/zh-CN/2.2.0/cookbooks-non-persistent.html
+++ b/content/docs/zh-CN/2.2.0/cookbooks-non-persistent.html
@@ -1,5 +1,5 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Non-persistent messaging · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;&lt;strong&gt;Non-persistent topics&lt;/strong&gt; are Pulsar topics in which message data is &lt;em&gt;never&lt;/em&gt; &lt;a href=&quot;/docs/zh-CN/2.2.0/concepts-architecture-ov [...]
-"/><meta name="docsearch:version" content="2.2.0"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Non-persistent messaging · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;&lt;strong&gt;Non-persistent topics&lt;/strong&gt; are Pulsar topics in which message data is &lt;em&gt;never&lt;/em&gt; &lt;a href=&quot;/docs/zh-C [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Non-persistent messaging · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;&lt;strong&gt;非持久性主题&lt;/strong&gt;也是 Pulsar 的一种主题,其中消息数据&lt;em&gt;永远不会&lt;/em&gt;&lt;a href=&quot;/docs/zh-CN/2.2.0/concepts-architecture-overview#persistent-storage&quot;&gt;持久存储 [...]
+"/><meta name="docsearch:version" content="2.2.0"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Non-persistent messaging · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;&lt;strong&gt;非持久性主题&lt;/strong&gt;也是 Pulsar 的一种主题,其中消息数据&lt;em&gt;永远不会&lt;/em&gt;&lt;a href=&quot;/docs/zh-CN/2.2.0/concepts-architecture-overview# [...]
 "/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://pulsar.incubator.apache.org/img/pulsar.svg"/><link rel="shortcut icon" href="/img/pulsar.ico"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><link rel="alternate" type="application/atom+xml" href="https://pulsar.incubator.apache.org/blog/atom.x [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
@@ -70,45 +70,45 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Non-persistent messaging</h1></header><article><div><span><p><strong>Non-persistent topics</strong> are Pulsar topics in which message data is <em>never</em> <a href="/docs/zh-CN/2.2.0/conc [...]
+        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Non-persistent messaging</h1></header><article><div><span><p><strong>非持久性主题</strong>也是 Pulsar 的一种主题,其中消息数据<em>永远不会</em><a href="/docs/zh-CN/2.2.0/concepts-architecture-overview#persistent-s [...]
 <ul>
-<li>A basic <a href="#overview">conceptual overview</a> of non-persistent topics</li>
-<li>Information about <a href="#configuration">configurable parameters</a> related to non-persistent topics</li>
-<li>A guide to the <a href="#cli">CLI interface</a> for managing non-persistent topics</li>
+<li>非持久性主题的基本<a href="#overview">概念概述</a></li>
+<li>非持久性主题相关的<a href="#configuration">可配置参数</a>信息</li>
+<li>用于管理非持久性主题<a href="#cli"> CLI(命令行工具)</a>指南</li>
 </ul>
 <h2><a class="anchor" aria-hidden="true" id="概述"></a><a href="#概述" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>By default, Pulsar persistently stores <em>all</em> unacknowledged messages on multiple <a href="#persistent-storage">BookKeeper</a> bookies (storage nodes). Data for messages on persistent topics can thus survive broker restarts and subscriber failover.</p>
-<p>Pulsar also, however, supports <strong>non-persistent topics</strong>, which are topics on which messages are <em>never</em> persisted to disk and live only in memory. When using non-persistent delivery, killing a Pulsar <a href="/docs/zh-CN/2.2.0/reference-terminology#broker">broker</a> or disconnecting a subscriber to a topic means that all in-transit messages are lost on that (non-persistent) topic, meaning that clients may see message loss.</p>
-<p>Non-persistent topics have names of this form (note the <code>non-persistent</code> in the name):</p>
+<p>默认情况下,Pulsar会在多个<a href="#persistent-storage"> BookKeeper </a> bookies(存储节点)上持续存储<em>所有</em>未确认的消息。 因此,持久性主题上的消息数据可以在 broker 重启和订阅者故障转移之后继续存在。</p>
+<p>但是,Pulsar还支持<strong>非持久性主题</strong>,这些主题的消息<em>从不</em>持久存储到磁盘,只存在于内存中。 使用非持久性主题传输时,当某个 Pulsar <a href="/docs/zh-CN/2.2.0/reference-terminology#broker">broker</a>宕机,或断开订阅者与某个主题(非持久性)的连接意味着所有正在传输的消息都会丢失,客户端也可能会看到消息的丢失。</p>
+<p>非持久性主题具有这种形式的名称(注意名称中的 <code>non-persistent</code>):</p>
 <pre><code class="hljs css language-http">non-persistent://tenant/namespace/topic
 </code></pre>
 <blockquote>
-<p>For more high-level information about non-persistent topics, see the <a href="/docs/zh-CN/2.2.0/concepts-messaging#non-persistent-topics">Concepts and Architecture</a> documentation.</p>
+<p>有关非持久性主题的更多高级信息,请参见 <a href="/docs/zh-CN/2.2.0/concepts-messaging#non-persistent-topics">Concepts and Architecture</a> 文档。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="using"></a><a href="#using" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
+<h2><a class="anchor" aria-hidden="true" id="使用"></a><a href="#使用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <blockquote>
-<p>In order to use non-persistent topics, they must be <a href="#enabling">enabled</a> in your Pulsar broker configuration.</p>
+<p>要使用非持久性主题,必须在 Pulsar broker 配置中<a href="#enabling">启用</a>。</p>
 </blockquote>
-<p>In order to use non-persistent topics, you only need to differentiate them by name when interacting with them. This <a href="/docs/zh-CN/2.2.0/reference-cli-tools#pulsar-client-produce"><code>pulsar-client produce</code></a> command, for example, would produce one message on a non-persistent topic in a standalone cluster:</p>
+<p>为了使用非持久性主题,你只需要在与它们交互时按名称区分它们。 例如,此<a href="/docs/zh-CN/2.2.0/reference-cli-tools#pulsar-client-produce"> <code>pulsar-client produce</code> </a>命令将在单集群的非持久性主题上生产一条消息:</p>
 <pre><code class="hljs css language-bash">$ bin/pulsar-client produce non-persistent://public/default/example-np-topic \
   --num-produce 1 \
   --messages <span class="hljs-string">"This message will be stored only in memory"</span>
 </code></pre>
 <blockquote>
-<p>For a more thorough guide to non-persistent topics from an administrative perspective, see the <a href="/docs/zh-CN/2.2.0/admin-api-non-persistent-topics">Non-persistent topics</a> guide.</p>
+<p>要从管理的角度获得关于非持久性主题的更详细的指南,请参阅<a href="/docs/zh-CN/2.2.0/admin-api-non-persistent-topics">非持久性主题</a>指南。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="enabling"></a><a href="#enabling" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 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>In order to enable non-persistent topics in a Pulsar broker, the <a href="/docs/zh-CN/2.2.0/reference-configuration#broker-enableNonPersistentTopics"><code>enableNonPersistentTopics</code></a> must be set to <code>true</code>. This is the default, and so you won't need to take any action to enable non-persistent messaging.</p>
+<h2><a class="anchor" aria-hidden="true" id="启用"></a><a href="#启用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>为了在 Pulsar broker 中启用非持久性主题,必须将 <a href="/docs/zh-CN/2.2.0/reference-configuration#broker-enableNonPersistentTopics"><code>enableNonPersistentTopics</code></a> 设置为<code>true</code>。 你无需采取任何操作来启用非持久性消息传递,因为这是默认设置。</p>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="configuration-for-standalone-mode"></a><a href="#configuration-for-standalone-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.5S1 [...]
-<p>If you're running Pulsar in standalone mode, the same configurable parameters are available but in the <a href="/docs/zh-CN/2.2.0/reference-configuration#standalone"><code>standalone.conf</code></a> configuration file.</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- [...]
+<p>如果你在独立模式下运行 Pulsar,则可以在<a href="/docs/zh-CN/2.2.0/reference-configuration#standalone"> <code>standalone.conf</code> </a>配置文件中使用相同的可配置参数。</p>
 </blockquote>
-<p>If you'd like to enable <em>only</em> non-persistent topics in a broker, you can set the <a href="/docs/zh-CN/2.2.0/reference-configuration#broker-enablePersistentTopics"><code>enablePersistentTopics</code></a> parameter to <code>false</code> and the <code>enableNonPersistentTopics</code> parameter to <code>true</code>.</p>
-<h2><a class="anchor" aria-hidden="true" id="managing-with-cli"></a><a href="#managing-with-cli" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
-<p>Non-persistent topics can be managed using the <a href="/docs/zh-CN/2.2.0/pulsar-admin#non-persistent"><code>pulsar-admin non-persistent</code></a> command-line interface. With that interface you can perform actions like <a href="/docs/zh-CN/2.2.0/pulsar-admin#non-persistent-create-partitioned-topic">create a partitioned non-persistent topic</a>, get <a href="/docs/zh-CN/2.2.0/pulsar-admin#non-persistent-stats">stats</a> for a non-persistent topic, <a href="/docs/zh-CN/2.2.0/pulsar-ad [...]
-<h2><a class="anchor" aria-hidden="true" id="using-with-pulsar-clients"></a><a href="#using-with-pulsar-clients" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c [...]
-<p>You shouldn't need to make any changes to your Pulsar clients to use non-persistent messaging beyond making sure that you use proper <a href="#using">topic names</a> with <code>non-persistent</code> as the topic type.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.0/cookbooks-deduplication"><span class="arrow-prev">← </span><span>Message deduplication</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.0/cookbooks-partitioned"><span>分区Topic</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#概述">概述</a></li><li><a href="#using">Using</a></li><li><a href="#enabling"> [...]
+<p>如果你<em>只</em>想在 Broker 中启用非持久性主题,则可以将<a href="/docs/zh-CN/2.2.0/reference-configuration#broker-enablePersistentTopics">enablePersistentTopics</code></a>参数设置为<code>false</code>,将 <code>enableNonPersistentTopics</code>参数设置为<code>true</code>。</p>
+<h2><a class="anchor" aria-hidden="true" id="使用cli-命令行工具-管理"></a><a href="#使用cli-命令行工具-管理" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
+<p>可以使用<a href="/docs/zh-CN/2.2.0/pulsar-admin#non-persistent"> <code>pulsar-admin non-persistent</code> </a>命令行管理非持久性主题。 使用命令行工具,你可以执行诸如<a href="/docs/zh-CN/2.2.0/pulsar-admin#non-persistent-create-partitioned-topic">创建分区非持久性主题</a>,获取非持久主题的<a href="/docs/zh-CN/2.2.0/pulsar-admin#non-persistent-stats">统计信息</a>,获取命名空间下的非持久主题<a href="/docs/zh-CN/2.2.0/pulsar-admin">列表</a>等操作。</p>
+<h2><a class="anchor" aria-hidden="true" id="与pulsar客户端一起使用"></a><a href="#与pulsar客户端一起使用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 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>除了确保使用具有<code>非持久性</code>的正确<a href="#using">主题名称</a>作为主题类型之外,你不应该对 Pulsar 客户端进行任何更改以使用非持久性消息传递。</p>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.0/cookbooks-deduplication"><span class="arrow-prev">← </span><span>Message deduplication</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.0/cookbooks-partitioned"><span>分区Topic</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#概述">概述</a></li><li><a href="#使用">使用</a></li><li><a href="#启用">启用</a></li>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.2.0/cookbooks-non-persistent/index.html b/content/docs/zh-CN/2.2.0/cookbooks-non-persistent/index.html
index 4822c52..36e446b 100644
--- a/content/docs/zh-CN/2.2.0/cookbooks-non-persistent/index.html
+++ b/content/docs/zh-CN/2.2.0/cookbooks-non-persistent/index.html
@@ -1,5 +1,5 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Non-persistent messaging · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;&lt;strong&gt;Non-persistent topics&lt;/strong&gt; are Pulsar topics in which message data is &lt;em&gt;never&lt;/em&gt; &lt;a href=&quot;/docs/zh-CN/2.2.0/concepts-architecture-ov [...]
-"/><meta name="docsearch:version" content="2.2.0"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Non-persistent messaging · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;&lt;strong&gt;Non-persistent topics&lt;/strong&gt; are Pulsar topics in which message data is &lt;em&gt;never&lt;/em&gt; &lt;a href=&quot;/docs/zh-C [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Non-persistent messaging · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;&lt;strong&gt;非持久性主题&lt;/strong&gt;也是 Pulsar 的一种主题,其中消息数据&lt;em&gt;永远不会&lt;/em&gt;&lt;a href=&quot;/docs/zh-CN/2.2.0/concepts-architecture-overview#persistent-storage&quot;&gt;持久存储 [...]
+"/><meta name="docsearch:version" content="2.2.0"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Non-persistent messaging · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;&lt;strong&gt;非持久性主题&lt;/strong&gt;也是 Pulsar 的一种主题,其中消息数据&lt;em&gt;永远不会&lt;/em&gt;&lt;a href=&quot;/docs/zh-CN/2.2.0/concepts-architecture-overview# [...]
 "/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://pulsar.incubator.apache.org/img/pulsar.svg"/><link rel="shortcut icon" href="/img/pulsar.ico"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><link rel="alternate" type="application/atom+xml" href="https://pulsar.incubator.apache.org/blog/atom.x [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
@@ -70,45 +70,45 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Non-persistent messaging</h1></header><article><div><span><p><strong>Non-persistent topics</strong> are Pulsar topics in which message data is <em>never</em> <a href="/docs/zh-CN/2.2.0/conc [...]
+        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Non-persistent messaging</h1></header><article><div><span><p><strong>非持久性主题</strong>也是 Pulsar 的一种主题,其中消息数据<em>永远不会</em><a href="/docs/zh-CN/2.2.0/concepts-architecture-overview#persistent-s [...]
 <ul>
-<li>A basic <a href="#overview">conceptual overview</a> of non-persistent topics</li>
-<li>Information about <a href="#configuration">configurable parameters</a> related to non-persistent topics</li>
-<li>A guide to the <a href="#cli">CLI interface</a> for managing non-persistent topics</li>
+<li>非持久性主题的基本<a href="#overview">概念概述</a></li>
+<li>非持久性主题相关的<a href="#configuration">可配置参数</a>信息</li>
+<li>用于管理非持久性主题<a href="#cli"> CLI(命令行工具)</a>指南</li>
 </ul>
 <h2><a class="anchor" aria-hidden="true" id="概述"></a><a href="#概述" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>By default, Pulsar persistently stores <em>all</em> unacknowledged messages on multiple <a href="#persistent-storage">BookKeeper</a> bookies (storage nodes). Data for messages on persistent topics can thus survive broker restarts and subscriber failover.</p>
-<p>Pulsar also, however, supports <strong>non-persistent topics</strong>, which are topics on which messages are <em>never</em> persisted to disk and live only in memory. When using non-persistent delivery, killing a Pulsar <a href="/docs/zh-CN/2.2.0/reference-terminology#broker">broker</a> or disconnecting a subscriber to a topic means that all in-transit messages are lost on that (non-persistent) topic, meaning that clients may see message loss.</p>
-<p>Non-persistent topics have names of this form (note the <code>non-persistent</code> in the name):</p>
+<p>默认情况下,Pulsar会在多个<a href="#persistent-storage"> BookKeeper </a> bookies(存储节点)上持续存储<em>所有</em>未确认的消息。 因此,持久性主题上的消息数据可以在 broker 重启和订阅者故障转移之后继续存在。</p>
+<p>但是,Pulsar还支持<strong>非持久性主题</strong>,这些主题的消息<em>从不</em>持久存储到磁盘,只存在于内存中。 使用非持久性主题传输时,当某个 Pulsar <a href="/docs/zh-CN/2.2.0/reference-terminology#broker">broker</a>宕机,或断开订阅者与某个主题(非持久性)的连接意味着所有正在传输的消息都会丢失,客户端也可能会看到消息的丢失。</p>
+<p>非持久性主题具有这种形式的名称(注意名称中的 <code>non-persistent</code>):</p>
 <pre><code class="hljs css language-http">non-persistent://tenant/namespace/topic
 </code></pre>
 <blockquote>
-<p>For more high-level information about non-persistent topics, see the <a href="/docs/zh-CN/2.2.0/concepts-messaging#non-persistent-topics">Concepts and Architecture</a> documentation.</p>
+<p>有关非持久性主题的更多高级信息,请参见 <a href="/docs/zh-CN/2.2.0/concepts-messaging#non-persistent-topics">Concepts and Architecture</a> 文档。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="using"></a><a href="#using" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
+<h2><a class="anchor" aria-hidden="true" id="使用"></a><a href="#使用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <blockquote>
-<p>In order to use non-persistent topics, they must be <a href="#enabling">enabled</a> in your Pulsar broker configuration.</p>
+<p>要使用非持久性主题,必须在 Pulsar broker 配置中<a href="#enabling">启用</a>。</p>
 </blockquote>
-<p>In order to use non-persistent topics, you only need to differentiate them by name when interacting with them. This <a href="/docs/zh-CN/2.2.0/reference-cli-tools#pulsar-client-produce"><code>pulsar-client produce</code></a> command, for example, would produce one message on a non-persistent topic in a standalone cluster:</p>
+<p>为了使用非持久性主题,你只需要在与它们交互时按名称区分它们。 例如,此<a href="/docs/zh-CN/2.2.0/reference-cli-tools#pulsar-client-produce"> <code>pulsar-client produce</code> </a>命令将在单集群的非持久性主题上生产一条消息:</p>
 <pre><code class="hljs css language-bash">$ bin/pulsar-client produce non-persistent://public/default/example-np-topic \
   --num-produce 1 \
   --messages <span class="hljs-string">"This message will be stored only in memory"</span>
 </code></pre>
 <blockquote>
-<p>For a more thorough guide to non-persistent topics from an administrative perspective, see the <a href="/docs/zh-CN/2.2.0/admin-api-non-persistent-topics">Non-persistent topics</a> guide.</p>
+<p>要从管理的角度获得关于非持久性主题的更详细的指南,请参阅<a href="/docs/zh-CN/2.2.0/admin-api-non-persistent-topics">非持久性主题</a>指南。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="enabling"></a><a href="#enabling" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 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>In order to enable non-persistent topics in a Pulsar broker, the <a href="/docs/zh-CN/2.2.0/reference-configuration#broker-enableNonPersistentTopics"><code>enableNonPersistentTopics</code></a> must be set to <code>true</code>. This is the default, and so you won't need to take any action to enable non-persistent messaging.</p>
+<h2><a class="anchor" aria-hidden="true" id="启用"></a><a href="#启用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>为了在 Pulsar broker 中启用非持久性主题,必须将 <a href="/docs/zh-CN/2.2.0/reference-configuration#broker-enableNonPersistentTopics"><code>enableNonPersistentTopics</code></a> 设置为<code>true</code>。 你无需采取任何操作来启用非持久性消息传递,因为这是默认设置。</p>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="configuration-for-standalone-mode"></a><a href="#configuration-for-standalone-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.5S1 [...]
-<p>If you're running Pulsar in standalone mode, the same configurable parameters are available but in the <a href="/docs/zh-CN/2.2.0/reference-configuration#standalone"><code>standalone.conf</code></a> configuration file.</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- [...]
+<p>如果你在独立模式下运行 Pulsar,则可以在<a href="/docs/zh-CN/2.2.0/reference-configuration#standalone"> <code>standalone.conf</code> </a>配置文件中使用相同的可配置参数。</p>
 </blockquote>
-<p>If you'd like to enable <em>only</em> non-persistent topics in a broker, you can set the <a href="/docs/zh-CN/2.2.0/reference-configuration#broker-enablePersistentTopics"><code>enablePersistentTopics</code></a> parameter to <code>false</code> and the <code>enableNonPersistentTopics</code> parameter to <code>true</code>.</p>
-<h2><a class="anchor" aria-hidden="true" id="managing-with-cli"></a><a href="#managing-with-cli" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
-<p>Non-persistent topics can be managed using the <a href="/docs/zh-CN/2.2.0/pulsar-admin#non-persistent"><code>pulsar-admin non-persistent</code></a> command-line interface. With that interface you can perform actions like <a href="/docs/zh-CN/2.2.0/pulsar-admin#non-persistent-create-partitioned-topic">create a partitioned non-persistent topic</a>, get <a href="/docs/zh-CN/2.2.0/pulsar-admin#non-persistent-stats">stats</a> for a non-persistent topic, <a href="/docs/zh-CN/2.2.0/pulsar-ad [...]
-<h2><a class="anchor" aria-hidden="true" id="using-with-pulsar-clients"></a><a href="#using-with-pulsar-clients" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c [...]
-<p>You shouldn't need to make any changes to your Pulsar clients to use non-persistent messaging beyond making sure that you use proper <a href="#using">topic names</a> with <code>non-persistent</code> as the topic type.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.0/cookbooks-deduplication"><span class="arrow-prev">← </span><span>Message deduplication</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.0/cookbooks-partitioned"><span>分区Topic</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#概述">概述</a></li><li><a href="#using">Using</a></li><li><a href="#enabling"> [...]
+<p>如果你<em>只</em>想在 Broker 中启用非持久性主题,则可以将<a href="/docs/zh-CN/2.2.0/reference-configuration#broker-enablePersistentTopics">enablePersistentTopics</code></a>参数设置为<code>false</code>,将 <code>enableNonPersistentTopics</code>参数设置为<code>true</code>。</p>
+<h2><a class="anchor" aria-hidden="true" id="使用cli-命令行工具-管理"></a><a href="#使用cli-命令行工具-管理" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
+<p>可以使用<a href="/docs/zh-CN/2.2.0/pulsar-admin#non-persistent"> <code>pulsar-admin non-persistent</code> </a>命令行管理非持久性主题。 使用命令行工具,你可以执行诸如<a href="/docs/zh-CN/2.2.0/pulsar-admin#non-persistent-create-partitioned-topic">创建分区非持久性主题</a>,获取非持久主题的<a href="/docs/zh-CN/2.2.0/pulsar-admin#non-persistent-stats">统计信息</a>,获取命名空间下的非持久主题<a href="/docs/zh-CN/2.2.0/pulsar-admin">列表</a>等操作。</p>
+<h2><a class="anchor" aria-hidden="true" id="与pulsar客户端一起使用"></a><a href="#与pulsar客户端一起使用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 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>除了确保使用具有<code>非持久性</code>的正确<a href="#using">主题名称</a>作为主题类型之外,你不应该对 Pulsar 客户端进行任何更改以使用非持久性消息传递。</p>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.0/cookbooks-deduplication"><span class="arrow-prev">← </span><span>Message deduplication</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.0/cookbooks-partitioned"><span>分区Topic</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#概述">概述</a></li><li><a href="#使用">使用</a></li><li><a href="#启用">启用</a></li>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.2.0/cookbooks-partitioned.html b/content/docs/zh-CN/2.2.0/cookbooks-partitioned.html
index eb7a786..7bfbcbb 100644
--- a/content/docs/zh-CN/2.2.0/cookbooks-partitioned.html
+++ b/content/docs/zh-CN/2.2.0/cookbooks-partitioned.html
@@ -121,7 +121,7 @@ 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- [...]
 <p>您可以使用Pulsar的<a href="/docs/zh-CN/2.2.0/admin-api-overview"> admin API </a>来创建和管理<a href="/docs/zh-CN/2.2.0/admin-api-partitioned-topics">分区主题</a>。</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.0/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>Non-persistent messaging</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.0/cookbooks-retention-expiry"><span>Message retention and expiry</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" [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.0/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.0/cookbooks-retention-expiry"><span>Message retention and expiry</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="#jav [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.2.0/cookbooks-partitioned/index.html b/content/docs/zh-CN/2.2.0/cookbooks-partitioned/index.html
index eb7a786..7bfbcbb 100644
--- a/content/docs/zh-CN/2.2.0/cookbooks-partitioned/index.html
+++ b/content/docs/zh-CN/2.2.0/cookbooks-partitioned/index.html
@@ -121,7 +121,7 @@ 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- [...]
 <p>您可以使用Pulsar的<a href="/docs/zh-CN/2.2.0/admin-api-overview"> admin API </a>来创建和管理<a href="/docs/zh-CN/2.2.0/admin-api-partitioned-topics">分区主题</a>。</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.0/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>Non-persistent messaging</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.0/cookbooks-retention-expiry"><span>Message retention and expiry</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" [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.0/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.0/cookbooks-retention-expiry"><span>Message retention and expiry</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="#jav [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.2.0/reference-configuration.html b/content/docs/zh-CN/2.2.0/reference-configuration.html
index 50a0d65..c57a6a5 100644
--- a/content/docs/zh-CN/2.2.0/reference-configuration.html
+++ b/content/docs/zh-CN/2.2.0/reference-configuration.html
@@ -170,7 +170,7 @@
 <tr><td>enableNonPersistentTopics</td><td>Whether non-persistent topics are enabled on the broker</td><td>true</td></tr>
 <tr><td>functionsWorkerEnabled</td><td>Whether the Pulsar Functions worker service is enabled in the broker</td><td>false</td></tr>
 <tr><td>zookeeperServers</td><td>Zookeeper quorum connection string</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
 <tr><td>brokerServicePort</td><td>Broker data port</td><td>6650</td></tr>
 <tr><td>brokerServicePortTls</td><td>Broker data port for TLS</td><td>6651</td></tr>
 <tr><td>webServicePort</td><td>Port to use to server HTTP request</td><td>8080</td></tr>
@@ -198,8 +198,8 @@
 <tr><td>statusFilePath</td><td>Path for the file used to determine the rotation status for the broker when responding to service discovery health checks</td><td></td></tr>
 <tr><td>preferLaterVersions</td><td>If true, (and ModularLoadManagerImpl is being used), the load manager will attempt to use only brokers running the latest software version (to minimize impact to bundles)</td><td>false</td></tr>
 <tr><td>tlsEnabled</td><td>Enable TLS</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
 <tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate file</td><td></td></tr>
 <tr><td>tlsAllowInsecureConnection</td><td>Accept untrusted TLS certificate from client</td><td>false</td></tr>
 <tr><td>maxUnackedMessagesPerConsumer</td><td>Max number of unacknowledged messages allowed to receive messages by a consumer on a shared subscription. Broker will stop sending messages to consumer once, this limit reaches until consumer starts acknowledging messages back. Using a value of 0, is disabling unackeMessage limit check and consumer can receive messages without any restriction</td><td>50000</td></tr>
@@ -261,7 +261,7 @@
 </thead>
 <tbody>
 <tr><td>zookeeperServers</td><td>Zookeeper quorum connection string (comma-separated)</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
 <tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper session timeout</td><td>30000</td></tr>
 <tr><td>servicePort</td><td>Port to use to server binary-proto request</td><td>6650</td></tr>
 <tr><td>servicePortTls</td><td>Port to use to server binary-proto-tls request</td><td>6651</td></tr>
@@ -273,8 +273,8 @@
 <tr><td>authorizationEnabled</td><td>Enforce authorization</td><td>false</td></tr>
 <tr><td>superUserRoles</td><td>Role names that are treated as “super-user”, meaning they will be able to do all admin operations and publish/consume from all topics (comma-separated)</td><td></td></tr>
 <tr><td>tlsEnabled</td><td>Enable TLS</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
 </tbody>
 </table>
 <h2><a class="anchor" aria-hidden="true" id="log4j"></a><a href="#log4j" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
@@ -327,7 +327,7 @@
 </thead>
 <tbody>
 <tr><td>zookeeperServers</td><td>The quorum connection string for local ZooKeeper</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
 <tr><td>brokerServicePort</td><td>The port on which the standalone broker listens for connections</td><td>6650</td></tr>
 <tr><td>webServicePort</td><td>THe port used by the standalone broker for HTTP requests</td><td>8080</td></tr>
 <tr><td>bindAddress</td><td>The hostname or IP address on which the standalone service binds</td><td>0.0.0.0</td></tr>
@@ -440,30 +440,30 @@
 <tr><th>Name</th><th>说明:</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td>zookeeperServers</td><td>The ZooKeeper quorum connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper session timeout (in milliseconds)</td><td>30000</td></tr>
-<tr><td>servicePort</td><td>The port to use for server binary Protobuf requests</td><td>6650</td></tr>
-<tr><td>servicePortTls</td><td>The port to use to server binary Protobuf TLS requests</td><td>6651</td></tr>
-<tr><td>statusFilePath</td><td>Path for the file used to determine the rotation status for the proxy instance when responding to service discovery health checks</td><td></td></tr>
-<tr><td>authenticationEnabled</td><td>Whether authentication is enabled for the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authenticationProviders</td><td>Authentication provider name list (a comma-separated list of class names)</td><td></td></tr>
-<tr><td>authorizationEnabled</td><td>Whether authorization is enforced by the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authorizationProvider</td><td>Authorization provider as a fully qualified class name</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
-<tr><td>brokerClientAuthenticationPlugin</td><td>The authentication plugin used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientAuthenticationParameters</td><td>The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientTrustCertsFilePath</td><td>The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>superUserRoles</td><td>Role names that are treated as “super-users,” meaning that they will be able to perform all admin</td><td></td></tr>
-<tr><td>forwardAuthorizationCredentials</td><td>Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.</td><td>false</td></tr>
-<tr><td>maxConcurrentInboundConnections</td><td>Max concurrent inbound connections. The proxy will reject requests beyond that.</td><td>10000</td></tr>
-<tr><td>maxConcurrentLookupRequests</td><td>Max concurrent outbound connections. The proxy will error out requests beyond that.</td><td>50000</td></tr>
-<tr><td>tlsEnabledInProxy</td><td>Whether TLS is enabled for the proxy</td><td>false</td></tr>
-<tr><td>tlsEnabledWithBroker</td><td>Whether TLS is enabled when communicating with Pulsar brokers</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
-<tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate pem file</td><td></td></tr>
-<tr><td>tlsHostnameVerificationEnabled</td><td>Whether the hostname is validated when the proxy creates a TLS connection with brokers</td><td>false</td></tr>
-<tr><td>tlsRequireTrustedClientCertOnConnect</td><td>Whether client certificates are required for TLS. Connections are rejected if the client certificate isn’t trusted.</td><td>false</td></tr>
+<tr><td>zookeeperServers</td><td>ZooKeeper仲裁连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper会话超时(以毫秒为单位)</td><td>30000</td></tr>
+<tr><td>servicePort</td><td>用于服务器二进制Protobuf请求的端口</td><td>6650</td></tr>
+<tr><td>servicePortTls</td><td>用于服务器二进制Protobuf TLS请求的端口</td><td>6651</td></tr>
+<tr><td>statusFilePath</td><td>在响应服务发现健康检查时,用于确定代理实例的轮换状态的文件的路径</td><td></td></tr>
+<tr><td>authenticationEnabled</td><td>是否为Pulsar代理启用身份验证</td><td>false</td></tr>
+<tr><td>authenticationProviders</td><td>身份验证提供者名称列表(以逗号分隔的类名列表)</td><td></td></tr>
+<tr><td>authorizationEnabled</td><td>是否由Pulsar代理强制执行授权</td><td>false</td></tr>
+<tr><td>authorizationProvider</td><td>授权提供程序的完全限定类名</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
+<tr><td>brokerClientAuthenticationPlugin</td><td>Pulsar代理使用的身份验证插件,用于对Pulsar brokers进行身份验证</td><td></td></tr>
+<tr><td>brokerClientAuthenticationParameters</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的参数</td><td></td></tr>
+<tr><td>brokerClientTrustCertsFilePath</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的可信证书的路径</td><td></td></tr>
+<tr><td>superUserRoles</td><td>“超级用户”的角色名,这意味着它们将能够执行所有管理</td><td></td></tr>
+<tr><td>forwardAuthorizationCredentials</td><td>客户端授权凭据是否转发给broker以进行重新授权。必须通过AuthenticationEnabled=true启用身份验证才能生效。</td><td>false</td></tr>
+<tr><td>maxConcurrentInboundConnections</td><td>最大进站并发连接数, 代理将拒绝超出此范围的请求。</td><td>10000</td></tr>
+<tr><td>maxConcurrentLookupRequests</td><td>最大出站并发连接数。代理将错误地输出超过此范围的请求。</td><td>50000</td></tr>
+<tr><td>tlsEnabledInProxy</td><td>是否为代理启用TLS</td><td>false</td></tr>
+<tr><td>tlsEnabledWithBroker</td><td>与Pulsar Brokers通信时是否启用TLS</td><td>false</td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
+<tr><td>tlsTrustCertsFilePath</td><td>受信任的TLS证书pem文件的路径</td><td></td></tr>
+<tr><td>tlsHostnameVerificationEnabled</td><td>当代理与brokers建立TLS连接时是否验证主机名</td><td>false</td></tr>
+<tr><td>tlsRequireTrustedClientCertOnConnect</td><td>TLS是否需要客户端证书。如果客户端证书不受信任,连接将被拒绝。</td><td>false</td></tr>
 </tbody>
 </table>
 <h2><a class="anchor" aria-hidden="true" id="zookeeper"></a><a href="#zookeeper" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-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 [...]
diff --git a/content/docs/zh-CN/2.2.0/reference-configuration/index.html b/content/docs/zh-CN/2.2.0/reference-configuration/index.html
index 50a0d65..c57a6a5 100644
--- a/content/docs/zh-CN/2.2.0/reference-configuration/index.html
+++ b/content/docs/zh-CN/2.2.0/reference-configuration/index.html
@@ -170,7 +170,7 @@
 <tr><td>enableNonPersistentTopics</td><td>Whether non-persistent topics are enabled on the broker</td><td>true</td></tr>
 <tr><td>functionsWorkerEnabled</td><td>Whether the Pulsar Functions worker service is enabled in the broker</td><td>false</td></tr>
 <tr><td>zookeeperServers</td><td>Zookeeper quorum connection string</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
 <tr><td>brokerServicePort</td><td>Broker data port</td><td>6650</td></tr>
 <tr><td>brokerServicePortTls</td><td>Broker data port for TLS</td><td>6651</td></tr>
 <tr><td>webServicePort</td><td>Port to use to server HTTP request</td><td>8080</td></tr>
@@ -198,8 +198,8 @@
 <tr><td>statusFilePath</td><td>Path for the file used to determine the rotation status for the broker when responding to service discovery health checks</td><td></td></tr>
 <tr><td>preferLaterVersions</td><td>If true, (and ModularLoadManagerImpl is being used), the load manager will attempt to use only brokers running the latest software version (to minimize impact to bundles)</td><td>false</td></tr>
 <tr><td>tlsEnabled</td><td>Enable TLS</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
 <tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate file</td><td></td></tr>
 <tr><td>tlsAllowInsecureConnection</td><td>Accept untrusted TLS certificate from client</td><td>false</td></tr>
 <tr><td>maxUnackedMessagesPerConsumer</td><td>Max number of unacknowledged messages allowed to receive messages by a consumer on a shared subscription. Broker will stop sending messages to consumer once, this limit reaches until consumer starts acknowledging messages back. Using a value of 0, is disabling unackeMessage limit check and consumer can receive messages without any restriction</td><td>50000</td></tr>
@@ -261,7 +261,7 @@
 </thead>
 <tbody>
 <tr><td>zookeeperServers</td><td>Zookeeper quorum connection string (comma-separated)</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
 <tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper session timeout</td><td>30000</td></tr>
 <tr><td>servicePort</td><td>Port to use to server binary-proto request</td><td>6650</td></tr>
 <tr><td>servicePortTls</td><td>Port to use to server binary-proto-tls request</td><td>6651</td></tr>
@@ -273,8 +273,8 @@
 <tr><td>authorizationEnabled</td><td>Enforce authorization</td><td>false</td></tr>
 <tr><td>superUserRoles</td><td>Role names that are treated as “super-user”, meaning they will be able to do all admin operations and publish/consume from all topics (comma-separated)</td><td></td></tr>
 <tr><td>tlsEnabled</td><td>Enable TLS</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
 </tbody>
 </table>
 <h2><a class="anchor" aria-hidden="true" id="log4j"></a><a href="#log4j" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
@@ -327,7 +327,7 @@
 </thead>
 <tbody>
 <tr><td>zookeeperServers</td><td>The quorum connection string for local ZooKeeper</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
 <tr><td>brokerServicePort</td><td>The port on which the standalone broker listens for connections</td><td>6650</td></tr>
 <tr><td>webServicePort</td><td>THe port used by the standalone broker for HTTP requests</td><td>8080</td></tr>
 <tr><td>bindAddress</td><td>The hostname or IP address on which the standalone service binds</td><td>0.0.0.0</td></tr>
@@ -440,30 +440,30 @@
 <tr><th>Name</th><th>说明:</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td>zookeeperServers</td><td>The ZooKeeper quorum connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper session timeout (in milliseconds)</td><td>30000</td></tr>
-<tr><td>servicePort</td><td>The port to use for server binary Protobuf requests</td><td>6650</td></tr>
-<tr><td>servicePortTls</td><td>The port to use to server binary Protobuf TLS requests</td><td>6651</td></tr>
-<tr><td>statusFilePath</td><td>Path for the file used to determine the rotation status for the proxy instance when responding to service discovery health checks</td><td></td></tr>
-<tr><td>authenticationEnabled</td><td>Whether authentication is enabled for the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authenticationProviders</td><td>Authentication provider name list (a comma-separated list of class names)</td><td></td></tr>
-<tr><td>authorizationEnabled</td><td>Whether authorization is enforced by the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authorizationProvider</td><td>Authorization provider as a fully qualified class name</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
-<tr><td>brokerClientAuthenticationPlugin</td><td>The authentication plugin used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientAuthenticationParameters</td><td>The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientTrustCertsFilePath</td><td>The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>superUserRoles</td><td>Role names that are treated as “super-users,” meaning that they will be able to perform all admin</td><td></td></tr>
-<tr><td>forwardAuthorizationCredentials</td><td>Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.</td><td>false</td></tr>
-<tr><td>maxConcurrentInboundConnections</td><td>Max concurrent inbound connections. The proxy will reject requests beyond that.</td><td>10000</td></tr>
-<tr><td>maxConcurrentLookupRequests</td><td>Max concurrent outbound connections. The proxy will error out requests beyond that.</td><td>50000</td></tr>
-<tr><td>tlsEnabledInProxy</td><td>Whether TLS is enabled for the proxy</td><td>false</td></tr>
-<tr><td>tlsEnabledWithBroker</td><td>Whether TLS is enabled when communicating with Pulsar brokers</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
-<tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate pem file</td><td></td></tr>
-<tr><td>tlsHostnameVerificationEnabled</td><td>Whether the hostname is validated when the proxy creates a TLS connection with brokers</td><td>false</td></tr>
-<tr><td>tlsRequireTrustedClientCertOnConnect</td><td>Whether client certificates are required for TLS. Connections are rejected if the client certificate isn’t trusted.</td><td>false</td></tr>
+<tr><td>zookeeperServers</td><td>ZooKeeper仲裁连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper会话超时(以毫秒为单位)</td><td>30000</td></tr>
+<tr><td>servicePort</td><td>用于服务器二进制Protobuf请求的端口</td><td>6650</td></tr>
+<tr><td>servicePortTls</td><td>用于服务器二进制Protobuf TLS请求的端口</td><td>6651</td></tr>
+<tr><td>statusFilePath</td><td>在响应服务发现健康检查时,用于确定代理实例的轮换状态的文件的路径</td><td></td></tr>
+<tr><td>authenticationEnabled</td><td>是否为Pulsar代理启用身份验证</td><td>false</td></tr>
+<tr><td>authenticationProviders</td><td>身份验证提供者名称列表(以逗号分隔的类名列表)</td><td></td></tr>
+<tr><td>authorizationEnabled</td><td>是否由Pulsar代理强制执行授权</td><td>false</td></tr>
+<tr><td>authorizationProvider</td><td>授权提供程序的完全限定类名</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
+<tr><td>brokerClientAuthenticationPlugin</td><td>Pulsar代理使用的身份验证插件,用于对Pulsar brokers进行身份验证</td><td></td></tr>
+<tr><td>brokerClientAuthenticationParameters</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的参数</td><td></td></tr>
+<tr><td>brokerClientTrustCertsFilePath</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的可信证书的路径</td><td></td></tr>
+<tr><td>superUserRoles</td><td>“超级用户”的角色名,这意味着它们将能够执行所有管理</td><td></td></tr>
+<tr><td>forwardAuthorizationCredentials</td><td>客户端授权凭据是否转发给broker以进行重新授权。必须通过AuthenticationEnabled=true启用身份验证才能生效。</td><td>false</td></tr>
+<tr><td>maxConcurrentInboundConnections</td><td>最大进站并发连接数, 代理将拒绝超出此范围的请求。</td><td>10000</td></tr>
+<tr><td>maxConcurrentLookupRequests</td><td>最大出站并发连接数。代理将错误地输出超过此范围的请求。</td><td>50000</td></tr>
+<tr><td>tlsEnabledInProxy</td><td>是否为代理启用TLS</td><td>false</td></tr>
+<tr><td>tlsEnabledWithBroker</td><td>与Pulsar Brokers通信时是否启用TLS</td><td>false</td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
+<tr><td>tlsTrustCertsFilePath</td><td>受信任的TLS证书pem文件的路径</td><td></td></tr>
+<tr><td>tlsHostnameVerificationEnabled</td><td>当代理与brokers建立TLS连接时是否验证主机名</td><td>false</td></tr>
+<tr><td>tlsRequireTrustedClientCertOnConnect</td><td>TLS是否需要客户端证书。如果客户端证书不受信任,连接将被拒绝。</td><td>false</td></tr>
 </tbody>
 </table>
 <h2><a class="anchor" aria-hidden="true" id="zookeeper"></a><a href="#zookeeper" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-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 [...]
diff --git a/content/docs/zh-CN/2.2.1/admin-api-partitioned-topics.html b/content/docs/zh-CN/2.2.1/admin-api-partitioned-topics.html
index 878add1..3f74409 100644
--- a/content/docs/zh-CN/2.2.1/admin-api-partitioned-topics.html
+++ b/content/docs/zh-CN/2.2.1/admin-api-partitioned-topics.html
@@ -74,9 +74,9 @@
 <p>In all of the instructions and commands below, the topic name structure is:</p>
 <pre><code class="hljs css language-shell">persistent://tenant/namespace/topic
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="partitioned-topics-资源"></a><a href="#partitioned-topics-资源" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
+<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. [...]
 <h3><a class="anchor" aria-hidden="true" id="创建"></a><a href="#创建" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>在Pulsar中, Partitioned topics 必须被显示的创建. 创建新的partitioned topic时, 你需要提供topic的名称以及所需的partition的数量.</p>
+<p>在 Pulsar 中, 必须显式的创建分区主题。创建新的分区主题时,您需要提供主题的名称以及所需的分区的数量。</p>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
 <p>你可以使用<a href="/docs/zh-CN/2.2.1/pulsar-admin#create-partitioned-topic"><code>create-partitioned-topic</code></a>命令创建partitioned topic,并指定topic的名字;使用<code>-p</code> 或 <code>--partitions</code>标志指定分区数。 这里有一个示例:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin topics create-partitioned-topic \</span>
@@ -312,7 +312,7 @@ persistent://tenant/namespace/topic2
 <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.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.1/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.1/admin-api-schemas"><span>Schema</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-资源">Partitioned topics 资源</a><ul class="toc-headings [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.1/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.1/admin-api-schemas"><span>Schema</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 [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.2.1/admin-api-partitioned-topics/index.html b/content/docs/zh-CN/2.2.1/admin-api-partitioned-topics/index.html
index 878add1..3f74409 100644
--- a/content/docs/zh-CN/2.2.1/admin-api-partitioned-topics/index.html
+++ b/content/docs/zh-CN/2.2.1/admin-api-partitioned-topics/index.html
@@ -74,9 +74,9 @@
 <p>In all of the instructions and commands below, the topic name structure is:</p>
 <pre><code class="hljs css language-shell">persistent://tenant/namespace/topic
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="partitioned-topics-资源"></a><a href="#partitioned-topics-资源" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
+<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. [...]
 <h3><a class="anchor" aria-hidden="true" id="创建"></a><a href="#创建" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>在Pulsar中, Partitioned topics 必须被显示的创建. 创建新的partitioned topic时, 你需要提供topic的名称以及所需的partition的数量.</p>
+<p>在 Pulsar 中, 必须显式的创建分区主题。创建新的分区主题时,您需要提供主题的名称以及所需的分区的数量。</p>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
 <p>你可以使用<a href="/docs/zh-CN/2.2.1/pulsar-admin#create-partitioned-topic"><code>create-partitioned-topic</code></a>命令创建partitioned topic,并指定topic的名字;使用<code>-p</code> 或 <code>--partitions</code>标志指定分区数。 这里有一个示例:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin topics create-partitioned-topic \</span>
@@ -312,7 +312,7 @@ persistent://tenant/namespace/topic2
 <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.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.1/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.1/admin-api-schemas"><span>Schema</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-资源">Partitioned topics 资源</a><ul class="toc-headings [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.1/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.1/admin-api-schemas"><span>Schema</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 [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.2.1/administration-proxy.html b/content/docs/zh-CN/2.2.1/administration-proxy.html
index 1c3dbfc..373aca9 100644
--- a/content/docs/zh-CN/2.2.1/administration-proxy.html
+++ b/content/docs/zh-CN/2.2.1/administration-proxy.html
@@ -95,30 +95,30 @@ $ bin/pulsar proxy \
 <tr><th>Name</th><th>说明:</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td>zookeeperServers</td><td>The ZooKeeper quorum connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper session timeout (in milliseconds)</td><td>30000</td></tr>
-<tr><td>servicePort</td><td>The port to use for server binary Protobuf requests</td><td>6650</td></tr>
-<tr><td>servicePortTls</td><td>The port to use to server binary Protobuf TLS requests</td><td>6651</td></tr>
-<tr><td>statusFilePath</td><td>Path for the file used to determine the rotation status for the proxy instance when responding to service discovery health checks</td><td></td></tr>
-<tr><td>authenticationEnabled</td><td>Whether authentication is enabled for the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authenticationProviders</td><td>Authentication provider name list (a comma-separated list of class names)</td><td></td></tr>
-<tr><td>authorizationEnabled</td><td>Whether authorization is enforced by the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authorizationProvider</td><td>Authorization provider as a fully qualified class name</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
-<tr><td>brokerClientAuthenticationPlugin</td><td>The authentication plugin used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientAuthenticationParameters</td><td>The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientTrustCertsFilePath</td><td>The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>superUserRoles</td><td>Role names that are treated as “super-users,” meaning that they will be able to perform all admin</td><td></td></tr>
-<tr><td>forwardAuthorizationCredentials</td><td>Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.</td><td>false</td></tr>
-<tr><td>maxConcurrentInboundConnections</td><td>Max concurrent inbound connections. The proxy will reject requests beyond that.</td><td>10000</td></tr>
-<tr><td>maxConcurrentLookupRequests</td><td>Max concurrent outbound connections. The proxy will error out requests beyond that.</td><td>50000</td></tr>
-<tr><td>tlsEnabledInProxy</td><td>Whether TLS is enabled for the proxy</td><td>false</td></tr>
-<tr><td>tlsEnabledWithBroker</td><td>Whether TLS is enabled when communicating with Pulsar brokers</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
-<tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate pem file</td><td></td></tr>
-<tr><td>tlsHostnameVerificationEnabled</td><td>Whether the hostname is validated when the proxy creates a TLS connection with brokers</td><td>false</td></tr>
-<tr><td>tlsRequireTrustedClientCertOnConnect</td><td>Whether client certificates are required for TLS. Connections are rejected if the client certificate isn’t trusted.</td><td>false</td></tr>
+<tr><td>zookeeperServers</td><td>ZooKeeper仲裁连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper会话超时(以毫秒为单位)</td><td>30000</td></tr>
+<tr><td>servicePort</td><td>用于服务器二进制Protobuf请求的端口</td><td>6650</td></tr>
+<tr><td>servicePortTls</td><td>用于服务器二进制Protobuf TLS请求的端口</td><td>6651</td></tr>
+<tr><td>statusFilePath</td><td>在响应服务发现健康检查时,用于确定代理实例的轮换状态的文件的路径</td><td></td></tr>
+<tr><td>authenticationEnabled</td><td>是否为Pulsar代理启用身份验证</td><td>false</td></tr>
+<tr><td>authenticationProviders</td><td>身份验证提供者名称列表(以逗号分隔的类名列表)</td><td></td></tr>
+<tr><td>authorizationEnabled</td><td>是否由Pulsar代理强制执行授权</td><td>false</td></tr>
+<tr><td>authorizationProvider</td><td>授权提供程序的完全限定类名</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
+<tr><td>brokerClientAuthenticationPlugin</td><td>Pulsar代理使用的身份验证插件,用于对Pulsar brokers进行身份验证</td><td></td></tr>
+<tr><td>brokerClientAuthenticationParameters</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的参数</td><td></td></tr>
+<tr><td>brokerClientTrustCertsFilePath</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的可信证书的路径</td><td></td></tr>
+<tr><td>superUserRoles</td><td>“超级用户”的角色名,这意味着它们将能够执行所有管理</td><td></td></tr>
+<tr><td>forwardAuthorizationCredentials</td><td>客户端授权凭据是否转发给broker以进行重新授权。必须通过AuthenticationEnabled=true启用身份验证才能生效。</td><td>false</td></tr>
+<tr><td>maxConcurrentInboundConnections</td><td>最大进站并发连接数, 代理将拒绝超出此范围的请求。</td><td>10000</td></tr>
+<tr><td>maxConcurrentLookupRequests</td><td>最大出站并发连接数。代理将错误地输出超过此范围的请求。</td><td>50000</td></tr>
+<tr><td>tlsEnabledInProxy</td><td>是否为代理启用TLS</td><td>false</td></tr>
+<tr><td>tlsEnabledWithBroker</td><td>与Pulsar Brokers通信时是否启用TLS</td><td>false</td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
+<tr><td>tlsTrustCertsFilePath</td><td>受信任的TLS证书pem文件的路径</td><td></td></tr>
+<tr><td>tlsHostnameVerificationEnabled</td><td>当代理与brokers建立TLS连接时是否验证主机名</td><td>false</td></tr>
+<tr><td>tlsRequireTrustedClientCertOnConnect</td><td>TLS是否需要客户端证书。如果客户端证书不受信任,连接将被拒绝。</td><td>false</td></tr>
 </tbody>
 </table>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.1/administration-load-distribution"><span class="arrow-prev">← </span><span>Load distribution</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.1/security-overview"><span>概述</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#running-the-proxy">Running the proxy</a></li><li><a href="#stopping-the-proxy" [...]
diff --git a/content/docs/zh-CN/2.2.1/administration-proxy/index.html b/content/docs/zh-CN/2.2.1/administration-proxy/index.html
index 1c3dbfc..373aca9 100644
--- a/content/docs/zh-CN/2.2.1/administration-proxy/index.html
+++ b/content/docs/zh-CN/2.2.1/administration-proxy/index.html
@@ -95,30 +95,30 @@ $ bin/pulsar proxy \
 <tr><th>Name</th><th>说明:</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td>zookeeperServers</td><td>The ZooKeeper quorum connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper session timeout (in milliseconds)</td><td>30000</td></tr>
-<tr><td>servicePort</td><td>The port to use for server binary Protobuf requests</td><td>6650</td></tr>
-<tr><td>servicePortTls</td><td>The port to use to server binary Protobuf TLS requests</td><td>6651</td></tr>
-<tr><td>statusFilePath</td><td>Path for the file used to determine the rotation status for the proxy instance when responding to service discovery health checks</td><td></td></tr>
-<tr><td>authenticationEnabled</td><td>Whether authentication is enabled for the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authenticationProviders</td><td>Authentication provider name list (a comma-separated list of class names)</td><td></td></tr>
-<tr><td>authorizationEnabled</td><td>Whether authorization is enforced by the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authorizationProvider</td><td>Authorization provider as a fully qualified class name</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
-<tr><td>brokerClientAuthenticationPlugin</td><td>The authentication plugin used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientAuthenticationParameters</td><td>The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientTrustCertsFilePath</td><td>The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>superUserRoles</td><td>Role names that are treated as “super-users,” meaning that they will be able to perform all admin</td><td></td></tr>
-<tr><td>forwardAuthorizationCredentials</td><td>Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.</td><td>false</td></tr>
-<tr><td>maxConcurrentInboundConnections</td><td>Max concurrent inbound connections. The proxy will reject requests beyond that.</td><td>10000</td></tr>
-<tr><td>maxConcurrentLookupRequests</td><td>Max concurrent outbound connections. The proxy will error out requests beyond that.</td><td>50000</td></tr>
-<tr><td>tlsEnabledInProxy</td><td>Whether TLS is enabled for the proxy</td><td>false</td></tr>
-<tr><td>tlsEnabledWithBroker</td><td>Whether TLS is enabled when communicating with Pulsar brokers</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
-<tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate pem file</td><td></td></tr>
-<tr><td>tlsHostnameVerificationEnabled</td><td>Whether the hostname is validated when the proxy creates a TLS connection with brokers</td><td>false</td></tr>
-<tr><td>tlsRequireTrustedClientCertOnConnect</td><td>Whether client certificates are required for TLS. Connections are rejected if the client certificate isn’t trusted.</td><td>false</td></tr>
+<tr><td>zookeeperServers</td><td>ZooKeeper仲裁连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper会话超时(以毫秒为单位)</td><td>30000</td></tr>
+<tr><td>servicePort</td><td>用于服务器二进制Protobuf请求的端口</td><td>6650</td></tr>
+<tr><td>servicePortTls</td><td>用于服务器二进制Protobuf TLS请求的端口</td><td>6651</td></tr>
+<tr><td>statusFilePath</td><td>在响应服务发现健康检查时,用于确定代理实例的轮换状态的文件的路径</td><td></td></tr>
+<tr><td>authenticationEnabled</td><td>是否为Pulsar代理启用身份验证</td><td>false</td></tr>
+<tr><td>authenticationProviders</td><td>身份验证提供者名称列表(以逗号分隔的类名列表)</td><td></td></tr>
+<tr><td>authorizationEnabled</td><td>是否由Pulsar代理强制执行授权</td><td>false</td></tr>
+<tr><td>authorizationProvider</td><td>授权提供程序的完全限定类名</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
+<tr><td>brokerClientAuthenticationPlugin</td><td>Pulsar代理使用的身份验证插件,用于对Pulsar brokers进行身份验证</td><td></td></tr>
+<tr><td>brokerClientAuthenticationParameters</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的参数</td><td></td></tr>
+<tr><td>brokerClientTrustCertsFilePath</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的可信证书的路径</td><td></td></tr>
+<tr><td>superUserRoles</td><td>“超级用户”的角色名,这意味着它们将能够执行所有管理</td><td></td></tr>
+<tr><td>forwardAuthorizationCredentials</td><td>客户端授权凭据是否转发给broker以进行重新授权。必须通过AuthenticationEnabled=true启用身份验证才能生效。</td><td>false</td></tr>
+<tr><td>maxConcurrentInboundConnections</td><td>最大进站并发连接数, 代理将拒绝超出此范围的请求。</td><td>10000</td></tr>
+<tr><td>maxConcurrentLookupRequests</td><td>最大出站并发连接数。代理将错误地输出超过此范围的请求。</td><td>50000</td></tr>
+<tr><td>tlsEnabledInProxy</td><td>是否为代理启用TLS</td><td>false</td></tr>
+<tr><td>tlsEnabledWithBroker</td><td>与Pulsar Brokers通信时是否启用TLS</td><td>false</td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
+<tr><td>tlsTrustCertsFilePath</td><td>受信任的TLS证书pem文件的路径</td><td></td></tr>
+<tr><td>tlsHostnameVerificationEnabled</td><td>当代理与brokers建立TLS连接时是否验证主机名</td><td>false</td></tr>
+<tr><td>tlsRequireTrustedClientCertOnConnect</td><td>TLS是否需要客户端证书。如果客户端证书不受信任,连接将被拒绝。</td><td>false</td></tr>
 </tbody>
 </table>
 </span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.1/administration-load-distribution"><span class="arrow-prev">← </span><span>Load distribution</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.1/security-overview"><span>概述</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#running-the-proxy">Running the proxy</a></li><li><a href="#stopping-the-proxy" [...]
diff --git a/content/docs/zh-CN/2.2.1/concepts-messaging.html b/content/docs/zh-CN/2.2.1/concepts-messaging.html
index f6db17b..390ea82 100644
--- a/content/docs/zh-CN/2.2.1/concepts-messaging.html
+++ b/content/docs/zh-CN/2.2.1/concepts-messaging.html
@@ -254,9 +254,9 @@ Consumer someTopicsConsumer = pulsarClient.subscribe(someTopicsInNamespace, "sub
 </table>
 <p>这些默认的模式之外,你还可以创建客制化的路由模式,如果你在使用<a href="client-libraries-java.md">Java client</a>,可以通过实现MessageRouter接口来做客制化。</p>
 <h2><a class="anchor" aria-hidden="true" id="非持久topic"></a><a href="#非持久topic" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>默认的,Pulsar保存<em>所有</em>没有确认的消息到多个<a href="concepts-architecture-overview.md#persistent-storage">BookKeeper</a>的bookies中(存储节点)。持久topic的消息数据可以在broker重启或者订阅者出问题的情况下存活下来。 Data for messages on persistent topics can thus survive broker restarts and subscriber failover.</p>
-<p>Pulsar also, however, supports <strong>non-persistent topics</strong>, which are topics on which messages are <em>never</em> persisted to disk and live only in memory. Pulsar也提供了非持久topic。非持久topic的消息不会被保存在硬盘上,只存活于内存中。当使用非持久topic分发时,杀掉Pulsar的broker或者关闭订阅者,此topic( non-persistent))上所有的瞬时消息都会丢失,意味着客户端可能会遇到消息缺失。</p>
-<p>Non-persistent topics have names of this form (note the <code>non-persistent</code> in the name):</p>
+<p>默认的,Pulsar保存<em>所有</em>没有确认的消息到多个<a href="concepts-architecture-overview.md#persistent-storage">BookKeeper</a>的bookies中(存储节点)。持久topic的消息数据可以在broker重启或者订阅者出问题的情况下存活下来。 因此,持久性主题上的消息数据可以在 broker 重启和订阅者故障转移之后继续存在。</p>
+<p>但是,Pulsar还支持<strong>非持久性主题</strong>,这些主题的消息<em>从不</em>持久存储到磁盘,只存在于内存中。 Pulsar也提供了非持久topic。非持久topic的消息不会被保存在硬盘上,只存活于内存中。当使用非持久topic分发时,杀掉Pulsar的broker或者关闭订阅者,此topic( non-persistent))上所有的瞬时消息都会丢失,意味着客户端可能会遇到消息缺失。</p>
+<p>非持久性主题具有这种形式的名称(注意名称中的 <code>non-persistent</code>):</p>
 <pre><code class="hljs css language-http">non-persistent://tenant/namespace/topic
 </code></pre>
 <blockquote>
diff --git a/content/docs/zh-CN/2.2.1/concepts-messaging/index.html b/content/docs/zh-CN/2.2.1/concepts-messaging/index.html
index f6db17b..390ea82 100644
--- a/content/docs/zh-CN/2.2.1/concepts-messaging/index.html
+++ b/content/docs/zh-CN/2.2.1/concepts-messaging/index.html
@@ -254,9 +254,9 @@ Consumer someTopicsConsumer = pulsarClient.subscribe(someTopicsInNamespace, "sub
 </table>
 <p>这些默认的模式之外,你还可以创建客制化的路由模式,如果你在使用<a href="client-libraries-java.md">Java client</a>,可以通过实现MessageRouter接口来做客制化。</p>
 <h2><a class="anchor" aria-hidden="true" id="非持久topic"></a><a href="#非持久topic" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>默认的,Pulsar保存<em>所有</em>没有确认的消息到多个<a href="concepts-architecture-overview.md#persistent-storage">BookKeeper</a>的bookies中(存储节点)。持久topic的消息数据可以在broker重启或者订阅者出问题的情况下存活下来。 Data for messages on persistent topics can thus survive broker restarts and subscriber failover.</p>
-<p>Pulsar also, however, supports <strong>non-persistent topics</strong>, which are topics on which messages are <em>never</em> persisted to disk and live only in memory. Pulsar也提供了非持久topic。非持久topic的消息不会被保存在硬盘上,只存活于内存中。当使用非持久topic分发时,杀掉Pulsar的broker或者关闭订阅者,此topic( non-persistent))上所有的瞬时消息都会丢失,意味着客户端可能会遇到消息缺失。</p>
-<p>Non-persistent topics have names of this form (note the <code>non-persistent</code> in the name):</p>
+<p>默认的,Pulsar保存<em>所有</em>没有确认的消息到多个<a href="concepts-architecture-overview.md#persistent-storage">BookKeeper</a>的bookies中(存储节点)。持久topic的消息数据可以在broker重启或者订阅者出问题的情况下存活下来。 因此,持久性主题上的消息数据可以在 broker 重启和订阅者故障转移之后继续存在。</p>
+<p>但是,Pulsar还支持<strong>非持久性主题</strong>,这些主题的消息<em>从不</em>持久存储到磁盘,只存在于内存中。 Pulsar也提供了非持久topic。非持久topic的消息不会被保存在硬盘上,只存活于内存中。当使用非持久topic分发时,杀掉Pulsar的broker或者关闭订阅者,此topic( non-persistent))上所有的瞬时消息都会丢失,意味着客户端可能会遇到消息缺失。</p>
+<p>非持久性主题具有这种形式的名称(注意名称中的 <code>non-persistent</code>):</p>
 <pre><code class="hljs css language-http">non-persistent://tenant/namespace/topic
 </code></pre>
 <blockquote>
diff --git a/content/docs/zh-CN/2.2.1/cookbooks-deduplication.html b/content/docs/zh-CN/2.2.1/cookbooks-deduplication.html
index 3c4a3f3..34f03e8 100644
--- a/content/docs/zh-CN/2.2.1/cookbooks-deduplication.html
+++ b/content/docs/zh-CN/2.2.1/cookbooks-deduplication.html
@@ -159,7 +159,7 @@ Producer producer;
 
 Result result = client.createProducer(topic, producerConfig, producer);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.1/cookbooks-compaction"><span class="arrow-prev">← </span><span>Topic compaction</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.1/cookbooks-non-persistent"><span>Non-persistent messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a href="#configuration [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.1/cookbooks-compaction"><span class="arrow-prev">← </span><span>Topic compaction</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.1/cookbooks-non-persistent"><span>非持久化消息</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a href="#configuration-for-message-dedup [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.2.1/cookbooks-deduplication/index.html b/content/docs/zh-CN/2.2.1/cookbooks-deduplication/index.html
index 3c4a3f3..34f03e8 100644
--- a/content/docs/zh-CN/2.2.1/cookbooks-deduplication/index.html
+++ b/content/docs/zh-CN/2.2.1/cookbooks-deduplication/index.html
@@ -159,7 +159,7 @@ Producer producer;
 
 Result result = client.createProducer(topic, producerConfig, producer);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.1/cookbooks-compaction"><span class="arrow-prev">← </span><span>Topic compaction</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.1/cookbooks-non-persistent"><span>Non-persistent messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a href="#configuration [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.1/cookbooks-compaction"><span class="arrow-prev">← </span><span>Topic compaction</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.1/cookbooks-non-persistent"><span>非持久化消息</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a href="#configuration-for-message-dedup [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.2.1/cookbooks-non-persistent.html b/content/docs/zh-CN/2.2.1/cookbooks-non-persistent.html
index ec68d3f..7d5ea2c 100644
--- a/content/docs/zh-CN/2.2.1/cookbooks-non-persistent.html
+++ b/content/docs/zh-CN/2.2.1/cookbooks-non-persistent.html
@@ -1,5 +1,5 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Non-persistent messaging · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;&lt;strong&gt;Non-persistent topics&lt;/strong&gt; are Pulsar topics in which message data is &lt;em&gt;never&lt;/em&gt; &lt;a href=&quot;/docs/zh-CN/2.2.1/concepts-architecture-ov [...]
-"/><meta name="docsearch:version" content="2.2.1"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Non-persistent messaging · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;&lt;strong&gt;Non-persistent topics&lt;/strong&gt; are Pulsar topics in which message data is &lt;em&gt;never&lt;/em&gt; &lt;a href=&quot;/docs/zh-C [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Non-persistent messaging · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;&lt;strong&gt;非持久性主题&lt;/strong&gt;也是 Pulsar 的一种主题,其中消息数据&lt;em&gt;永远不会&lt;/em&gt;&lt;a href=&quot;/docs/zh-CN/2.2.1/concepts-architecture-overview#persistent-storage&quot;&gt;持久存储 [...]
+"/><meta name="docsearch:version" content="2.2.1"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Non-persistent messaging · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;&lt;strong&gt;非持久性主题&lt;/strong&gt;也是 Pulsar 的一种主题,其中消息数据&lt;em&gt;永远不会&lt;/em&gt;&lt;a href=&quot;/docs/zh-CN/2.2.1/concepts-architecture-overview# [...]
 "/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://pulsar.incubator.apache.org/img/pulsar.svg"/><link rel="shortcut icon" href="/img/pulsar.ico"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><link rel="alternate" type="application/atom+xml" href="https://pulsar.incubator.apache.org/blog/atom.x [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
@@ -70,45 +70,45 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Non-persistent messaging</h1></header><article><div><span><p><strong>Non-persistent topics</strong> are Pulsar topics in which message data is <em>never</em> <a href="/docs/zh-CN/2.2.1/conc [...]
+        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Non-persistent messaging</h1></header><article><div><span><p><strong>非持久性主题</strong>也是 Pulsar 的一种主题,其中消息数据<em>永远不会</em><a href="/docs/zh-CN/2.2.1/concepts-architecture-overview#persistent-s [...]
 <ul>
-<li>A basic <a href="#overview">conceptual overview</a> of non-persistent topics</li>
-<li>Information about <a href="#configuration">configurable parameters</a> related to non-persistent topics</li>
-<li>A guide to the <a href="#cli">CLI interface</a> for managing non-persistent topics</li>
+<li>非持久性主题的基本<a href="#overview">概念概述</a></li>
+<li>非持久性主题相关的<a href="#configuration">可配置参数</a>信息</li>
+<li>用于管理非持久性主题<a href="#cli"> CLI(命令行工具)</a>指南</li>
 </ul>
 <h2><a class="anchor" aria-hidden="true" id="概述"></a><a href="#概述" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>By default, Pulsar persistently stores <em>all</em> unacknowledged messages on multiple <a href="#persistent-storage">BookKeeper</a> bookies (storage nodes). Data for messages on persistent topics can thus survive broker restarts and subscriber failover.</p>
-<p>Pulsar also, however, supports <strong>non-persistent topics</strong>, which are topics on which messages are <em>never</em> persisted to disk and live only in memory. When using non-persistent delivery, killing a Pulsar <a href="/docs/zh-CN/2.2.1/reference-terminology#broker">broker</a> or disconnecting a subscriber to a topic means that all in-transit messages are lost on that (non-persistent) topic, meaning that clients may see message loss.</p>
-<p>Non-persistent topics have names of this form (note the <code>non-persistent</code> in the name):</p>
+<p>默认情况下,Pulsar会在多个<a href="#persistent-storage"> BookKeeper </a> bookies(存储节点)上持续存储<em>所有</em>未确认的消息。 因此,持久性主题上的消息数据可以在 broker 重启和订阅者故障转移之后继续存在。</p>
+<p>但是,Pulsar还支持<strong>非持久性主题</strong>,这些主题的消息<em>从不</em>持久存储到磁盘,只存在于内存中。 使用非持久性主题传输时,当某个 Pulsar <a href="/docs/zh-CN/2.2.1/reference-terminology#broker">broker</a>宕机,或断开订阅者与某个主题(非持久性)的连接意味着所有正在传输的消息都会丢失,客户端也可能会看到消息的丢失。</p>
+<p>非持久性主题具有这种形式的名称(注意名称中的 <code>non-persistent</code>):</p>
 <pre><code class="hljs css language-http">non-persistent://tenant/namespace/topic
 </code></pre>
 <blockquote>
-<p>For more high-level information about non-persistent topics, see the <a href="/docs/zh-CN/2.2.1/concepts-messaging#non-persistent-topics">Concepts and Architecture</a> documentation.</p>
+<p>有关非持久性主题的更多高级信息,请参见 <a href="/docs/zh-CN/2.2.1/concepts-messaging#non-persistent-topics">Concepts and Architecture</a> 文档。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="using"></a><a href="#using" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
+<h2><a class="anchor" aria-hidden="true" id="使用"></a><a href="#使用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <blockquote>
-<p>In order to use non-persistent topics, they must be <a href="#enabling">enabled</a> in your Pulsar broker configuration.</p>
+<p>要使用非持久性主题,必须在 Pulsar broker 配置中<a href="#enabling">启用</a>。</p>
 </blockquote>
-<p>In order to use non-persistent topics, you only need to differentiate them by name when interacting with them. This <a href="/docs/zh-CN/2.2.1/reference-cli-tools#pulsar-client-produce"><code>pulsar-client produce</code></a> command, for example, would produce one message on a non-persistent topic in a standalone cluster:</p>
+<p>为了使用非持久性主题,你只需要在与它们交互时按名称区分它们。 例如,此<a href="/docs/zh-CN/2.2.1/reference-cli-tools#pulsar-client-produce"> <code>pulsar-client produce</code> </a>命令将在单集群的非持久性主题上生产一条消息:</p>
 <pre><code class="hljs css language-bash">$ bin/pulsar-client produce non-persistent://public/default/example-np-topic \
   --num-produce 1 \
   --messages <span class="hljs-string">"This message will be stored only in memory"</span>
 </code></pre>
 <blockquote>
-<p>For a more thorough guide to non-persistent topics from an administrative perspective, see the <a href="/docs/zh-CN/2.2.1/admin-api-non-persistent-topics">Non-persistent topics</a> guide.</p>
+<p>要从管理的角度获得关于非持久性主题的更详细的指南,请参阅<a href="/docs/zh-CN/2.2.1/admin-api-non-persistent-topics">非持久性主题</a>指南。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="enabling"></a><a href="#enabling" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 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>In order to enable non-persistent topics in a Pulsar broker, the <a href="/docs/zh-CN/2.2.1/reference-configuration#broker-enableNonPersistentTopics"><code>enableNonPersistentTopics</code></a> must be set to <code>true</code>. This is the default, and so you won't need to take any action to enable non-persistent messaging.</p>
+<h2><a class="anchor" aria-hidden="true" id="启用"></a><a href="#启用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>为了在 Pulsar broker 中启用非持久性主题,必须将 <a href="/docs/zh-CN/2.2.1/reference-configuration#broker-enableNonPersistentTopics"><code>enableNonPersistentTopics</code></a> 设置为<code>true</code>。 你无需采取任何操作来启用非持久性消息传递,因为这是默认设置。</p>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="configuration-for-standalone-mode"></a><a href="#configuration-for-standalone-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.5S1 [...]
-<p>If you're running Pulsar in standalone mode, the same configurable parameters are available but in the <a href="/docs/zh-CN/2.2.1/reference-configuration#standalone"><code>standalone.conf</code></a> configuration file.</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- [...]
+<p>如果你在独立模式下运行 Pulsar,则可以在<a href="/docs/zh-CN/2.2.1/reference-configuration#standalone"> <code>standalone.conf</code> </a>配置文件中使用相同的可配置参数。</p>
 </blockquote>
-<p>If you'd like to enable <em>only</em> non-persistent topics in a broker, you can set the <a href="/docs/zh-CN/2.2.1/reference-configuration#broker-enablePersistentTopics"><code>enablePersistentTopics</code></a> parameter to <code>false</code> and the <code>enableNonPersistentTopics</code> parameter to <code>true</code>.</p>
-<h2><a class="anchor" aria-hidden="true" id="managing-with-cli"></a><a href="#managing-with-cli" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
-<p>Non-persistent topics can be managed using the <a href="/docs/zh-CN/2.2.1/pulsar-admin#non-persistent"><code>pulsar-admin non-persistent</code></a> command-line interface. With that interface you can perform actions like <a href="/docs/zh-CN/2.2.1/pulsar-admin#non-persistent-create-partitioned-topic">create a partitioned non-persistent topic</a>, get <a href="/docs/zh-CN/2.2.1/pulsar-admin#non-persistent-stats">stats</a> for a non-persistent topic, <a href="/docs/zh-CN/2.2.1/pulsar-ad [...]
-<h2><a class="anchor" aria-hidden="true" id="using-with-pulsar-clients"></a><a href="#using-with-pulsar-clients" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c [...]
-<p>You shouldn't need to make any changes to your Pulsar clients to use non-persistent messaging beyond making sure that you use proper <a href="#using">topic names</a> with <code>non-persistent</code> as the topic type.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.1/cookbooks-deduplication"><span class="arrow-prev">← </span><span>Message deduplication</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.1/cookbooks-partitioned"><span>分区Topic</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#概述">概述</a></li><li><a href="#using">Using</a></li><li><a href="#enabling"> [...]
+<p>如果你<em>只</em>想在 Broker 中启用非持久性主题,则可以将<a href="/docs/zh-CN/2.2.1/reference-configuration#broker-enablePersistentTopics">enablePersistentTopics</code></a>参数设置为<code>false</code>,将 <code>enableNonPersistentTopics</code>参数设置为<code>true</code>。</p>
+<h2><a class="anchor" aria-hidden="true" id="使用cli-命令行工具-管理"></a><a href="#使用cli-命令行工具-管理" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
+<p>可以使用<a href="/docs/zh-CN/2.2.1/pulsar-admin#non-persistent"> <code>pulsar-admin non-persistent</code> </a>命令行管理非持久性主题。 使用命令行工具,你可以执行诸如<a href="/docs/zh-CN/2.2.1/pulsar-admin#non-persistent-create-partitioned-topic">创建分区非持久性主题</a>,获取非持久主题的<a href="/docs/zh-CN/2.2.1/pulsar-admin#non-persistent-stats">统计信息</a>,获取命名空间下的非持久主题<a href="/docs/zh-CN/2.2.1/pulsar-admin">列表</a>等操作。</p>
+<h2><a class="anchor" aria-hidden="true" id="与pulsar客户端一起使用"></a><a href="#与pulsar客户端一起使用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 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>除了确保使用具有<code>非持久性</code>的正确<a href="#using">主题名称</a>作为主题类型之外,你不应该对 Pulsar 客户端进行任何更改以使用非持久性消息传递。</p>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.1/cookbooks-deduplication"><span class="arrow-prev">← </span><span>Message deduplication</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.1/cookbooks-partitioned"><span>分区Topic</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#概述">概述</a></li><li><a href="#使用">使用</a></li><li><a href="#启用">启用</a></li>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.2.1/cookbooks-non-persistent/index.html b/content/docs/zh-CN/2.2.1/cookbooks-non-persistent/index.html
index ec68d3f..7d5ea2c 100644
--- a/content/docs/zh-CN/2.2.1/cookbooks-non-persistent/index.html
+++ b/content/docs/zh-CN/2.2.1/cookbooks-non-persistent/index.html
@@ -1,5 +1,5 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Non-persistent messaging · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;&lt;strong&gt;Non-persistent topics&lt;/strong&gt; are Pulsar topics in which message data is &lt;em&gt;never&lt;/em&gt; &lt;a href=&quot;/docs/zh-CN/2.2.1/concepts-architecture-ov [...]
-"/><meta name="docsearch:version" content="2.2.1"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Non-persistent messaging · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;&lt;strong&gt;Non-persistent topics&lt;/strong&gt; are Pulsar topics in which message data is &lt;em&gt;never&lt;/em&gt; &lt;a href=&quot;/docs/zh-C [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Non-persistent messaging · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;&lt;strong&gt;非持久性主题&lt;/strong&gt;也是 Pulsar 的一种主题,其中消息数据&lt;em&gt;永远不会&lt;/em&gt;&lt;a href=&quot;/docs/zh-CN/2.2.1/concepts-architecture-overview#persistent-storage&quot;&gt;持久存储 [...]
+"/><meta name="docsearch:version" content="2.2.1"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Non-persistent messaging · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;&lt;strong&gt;非持久性主题&lt;/strong&gt;也是 Pulsar 的一种主题,其中消息数据&lt;em&gt;永远不会&lt;/em&gt;&lt;a href=&quot;/docs/zh-CN/2.2.1/concepts-architecture-overview# [...]
 "/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://pulsar.incubator.apache.org/img/pulsar.svg"/><link rel="shortcut icon" href="/img/pulsar.ico"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><link rel="alternate" type="application/atom+xml" href="https://pulsar.incubator.apache.org/blog/atom.x [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
@@ -70,45 +70,45 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Non-persistent messaging</h1></header><article><div><span><p><strong>Non-persistent topics</strong> are Pulsar topics in which message data is <em>never</em> <a href="/docs/zh-CN/2.2.1/conc [...]
+        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Non-persistent messaging</h1></header><article><div><span><p><strong>非持久性主题</strong>也是 Pulsar 的一种主题,其中消息数据<em>永远不会</em><a href="/docs/zh-CN/2.2.1/concepts-architecture-overview#persistent-s [...]
 <ul>
-<li>A basic <a href="#overview">conceptual overview</a> of non-persistent topics</li>
-<li>Information about <a href="#configuration">configurable parameters</a> related to non-persistent topics</li>
-<li>A guide to the <a href="#cli">CLI interface</a> for managing non-persistent topics</li>
+<li>非持久性主题的基本<a href="#overview">概念概述</a></li>
+<li>非持久性主题相关的<a href="#configuration">可配置参数</a>信息</li>
+<li>用于管理非持久性主题<a href="#cli"> CLI(命令行工具)</a>指南</li>
 </ul>
 <h2><a class="anchor" aria-hidden="true" id="概述"></a><a href="#概述" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>By default, Pulsar persistently stores <em>all</em> unacknowledged messages on multiple <a href="#persistent-storage">BookKeeper</a> bookies (storage nodes). Data for messages on persistent topics can thus survive broker restarts and subscriber failover.</p>
-<p>Pulsar also, however, supports <strong>non-persistent topics</strong>, which are topics on which messages are <em>never</em> persisted to disk and live only in memory. When using non-persistent delivery, killing a Pulsar <a href="/docs/zh-CN/2.2.1/reference-terminology#broker">broker</a> or disconnecting a subscriber to a topic means that all in-transit messages are lost on that (non-persistent) topic, meaning that clients may see message loss.</p>
-<p>Non-persistent topics have names of this form (note the <code>non-persistent</code> in the name):</p>
+<p>默认情况下,Pulsar会在多个<a href="#persistent-storage"> BookKeeper </a> bookies(存储节点)上持续存储<em>所有</em>未确认的消息。 因此,持久性主题上的消息数据可以在 broker 重启和订阅者故障转移之后继续存在。</p>
+<p>但是,Pulsar还支持<strong>非持久性主题</strong>,这些主题的消息<em>从不</em>持久存储到磁盘,只存在于内存中。 使用非持久性主题传输时,当某个 Pulsar <a href="/docs/zh-CN/2.2.1/reference-terminology#broker">broker</a>宕机,或断开订阅者与某个主题(非持久性)的连接意味着所有正在传输的消息都会丢失,客户端也可能会看到消息的丢失。</p>
+<p>非持久性主题具有这种形式的名称(注意名称中的 <code>non-persistent</code>):</p>
 <pre><code class="hljs css language-http">non-persistent://tenant/namespace/topic
 </code></pre>
 <blockquote>
-<p>For more high-level information about non-persistent topics, see the <a href="/docs/zh-CN/2.2.1/concepts-messaging#non-persistent-topics">Concepts and Architecture</a> documentation.</p>
+<p>有关非持久性主题的更多高级信息,请参见 <a href="/docs/zh-CN/2.2.1/concepts-messaging#non-persistent-topics">Concepts and Architecture</a> 文档。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="using"></a><a href="#using" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
+<h2><a class="anchor" aria-hidden="true" id="使用"></a><a href="#使用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <blockquote>
-<p>In order to use non-persistent topics, they must be <a href="#enabling">enabled</a> in your Pulsar broker configuration.</p>
+<p>要使用非持久性主题,必须在 Pulsar broker 配置中<a href="#enabling">启用</a>。</p>
 </blockquote>
-<p>In order to use non-persistent topics, you only need to differentiate them by name when interacting with them. This <a href="/docs/zh-CN/2.2.1/reference-cli-tools#pulsar-client-produce"><code>pulsar-client produce</code></a> command, for example, would produce one message on a non-persistent topic in a standalone cluster:</p>
+<p>为了使用非持久性主题,你只需要在与它们交互时按名称区分它们。 例如,此<a href="/docs/zh-CN/2.2.1/reference-cli-tools#pulsar-client-produce"> <code>pulsar-client produce</code> </a>命令将在单集群的非持久性主题上生产一条消息:</p>
 <pre><code class="hljs css language-bash">$ bin/pulsar-client produce non-persistent://public/default/example-np-topic \
   --num-produce 1 \
   --messages <span class="hljs-string">"This message will be stored only in memory"</span>
 </code></pre>
 <blockquote>
-<p>For a more thorough guide to non-persistent topics from an administrative perspective, see the <a href="/docs/zh-CN/2.2.1/admin-api-non-persistent-topics">Non-persistent topics</a> guide.</p>
+<p>要从管理的角度获得关于非持久性主题的更详细的指南,请参阅<a href="/docs/zh-CN/2.2.1/admin-api-non-persistent-topics">非持久性主题</a>指南。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="enabling"></a><a href="#enabling" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 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>In order to enable non-persistent topics in a Pulsar broker, the <a href="/docs/zh-CN/2.2.1/reference-configuration#broker-enableNonPersistentTopics"><code>enableNonPersistentTopics</code></a> must be set to <code>true</code>. This is the default, and so you won't need to take any action to enable non-persistent messaging.</p>
+<h2><a class="anchor" aria-hidden="true" id="启用"></a><a href="#启用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>为了在 Pulsar broker 中启用非持久性主题,必须将 <a href="/docs/zh-CN/2.2.1/reference-configuration#broker-enableNonPersistentTopics"><code>enableNonPersistentTopics</code></a> 设置为<code>true</code>。 你无需采取任何操作来启用非持久性消息传递,因为这是默认设置。</p>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="configuration-for-standalone-mode"></a><a href="#configuration-for-standalone-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.5S1 [...]
-<p>If you're running Pulsar in standalone mode, the same configurable parameters are available but in the <a href="/docs/zh-CN/2.2.1/reference-configuration#standalone"><code>standalone.conf</code></a> configuration file.</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- [...]
+<p>如果你在独立模式下运行 Pulsar,则可以在<a href="/docs/zh-CN/2.2.1/reference-configuration#standalone"> <code>standalone.conf</code> </a>配置文件中使用相同的可配置参数。</p>
 </blockquote>
-<p>If you'd like to enable <em>only</em> non-persistent topics in a broker, you can set the <a href="/docs/zh-CN/2.2.1/reference-configuration#broker-enablePersistentTopics"><code>enablePersistentTopics</code></a> parameter to <code>false</code> and the <code>enableNonPersistentTopics</code> parameter to <code>true</code>.</p>
-<h2><a class="anchor" aria-hidden="true" id="managing-with-cli"></a><a href="#managing-with-cli" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
-<p>Non-persistent topics can be managed using the <a href="/docs/zh-CN/2.2.1/pulsar-admin#non-persistent"><code>pulsar-admin non-persistent</code></a> command-line interface. With that interface you can perform actions like <a href="/docs/zh-CN/2.2.1/pulsar-admin#non-persistent-create-partitioned-topic">create a partitioned non-persistent topic</a>, get <a href="/docs/zh-CN/2.2.1/pulsar-admin#non-persistent-stats">stats</a> for a non-persistent topic, <a href="/docs/zh-CN/2.2.1/pulsar-ad [...]
-<h2><a class="anchor" aria-hidden="true" id="using-with-pulsar-clients"></a><a href="#using-with-pulsar-clients" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c [...]
-<p>You shouldn't need to make any changes to your Pulsar clients to use non-persistent messaging beyond making sure that you use proper <a href="#using">topic names</a> with <code>non-persistent</code> as the topic type.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.1/cookbooks-deduplication"><span class="arrow-prev">← </span><span>Message deduplication</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.1/cookbooks-partitioned"><span>分区Topic</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#概述">概述</a></li><li><a href="#using">Using</a></li><li><a href="#enabling"> [...]
+<p>如果你<em>只</em>想在 Broker 中启用非持久性主题,则可以将<a href="/docs/zh-CN/2.2.1/reference-configuration#broker-enablePersistentTopics">enablePersistentTopics</code></a>参数设置为<code>false</code>,将 <code>enableNonPersistentTopics</code>参数设置为<code>true</code>。</p>
+<h2><a class="anchor" aria-hidden="true" id="使用cli-命令行工具-管理"></a><a href="#使用cli-命令行工具-管理" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
+<p>可以使用<a href="/docs/zh-CN/2.2.1/pulsar-admin#non-persistent"> <code>pulsar-admin non-persistent</code> </a>命令行管理非持久性主题。 使用命令行工具,你可以执行诸如<a href="/docs/zh-CN/2.2.1/pulsar-admin#non-persistent-create-partitioned-topic">创建分区非持久性主题</a>,获取非持久主题的<a href="/docs/zh-CN/2.2.1/pulsar-admin#non-persistent-stats">统计信息</a>,获取命名空间下的非持久主题<a href="/docs/zh-CN/2.2.1/pulsar-admin">列表</a>等操作。</p>
+<h2><a class="anchor" aria-hidden="true" id="与pulsar客户端一起使用"></a><a href="#与pulsar客户端一起使用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 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>除了确保使用具有<code>非持久性</code>的正确<a href="#using">主题名称</a>作为主题类型之外,你不应该对 Pulsar 客户端进行任何更改以使用非持久性消息传递。</p>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.1/cookbooks-deduplication"><span class="arrow-prev">← </span><span>Message deduplication</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.1/cookbooks-partitioned"><span>分区Topic</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#概述">概述</a></li><li><a href="#使用">使用</a></li><li><a href="#启用">启用</a></li>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.2.1/cookbooks-partitioned.html b/content/docs/zh-CN/2.2.1/cookbooks-partitioned.html
index 4aabefb..10619dd 100644
--- a/content/docs/zh-CN/2.2.1/cookbooks-partitioned.html
+++ b/content/docs/zh-CN/2.2.1/cookbooks-partitioned.html
@@ -121,7 +121,7 @@ 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- [...]
 <p>您可以使用Pulsar的<a href="/docs/zh-CN/2.2.1/admin-api-overview"> admin API </a>来创建和管理<a href="/docs/zh-CN/2.2.1/admin-api-partitioned-topics">分区主题</a>。</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.1/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>Non-persistent messaging</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.1/cookbooks-retention-expiry"><span>Message retention and expiry</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" [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.1/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.1/cookbooks-retention-expiry"><span>Message retention and expiry</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="#jav [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.2.1/cookbooks-partitioned/index.html b/content/docs/zh-CN/2.2.1/cookbooks-partitioned/index.html
index 4aabefb..10619dd 100644
--- a/content/docs/zh-CN/2.2.1/cookbooks-partitioned/index.html
+++ b/content/docs/zh-CN/2.2.1/cookbooks-partitioned/index.html
@@ -121,7 +121,7 @@ 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- [...]
 <p>您可以使用Pulsar的<a href="/docs/zh-CN/2.2.1/admin-api-overview"> admin API </a>来创建和管理<a href="/docs/zh-CN/2.2.1/admin-api-partitioned-topics">分区主题</a>。</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.1/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>Non-persistent messaging</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.1/cookbooks-retention-expiry"><span>Message retention and expiry</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" [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/2.2.1/cookbooks-non-persistent"><span class="arrow-prev">← </span><span>非持久化消息</span></a><a class="docs-next button" href="/docs/zh-CN/2.2.1/cookbooks-retention-expiry"><span>Message retention and expiry</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="#jav [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/2.2.1/reference-configuration.html b/content/docs/zh-CN/2.2.1/reference-configuration.html
index 7abd36e..52c0656 100644
--- a/content/docs/zh-CN/2.2.1/reference-configuration.html
+++ b/content/docs/zh-CN/2.2.1/reference-configuration.html
@@ -198,8 +198,8 @@
 <tr><td>statusFilePath</td><td>Path for the file used to determine the rotation status for the broker when responding to service discovery health checks</td><td></td></tr>
 <tr><td>preferLaterVersions</td><td>If true, (and ModularLoadManagerImpl is being used), the load manager will attempt to use only brokers running the latest software version (to minimize impact to bundles)</td><td>false</td></tr>
 <tr><td>tlsEnabled</td><td>Enable TLS</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
 <tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate file</td><td></td></tr>
 <tr><td>tlsAllowInsecureConnection</td><td>Accept untrusted TLS certificate from client</td><td>false</td></tr>
 <tr><td>tlsProtocols</td><td>Specify the tls protocols the broker will use to negotiate during TLS Handshake. Multiple values can be specified, separated by commas. Example:- <code>TLSv1.2</code>, <code>TLSv1.1</code>, <code>TLSv1</code></td><td></td></tr>
@@ -307,7 +307,7 @@
 </thead>
 <tbody>
 <tr><td>zookeeperServers</td><td>Zookeeper quorum connection string (comma-separated)</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
 <tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper session timeout</td><td>30000</td></tr>
 <tr><td>servicePort</td><td>Port to use to server binary-proto request</td><td>6650</td></tr>
 <tr><td>servicePortTls</td><td>Port to use to server binary-proto-tls request</td><td>6651</td></tr>
@@ -319,8 +319,8 @@
 <tr><td>authorizationEnabled</td><td>Enforce authorization</td><td>false</td></tr>
 <tr><td>superUserRoles</td><td>Role names that are treated as “super-user”, meaning they will be able to do all admin operations and publish/consume from all topics (comma-separated)</td><td></td></tr>
 <tr><td>tlsEnabled</td><td>Enable TLS</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
 </tbody>
 </table>
 <h2><a class="anchor" aria-hidden="true" id="log4j"></a><a href="#log4j" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
@@ -373,7 +373,7 @@
 </thead>
 <tbody>
 <tr><td>zookeeperServers</td><td>The quorum connection string for local ZooKeeper</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
 <tr><td>brokerServicePort</td><td>The port on which the standalone broker listens for connections</td><td>6650</td></tr>
 <tr><td>webServicePort</td><td>THe port used by the standalone broker for HTTP requests</td><td>8080</td></tr>
 <tr><td>bindAddress</td><td>The hostname or IP address on which the standalone service binds</td><td>0.0.0.0</td></tr>
@@ -488,29 +488,29 @@
 <tr><th>Name</th><th>说明:</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td>zookeeperServers</td><td>The ZooKeeper quorum connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper session timeout (in milliseconds)</td><td>30000</td></tr>
-<tr><td>servicePort</td><td>The port to use for server binary Protobuf requests</td><td>6650</td></tr>
-<tr><td>servicePortTls</td><td>The port to use to server binary Protobuf TLS requests</td><td>6651</td></tr>
-<tr><td>statusFilePath</td><td>Path for the file used to determine the rotation status for the proxy instance when responding to service discovery health checks</td><td></td></tr>
-<tr><td>authenticationEnabled</td><td>Whether authentication is enabled for the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authenticationProviders</td><td>Authentication provider name list (a comma-separated list of class names)</td><td></td></tr>
-<tr><td>authorizationEnabled</td><td>Whether authorization is enforced by the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authorizationProvider</td><td>Authorization provider as a fully qualified class name</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
-<tr><td>brokerClientAuthenticationPlugin</td><td>The authentication plugin used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientAuthenticationParameters</td><td>The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientTrustCertsFilePath</td><td>The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>superUserRoles</td><td>Role names that are treated as “super-users,” meaning that they will be able to perform all admin</td><td></td></tr>
+<tr><td>zookeeperServers</td><td>ZooKeeper仲裁连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper会话超时(以毫秒为单位)</td><td>30000</td></tr>
+<tr><td>servicePort</td><td>用于服务器二进制Protobuf请求的端口</td><td>6650</td></tr>
+<tr><td>servicePortTls</td><td>用于服务器二进制Protobuf TLS请求的端口</td><td>6651</td></tr>
+<tr><td>statusFilePath</td><td>在响应服务发现健康检查时,用于确定代理实例的轮换状态的文件的路径</td><td></td></tr>
+<tr><td>authenticationEnabled</td><td>是否为Pulsar代理启用身份验证</td><td>false</td></tr>
+<tr><td>authenticationProviders</td><td>身份验证提供者名称列表(以逗号分隔的类名列表)</td><td></td></tr>
+<tr><td>authorizationEnabled</td><td>是否由Pulsar代理强制执行授权</td><td>false</td></tr>
+<tr><td>authorizationProvider</td><td>授权提供程序的完全限定类名</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
+<tr><td>brokerClientAuthenticationPlugin</td><td>Pulsar代理使用的身份验证插件,用于对Pulsar brokers进行身份验证</td><td></td></tr>
+<tr><td>brokerClientAuthenticationParameters</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的参数</td><td></td></tr>
+<tr><td>brokerClientTrustCertsFilePath</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的可信证书的路径</td><td></td></tr>
+<tr><td>superUserRoles</td><td>“超级用户”的角色名,这意味着它们将能够执行所有管理</td><td></td></tr>
 <tr><td>forwardAuthorizationCredentials</td><td>Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.</td><td>false</td></tr>
 <tr><td>maxConcurrentInboundConnections</td><td>Max concurrent inbound connections. The proxy will reject requests beyond that.</td><td>10000</td></tr>
 <tr><td>maxConcurrentLookupRequests</td><td>Max concurrent outbound connections. The proxy will error out requests beyond that.</td><td>50000</td></tr>
-<tr><td>tlsEnabledInProxy</td><td>Whether TLS is enabled for the proxy</td><td>false</td></tr>
-<tr><td>tlsEnabledWithBroker</td><td>Whether TLS is enabled when communicating with Pulsar brokers</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
-<tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate pem file</td><td></td></tr>
-<tr><td>tlsHostnameVerificationEnabled</td><td>Whether the hostname is validated when the proxy creates a TLS connection with brokers</td><td>false</td></tr>
+<tr><td>tlsEnabledInProxy</td><td>是否为代理启用TLS</td><td>false</td></tr>
+<tr><td>tlsEnabledWithBroker</td><td>与Pulsar Brokers通信时是否启用TLS</td><td>false</td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
+<tr><td>tlsTrustCertsFilePath</td><td>受信任的TLS证书pem文件的路径</td><td></td></tr>
+<tr><td>tlsHostnameVerificationEnabled</td><td>当代理与brokers建立TLS连接时是否验证主机名</td><td>false</td></tr>
 <tr><td>tlsRequireTrustedClientCertOnConnect</td><td>Whether client certificates are required for TLS. Connections are rejected if the client certificate isn’t trusted.</td><td>false</td></tr>
 <tr><td>tlsProtocols</td><td>Specify the tls protocols the broker will use to negotiate during TLS Handshake. Multiple values can be specified, separated by commas. Example:- <code>TLSv1.2</code>, <code>TLSv1.1</code>, <code>TLSv1</code></td><td></td></tr>
 <tr><td>tlsCiphers</td><td>Specify the tls cipher the broker will use to negotiate during TLS Handshake. Multiple values can be specified, separated by commas. Example:- <code>TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256</code></td><td></td></tr>
diff --git a/content/docs/zh-CN/2.2.1/reference-configuration/index.html b/content/docs/zh-CN/2.2.1/reference-configuration/index.html
index 7abd36e..52c0656 100644
--- a/content/docs/zh-CN/2.2.1/reference-configuration/index.html
+++ b/content/docs/zh-CN/2.2.1/reference-configuration/index.html
@@ -198,8 +198,8 @@
 <tr><td>statusFilePath</td><td>Path for the file used to determine the rotation status for the broker when responding to service discovery health checks</td><td></td></tr>
 <tr><td>preferLaterVersions</td><td>If true, (and ModularLoadManagerImpl is being used), the load manager will attempt to use only brokers running the latest software version (to minimize impact to bundles)</td><td>false</td></tr>
 <tr><td>tlsEnabled</td><td>Enable TLS</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
 <tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate file</td><td></td></tr>
 <tr><td>tlsAllowInsecureConnection</td><td>Accept untrusted TLS certificate from client</td><td>false</td></tr>
 <tr><td>tlsProtocols</td><td>Specify the tls protocols the broker will use to negotiate during TLS Handshake. Multiple values can be specified, separated by commas. Example:- <code>TLSv1.2</code>, <code>TLSv1.1</code>, <code>TLSv1</code></td><td></td></tr>
@@ -307,7 +307,7 @@
 </thead>
 <tbody>
 <tr><td>zookeeperServers</td><td>Zookeeper quorum connection string (comma-separated)</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
 <tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper session timeout</td><td>30000</td></tr>
 <tr><td>servicePort</td><td>Port to use to server binary-proto request</td><td>6650</td></tr>
 <tr><td>servicePortTls</td><td>Port to use to server binary-proto-tls request</td><td>6651</td></tr>
@@ -319,8 +319,8 @@
 <tr><td>authorizationEnabled</td><td>Enforce authorization</td><td>false</td></tr>
 <tr><td>superUserRoles</td><td>Role names that are treated as “super-user”, meaning they will be able to do all admin operations and publish/consume from all topics (comma-separated)</td><td></td></tr>
 <tr><td>tlsEnabled</td><td>Enable TLS</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
 </tbody>
 </table>
 <h2><a class="anchor" aria-hidden="true" id="log4j"></a><a href="#log4j" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
@@ -373,7 +373,7 @@
 </thead>
 <tbody>
 <tr><td>zookeeperServers</td><td>The quorum connection string for local ZooKeeper</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
 <tr><td>brokerServicePort</td><td>The port on which the standalone broker listens for connections</td><td>6650</td></tr>
 <tr><td>webServicePort</td><td>THe port used by the standalone broker for HTTP requests</td><td>8080</td></tr>
 <tr><td>bindAddress</td><td>The hostname or IP address on which the standalone service binds</td><td>0.0.0.0</td></tr>
@@ -488,29 +488,29 @@
 <tr><th>Name</th><th>说明:</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td>zookeeperServers</td><td>The ZooKeeper quorum connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper session timeout (in milliseconds)</td><td>30000</td></tr>
-<tr><td>servicePort</td><td>The port to use for server binary Protobuf requests</td><td>6650</td></tr>
-<tr><td>servicePortTls</td><td>The port to use to server binary Protobuf TLS requests</td><td>6651</td></tr>
-<tr><td>statusFilePath</td><td>Path for the file used to determine the rotation status for the proxy instance when responding to service discovery health checks</td><td></td></tr>
-<tr><td>authenticationEnabled</td><td>Whether authentication is enabled for the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authenticationProviders</td><td>Authentication provider name list (a comma-separated list of class names)</td><td></td></tr>
-<tr><td>authorizationEnabled</td><td>Whether authorization is enforced by the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authorizationProvider</td><td>Authorization provider as a fully qualified class name</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
-<tr><td>brokerClientAuthenticationPlugin</td><td>The authentication plugin used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientAuthenticationParameters</td><td>The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientTrustCertsFilePath</td><td>The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>superUserRoles</td><td>Role names that are treated as “super-users,” meaning that they will be able to perform all admin</td><td></td></tr>
+<tr><td>zookeeperServers</td><td>ZooKeeper仲裁连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper会话超时(以毫秒为单位)</td><td>30000</td></tr>
+<tr><td>servicePort</td><td>用于服务器二进制Protobuf请求的端口</td><td>6650</td></tr>
+<tr><td>servicePortTls</td><td>用于服务器二进制Protobuf TLS请求的端口</td><td>6651</td></tr>
+<tr><td>statusFilePath</td><td>在响应服务发现健康检查时,用于确定代理实例的轮换状态的文件的路径</td><td></td></tr>
+<tr><td>authenticationEnabled</td><td>是否为Pulsar代理启用身份验证</td><td>false</td></tr>
+<tr><td>authenticationProviders</td><td>身份验证提供者名称列表(以逗号分隔的类名列表)</td><td></td></tr>
+<tr><td>authorizationEnabled</td><td>是否由Pulsar代理强制执行授权</td><td>false</td></tr>
+<tr><td>authorizationProvider</td><td>授权提供程序的完全限定类名</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
+<tr><td>brokerClientAuthenticationPlugin</td><td>Pulsar代理使用的身份验证插件,用于对Pulsar brokers进行身份验证</td><td></td></tr>
+<tr><td>brokerClientAuthenticationParameters</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的参数</td><td></td></tr>
+<tr><td>brokerClientTrustCertsFilePath</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的可信证书的路径</td><td></td></tr>
+<tr><td>superUserRoles</td><td>“超级用户”的角色名,这意味着它们将能够执行所有管理</td><td></td></tr>
 <tr><td>forwardAuthorizationCredentials</td><td>Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.</td><td>false</td></tr>
 <tr><td>maxConcurrentInboundConnections</td><td>Max concurrent inbound connections. The proxy will reject requests beyond that.</td><td>10000</td></tr>
 <tr><td>maxConcurrentLookupRequests</td><td>Max concurrent outbound connections. The proxy will error out requests beyond that.</td><td>50000</td></tr>
-<tr><td>tlsEnabledInProxy</td><td>Whether TLS is enabled for the proxy</td><td>false</td></tr>
-<tr><td>tlsEnabledWithBroker</td><td>Whether TLS is enabled when communicating with Pulsar brokers</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
-<tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate pem file</td><td></td></tr>
-<tr><td>tlsHostnameVerificationEnabled</td><td>Whether the hostname is validated when the proxy creates a TLS connection with brokers</td><td>false</td></tr>
+<tr><td>tlsEnabledInProxy</td><td>是否为代理启用TLS</td><td>false</td></tr>
+<tr><td>tlsEnabledWithBroker</td><td>与Pulsar Brokers通信时是否启用TLS</td><td>false</td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
+<tr><td>tlsTrustCertsFilePath</td><td>受信任的TLS证书pem文件的路径</td><td></td></tr>
+<tr><td>tlsHostnameVerificationEnabled</td><td>当代理与brokers建立TLS连接时是否验证主机名</td><td>false</td></tr>
 <tr><td>tlsRequireTrustedClientCertOnConnect</td><td>Whether client certificates are required for TLS. Connections are rejected if the client certificate isn’t trusted.</td><td>false</td></tr>
 <tr><td>tlsProtocols</td><td>Specify the tls protocols the broker will use to negotiate during TLS Handshake. Multiple values can be specified, separated by commas. Example:- <code>TLSv1.2</code>, <code>TLSv1.1</code>, <code>TLSv1</code></td><td></td></tr>
 <tr><td>tlsCiphers</td><td>Specify the tls cipher the broker will use to negotiate during TLS Handshake. Multiple values can be specified, separated by commas. Example:- <code>TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256</code></td><td></td></tr>
diff --git a/content/docs/zh-CN/admin-api-partitioned-topics.html b/content/docs/zh-CN/admin-api-partitioned-topics.html
index 7702c02..6b35e0e 100644
--- a/content/docs/zh-CN/admin-api-partitioned-topics.html
+++ b/content/docs/zh-CN/admin-api-partitioned-topics.html
@@ -74,7 +74,7 @@
 <p>In all of the instructions and commands below, the topic name structure is:</p>
 <pre><code class="hljs css language-shell">persistent://tenant/namespace/topic
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="partitioned-topics-资源"></a><a href="#partitioned-topics-资源" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
+<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. [...]
 <h3><a class="anchor" aria-hidden="true" id="创建"></a><a href="#创建" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <p>Partitioned topics in Pulsar must be explicitly created. When creating a new partitioned topic you need to provide a name for the topic as well as the desired number of partitions.</p>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
@@ -133,7 +133,7 @@ admin.persistentTopics().getPartitionedTopicMetadata(topicName);
 <h3><a class="anchor" aria-hidden="true" id="更新"></a><a href="#更新" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <p>You can update the number of partitions on an existing partitioned topic <em>if</em> the topic is non-global. To update, the new number of partitions must be greater than the existing number.</p>
 <p>Decrementing the number of partitions would deleting the topic, which is not supported in Pulsar.</p>
-<p>Already created partitioned producers and consumers will automatically find the newly created partitions.</p>
+<p>已创建的分区生产者和消费者,将自动查找新创建的分区。</p>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-3"></a><a href="#pulsar-admin-3" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
 <p>Partitioned topics can be updated using the <a href="/docs/zh-CN/pulsar-admin#update-partitioned-topic"><code>update-partitioned-topic</code></a> command.</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin topics update-partitioned-topic \</span>
@@ -326,7 +326,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-7"></a><a href="#java-7" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 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.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/zh-CN/admin-api-schemas"><span>Schema</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-资源">Partitioned topics 资源</a><ul class="toc-headings"><li><a hre [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/zh-CN/admin-api-schemas"><span>Schema</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></ul></li>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/admin-api-partitioned-topics/index.html b/content/docs/zh-CN/admin-api-partitioned-topics/index.html
index 7702c02..6b35e0e 100644
--- a/content/docs/zh-CN/admin-api-partitioned-topics/index.html
+++ b/content/docs/zh-CN/admin-api-partitioned-topics/index.html
@@ -74,7 +74,7 @@
 <p>In all of the instructions and commands below, the topic name structure is:</p>
 <pre><code class="hljs css language-shell">persistent://tenant/namespace/topic
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="partitioned-topics-资源"></a><a href="#partitioned-topics-资源" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
+<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. [...]
 <h3><a class="anchor" aria-hidden="true" id="创建"></a><a href="#创建" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <p>Partitioned topics in Pulsar must be explicitly created. When creating a new partitioned topic you need to provide a name for the topic as well as the desired number of partitions.</p>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
@@ -133,7 +133,7 @@ admin.persistentTopics().getPartitionedTopicMetadata(topicName);
 <h3><a class="anchor" aria-hidden="true" id="更新"></a><a href="#更新" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <p>You can update the number of partitions on an existing partitioned topic <em>if</em> the topic is non-global. To update, the new number of partitions must be greater than the existing number.</p>
 <p>Decrementing the number of partitions would deleting the topic, which is not supported in Pulsar.</p>
-<p>Already created partitioned producers and consumers will automatically find the newly created partitions.</p>
+<p>已创建的分区生产者和消费者,将自动查找新创建的分区。</p>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-3"></a><a href="#pulsar-admin-3" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
 <p>Partitioned topics can be updated using the <a href="/docs/zh-CN/pulsar-admin#update-partitioned-topic"><code>update-partitioned-topic</code></a> command.</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin topics update-partitioned-topic \</span>
@@ -326,7 +326,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-7"></a><a href="#java-7" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 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.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/zh-CN/admin-api-schemas"><span>Schema</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-资源">Partitioned topics 资源</a><ul class="toc-headings"><li><a hre [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/zh-CN/admin-api-schemas"><span>Schema</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></ul></li>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/administration-proxy.html b/content/docs/zh-CN/administration-proxy.html
index fe134e6..929921e 100644
--- a/content/docs/zh-CN/administration-proxy.html
+++ b/content/docs/zh-CN/administration-proxy.html
@@ -97,9 +97,9 @@
 <span class="hljs-attr">functionWorkerWebServiceURL</span>=<span class="hljs-string">https://function-workers.example.com:8443</span>
 </code></pre>
 <p>提供的URLs中的主机名应该是指向多个 broker 的DNS条目,或由多个broker 的IP地址支持的虚拟IP,以便在单个 broker 不可用时 ,代理不会失去与 Pulsar 群集的连接。</p>
-<p>连接到 brokers 的端口(6650&amp; 8080,或者在TLS,6651&amp; 8443 的情况下)应该在网络ACL中打开。</p>
-<p>Note that if you are not using functions, then <code>functionWorkerWebServiceURL</code> does not need to be configured.</p>
-<h2><a class="anchor" aria-hidden="true" id="starting-the-proxy"></a><a href="#starting-the-proxy" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
+<p>连接到 brokers 的端口(6650 和 8080,或者在使用TLS的情况下,6651 和 8443 )应该在网络ACL中打开。</p>
+<p>注意,如果不使用 functions,则不需要配置<code>functionWorkerWebServiceURL</code>。</p>
+<h2><a class="anchor" aria-hidden="true" id="启动代理"></a><a href="#启动代理" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
 <p>To start the proxy:</p>
 <pre><code class="hljs css language-bash">$ <span class="hljs-built_in">cd</span> /path/to/pulsar/directory
 $ bin/pulsar proxy
@@ -120,33 +120,33 @@ $ bin/pulsar proxy
 <tr><th>Name</th><th>说明:</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td>zookeeperServers</td><td>The ZooKeeper quorum connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper session timeout (in milliseconds)</td><td>30000</td></tr>
-<tr><td>servicePort</td><td>The port to use for server binary Protobuf requests</td><td>6650</td></tr>
-<tr><td>servicePortTls</td><td>The port to use to server binary Protobuf TLS requests</td><td>6651</td></tr>
-<tr><td>statusFilePath</td><td>Path for the file used to determine the rotation status for the proxy instance when responding to service discovery health checks</td><td></td></tr>
-<tr><td>authenticationEnabled</td><td>Whether authentication is enabled for the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authenticationProviders</td><td>Authentication provider name list (a comma-separated list of class names)</td><td></td></tr>
-<tr><td>authorizationEnabled</td><td>Whether authorization is enforced by the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authorizationProvider</td><td>Authorization provider as a fully qualified class name</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
-<tr><td>brokerClientAuthenticationPlugin</td><td>The authentication plugin used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientAuthenticationParameters</td><td>The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientTrustCertsFilePath</td><td>The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>superUserRoles</td><td>Role names that are treated as “super-users,” meaning that they will be able to perform all admin</td><td></td></tr>
+<tr><td>zookeeperServers</td><td>ZooKeeper仲裁连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper会话超时(以毫秒为单位)</td><td>30000</td></tr>
+<tr><td>servicePort</td><td>用于服务器二进制Protobuf请求的端口</td><td>6650</td></tr>
+<tr><td>servicePortTls</td><td>用于服务器二进制Protobuf TLS请求的端口</td><td>6651</td></tr>
+<tr><td>statusFilePath</td><td>在响应服务发现健康检查时,用于确定代理实例的轮换状态的文件的路径</td><td></td></tr>
+<tr><td>authenticationEnabled</td><td>是否为Pulsar代理启用身份验证</td><td>false</td></tr>
+<tr><td>authenticationProviders</td><td>身份验证提供者名称列表(以逗号分隔的类名列表)</td><td></td></tr>
+<tr><td>authorizationEnabled</td><td>是否由Pulsar代理强制执行授权</td><td>false</td></tr>
+<tr><td>authorizationProvider</td><td>授权提供程序的完全限定类名</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
+<tr><td>brokerClientAuthenticationPlugin</td><td>Pulsar代理使用的身份验证插件,用于对Pulsar brokers进行身份验证</td><td></td></tr>
+<tr><td>brokerClientAuthenticationParameters</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的参数</td><td></td></tr>
+<tr><td>brokerClientTrustCertsFilePath</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的可信证书的路径</td><td></td></tr>
+<tr><td>superUserRoles</td><td>“超级用户”的角色名,这意味着它们将能够执行所有管理</td><td></td></tr>
 <tr><td>forwardAuthorizationCredentials</td><td>Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.</td><td>false</td></tr>
 <tr><td>maxConcurrentInboundConnections</td><td>Max concurrent inbound connections. The proxy will reject requests beyond that.</td><td>10000</td></tr>
 <tr><td>maxConcurrentLookupRequests</td><td>Max concurrent outbound connections. The proxy will error out requests beyond that.</td><td>50000</td></tr>
-<tr><td>tlsEnabledInProxy</td><td>Whether TLS is enabled for the proxy</td><td>false</td></tr>
-<tr><td>tlsEnabledWithBroker</td><td>Whether TLS is enabled when communicating with Pulsar brokers</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
-<tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate pem file</td><td></td></tr>
-<tr><td>tlsHostnameVerificationEnabled</td><td>Whether the hostname is validated when the proxy creates a TLS connection with brokers</td><td>false</td></tr>
+<tr><td>tlsEnabledInProxy</td><td>是否为代理启用TLS</td><td>false</td></tr>
+<tr><td>tlsEnabledWithBroker</td><td>与Pulsar Brokers通信时是否启用TLS</td><td>false</td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
+<tr><td>tlsTrustCertsFilePath</td><td>受信任的TLS证书pem文件的路径</td><td></td></tr>
+<tr><td>tlsHostnameVerificationEnabled</td><td>当代理与brokers建立TLS连接时是否验证主机名</td><td>false</td></tr>
 <tr><td>tlsRequireTrustedClientCertOnConnect</td><td>Whether client certificates are required for TLS. Connections are rejected if the client certificate isn’t trusted.</td><td>false</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/administration-load-distribution"><span class="arrow-prev">← </span><span>Load distribution</span></a><a class="docs-next button" href="/docs/zh-CN/security-overview"><span>概述</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#pulsar-代理的配置">Pulsar 代理的配置</a><ul class="toc-headings"><li><a href="#选项-1-使用服务发现">选项 1:使用服 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/administration-load-distribution"><span class="arrow-prev">← </span><span>Load distribution</span></a><a class="docs-next button" href="/docs/zh-CN/security-overview"><span>概述</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#pulsar-代理的配置">Pulsar 代理的配置</a><ul class="toc-headings"><li><a href="#选项-1-使用服务发现">选项 1:使用服 [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/administration-proxy/index.html b/content/docs/zh-CN/administration-proxy/index.html
index fe134e6..929921e 100644
--- a/content/docs/zh-CN/administration-proxy/index.html
+++ b/content/docs/zh-CN/administration-proxy/index.html
@@ -97,9 +97,9 @@
 <span class="hljs-attr">functionWorkerWebServiceURL</span>=<span class="hljs-string">https://function-workers.example.com:8443</span>
 </code></pre>
 <p>提供的URLs中的主机名应该是指向多个 broker 的DNS条目,或由多个broker 的IP地址支持的虚拟IP,以便在单个 broker 不可用时 ,代理不会失去与 Pulsar 群集的连接。</p>
-<p>连接到 brokers 的端口(6650&amp; 8080,或者在TLS,6651&amp; 8443 的情况下)应该在网络ACL中打开。</p>
-<p>Note that if you are not using functions, then <code>functionWorkerWebServiceURL</code> does not need to be configured.</p>
-<h2><a class="anchor" aria-hidden="true" id="starting-the-proxy"></a><a href="#starting-the-proxy" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
+<p>连接到 brokers 的端口(6650 和 8080,或者在使用TLS的情况下,6651 和 8443 )应该在网络ACL中打开。</p>
+<p>注意,如果不使用 functions,则不需要配置<code>functionWorkerWebServiceURL</code>。</p>
+<h2><a class="anchor" aria-hidden="true" id="启动代理"></a><a href="#启动代理" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
 <p>To start the proxy:</p>
 <pre><code class="hljs css language-bash">$ <span class="hljs-built_in">cd</span> /path/to/pulsar/directory
 $ bin/pulsar proxy
@@ -120,33 +120,33 @@ $ bin/pulsar proxy
 <tr><th>Name</th><th>说明:</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td>zookeeperServers</td><td>The ZooKeeper quorum connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper session timeout (in milliseconds)</td><td>30000</td></tr>
-<tr><td>servicePort</td><td>The port to use for server binary Protobuf requests</td><td>6650</td></tr>
-<tr><td>servicePortTls</td><td>The port to use to server binary Protobuf TLS requests</td><td>6651</td></tr>
-<tr><td>statusFilePath</td><td>Path for the file used to determine the rotation status for the proxy instance when responding to service discovery health checks</td><td></td></tr>
-<tr><td>authenticationEnabled</td><td>Whether authentication is enabled for the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authenticationProviders</td><td>Authentication provider name list (a comma-separated list of class names)</td><td></td></tr>
-<tr><td>authorizationEnabled</td><td>Whether authorization is enforced by the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authorizationProvider</td><td>Authorization provider as a fully qualified class name</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
-<tr><td>brokerClientAuthenticationPlugin</td><td>The authentication plugin used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientAuthenticationParameters</td><td>The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientTrustCertsFilePath</td><td>The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>superUserRoles</td><td>Role names that are treated as “super-users,” meaning that they will be able to perform all admin</td><td></td></tr>
+<tr><td>zookeeperServers</td><td>ZooKeeper仲裁连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper会话超时(以毫秒为单位)</td><td>30000</td></tr>
+<tr><td>servicePort</td><td>用于服务器二进制Protobuf请求的端口</td><td>6650</td></tr>
+<tr><td>servicePortTls</td><td>用于服务器二进制Protobuf TLS请求的端口</td><td>6651</td></tr>
+<tr><td>statusFilePath</td><td>在响应服务发现健康检查时,用于确定代理实例的轮换状态的文件的路径</td><td></td></tr>
+<tr><td>authenticationEnabled</td><td>是否为Pulsar代理启用身份验证</td><td>false</td></tr>
+<tr><td>authenticationProviders</td><td>身份验证提供者名称列表(以逗号分隔的类名列表)</td><td></td></tr>
+<tr><td>authorizationEnabled</td><td>是否由Pulsar代理强制执行授权</td><td>false</td></tr>
+<tr><td>authorizationProvider</td><td>授权提供程序的完全限定类名</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
+<tr><td>brokerClientAuthenticationPlugin</td><td>Pulsar代理使用的身份验证插件,用于对Pulsar brokers进行身份验证</td><td></td></tr>
+<tr><td>brokerClientAuthenticationParameters</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的参数</td><td></td></tr>
+<tr><td>brokerClientTrustCertsFilePath</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的可信证书的路径</td><td></td></tr>
+<tr><td>superUserRoles</td><td>“超级用户”的角色名,这意味着它们将能够执行所有管理</td><td></td></tr>
 <tr><td>forwardAuthorizationCredentials</td><td>Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.</td><td>false</td></tr>
 <tr><td>maxConcurrentInboundConnections</td><td>Max concurrent inbound connections. The proxy will reject requests beyond that.</td><td>10000</td></tr>
 <tr><td>maxConcurrentLookupRequests</td><td>Max concurrent outbound connections. The proxy will error out requests beyond that.</td><td>50000</td></tr>
-<tr><td>tlsEnabledInProxy</td><td>Whether TLS is enabled for the proxy</td><td>false</td></tr>
-<tr><td>tlsEnabledWithBroker</td><td>Whether TLS is enabled when communicating with Pulsar brokers</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
-<tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate pem file</td><td></td></tr>
-<tr><td>tlsHostnameVerificationEnabled</td><td>Whether the hostname is validated when the proxy creates a TLS connection with brokers</td><td>false</td></tr>
+<tr><td>tlsEnabledInProxy</td><td>是否为代理启用TLS</td><td>false</td></tr>
+<tr><td>tlsEnabledWithBroker</td><td>与Pulsar Brokers通信时是否启用TLS</td><td>false</td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
+<tr><td>tlsTrustCertsFilePath</td><td>受信任的TLS证书pem文件的路径</td><td></td></tr>
+<tr><td>tlsHostnameVerificationEnabled</td><td>当代理与brokers建立TLS连接时是否验证主机名</td><td>false</td></tr>
 <tr><td>tlsRequireTrustedClientCertOnConnect</td><td>Whether client certificates are required for TLS. Connections are rejected if the client certificate isn’t trusted.</td><td>false</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/administration-load-distribution"><span class="arrow-prev">← </span><span>Load distribution</span></a><a class="docs-next button" href="/docs/zh-CN/security-overview"><span>概述</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#pulsar-代理的配置">Pulsar 代理的配置</a><ul class="toc-headings"><li><a href="#选项-1-使用服务发现">选项 1:使用服 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/administration-load-distribution"><span class="arrow-prev">← </span><span>Load distribution</span></a><a class="docs-next button" href="/docs/zh-CN/security-overview"><span>概述</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#pulsar-代理的配置">Pulsar 代理的配置</a><ul class="toc-headings"><li><a href="#选项-1-使用服务发现">选项 1:使用服 [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/concepts-messaging.html b/content/docs/zh-CN/concepts-messaging.html
index 80866ba..f135703 100644
--- a/content/docs/zh-CN/concepts-messaging.html
+++ b/content/docs/zh-CN/concepts-messaging.html
@@ -274,9 +274,9 @@ Consumer someTopicsConsumer = pulsarClient.subscribe(someTopicsInNamespace, "sub
  is an enum that represent sets of standard hashing functions available when choosing the partition to use for a particular message.</p>
 <p>There are 2 types of standard hashing functions available: <code>JavaStringHash</code> and <code>Murmur3_32Hash</code>. The default hashing function for producer is <code>JavaStringHash</code>. Please pay attention that <code>JavaStringHash</code> is not useful when producers can be from different multiple language clients, under this use case, it is recommended to use <code>Murmur3_32Hash</code>.</p>
 <h2><a class="anchor" aria-hidden="true" id="非持久topic"></a><a href="#非持久topic" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>默认的,Pulsar保存<em>所有</em>没有确认的消息到多个<a href="concepts-architecture-overview.md#persistent-storage">BookKeeper</a>的bookies中(存储节点)。持久topic的消息数据可以在broker重启或者订阅者出问题的情况下存活下来。 Data for messages on persistent topics can thus survive broker restarts and subscriber failover.</p>
-<p>Pulsar also, however, supports <strong>non-persistent topics</strong>, which are topics on which messages are <em>never</em> persisted to disk and live only in memory. Pulsar也提供了非持久topic。非持久topic的消息不会被保存在硬盘上,只存活于内存中。当使用非持久topic分发时,杀掉Pulsar的broker或者关闭订阅者,此topic( non-persistent))上所有的瞬时消息都会丢失,意味着客户端可能会遇到消息缺失。</p>
-<p>Non-persistent topics have names of this form (note the <code>non-persistent</code> in the name):</p>
+<p>默认的,Pulsar保存<em>所有</em>没有确认的消息到多个<a href="concepts-architecture-overview.md#persistent-storage">BookKeeper</a>的bookies中(存储节点)。持久topic的消息数据可以在broker重启或者订阅者出问题的情况下存活下来。 因此,持久性主题上的消息数据可以在 broker 重启和订阅者故障转移之后继续存在。</p>
+<p>但是,Pulsar还支持<strong>非持久性主题</strong>,这些主题的消息<em>从不</em>持久存储到磁盘,只存在于内存中。 Pulsar也提供了非持久topic。非持久topic的消息不会被保存在硬盘上,只存活于内存中。当使用非持久topic分发时,杀掉Pulsar的broker或者关闭订阅者,此topic( non-persistent))上所有的瞬时消息都会丢失,意味着客户端可能会遇到消息缺失。</p>
+<p>非持久性主题具有这种形式的名称(注意名称中的 <code>non-persistent</code>):</p>
 <pre><code class="hljs css language-http">non-persistent://tenant/namespace/topic
 </code></pre>
 <blockquote>
diff --git a/content/docs/zh-CN/concepts-messaging/index.html b/content/docs/zh-CN/concepts-messaging/index.html
index 80866ba..f135703 100644
--- a/content/docs/zh-CN/concepts-messaging/index.html
+++ b/content/docs/zh-CN/concepts-messaging/index.html
@@ -274,9 +274,9 @@ Consumer someTopicsConsumer = pulsarClient.subscribe(someTopicsInNamespace, "sub
  is an enum that represent sets of standard hashing functions available when choosing the partition to use for a particular message.</p>
 <p>There are 2 types of standard hashing functions available: <code>JavaStringHash</code> and <code>Murmur3_32Hash</code>. The default hashing function for producer is <code>JavaStringHash</code>. Please pay attention that <code>JavaStringHash</code> is not useful when producers can be from different multiple language clients, under this use case, it is recommended to use <code>Murmur3_32Hash</code>.</p>
 <h2><a class="anchor" aria-hidden="true" id="非持久topic"></a><a href="#非持久topic" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>默认的,Pulsar保存<em>所有</em>没有确认的消息到多个<a href="concepts-architecture-overview.md#persistent-storage">BookKeeper</a>的bookies中(存储节点)。持久topic的消息数据可以在broker重启或者订阅者出问题的情况下存活下来。 Data for messages on persistent topics can thus survive broker restarts and subscriber failover.</p>
-<p>Pulsar also, however, supports <strong>non-persistent topics</strong>, which are topics on which messages are <em>never</em> persisted to disk and live only in memory. Pulsar也提供了非持久topic。非持久topic的消息不会被保存在硬盘上,只存活于内存中。当使用非持久topic分发时,杀掉Pulsar的broker或者关闭订阅者,此topic( non-persistent))上所有的瞬时消息都会丢失,意味着客户端可能会遇到消息缺失。</p>
-<p>Non-persistent topics have names of this form (note the <code>non-persistent</code> in the name):</p>
+<p>默认的,Pulsar保存<em>所有</em>没有确认的消息到多个<a href="concepts-architecture-overview.md#persistent-storage">BookKeeper</a>的bookies中(存储节点)。持久topic的消息数据可以在broker重启或者订阅者出问题的情况下存活下来。 因此,持久性主题上的消息数据可以在 broker 重启和订阅者故障转移之后继续存在。</p>
+<p>但是,Pulsar还支持<strong>非持久性主题</strong>,这些主题的消息<em>从不</em>持久存储到磁盘,只存在于内存中。 Pulsar也提供了非持久topic。非持久topic的消息不会被保存在硬盘上,只存活于内存中。当使用非持久topic分发时,杀掉Pulsar的broker或者关闭订阅者,此topic( non-persistent))上所有的瞬时消息都会丢失,意味着客户端可能会遇到消息缺失。</p>
+<p>非持久性主题具有这种形式的名称(注意名称中的 <code>non-persistent</code>):</p>
 <pre><code class="hljs css language-http">non-persistent://tenant/namespace/topic
 </code></pre>
 <blockquote>
diff --git a/content/docs/zh-CN/cookbooks-deduplication.html b/content/docs/zh-CN/cookbooks-deduplication.html
index 7b83854..3beab92 100644
--- a/content/docs/zh-CN/cookbooks-deduplication.html
+++ b/content/docs/zh-CN/cookbooks-deduplication.html
@@ -159,7 +159,7 @@ Producer producer;
 
 Result result = client.createProducer(topic, producerConfig, producer);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/cookbooks-compaction"><span class="arrow-prev">← </span><span>Topic compaction</span></a><a class="docs-next button" href="/docs/zh-CN/cookbooks-non-persistent"><span>Non-persistent messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a href="#configuration-for-message [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/cookbooks-compaction"><span class="arrow-prev">← </span><span>Topic compaction</span></a><a class="docs-next button" href="/docs/zh-CN/cookbooks-non-persistent"><span>非持久化消息</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a href="#configuration-for-message-deduplication">Co [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/cookbooks-deduplication/index.html b/content/docs/zh-CN/cookbooks-deduplication/index.html
index 7b83854..3beab92 100644
--- a/content/docs/zh-CN/cookbooks-deduplication/index.html
+++ b/content/docs/zh-CN/cookbooks-deduplication/index.html
@@ -159,7 +159,7 @@ Producer producer;
 
 Result result = client.createProducer(topic, producerConfig, producer);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/cookbooks-compaction"><span class="arrow-prev">← </span><span>Topic compaction</span></a><a class="docs-next button" href="/docs/zh-CN/cookbooks-non-persistent"><span>Non-persistent messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a href="#configuration-for-message [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/cookbooks-compaction"><span class="arrow-prev">← </span><span>Topic compaction</span></a><a class="docs-next button" href="/docs/zh-CN/cookbooks-non-persistent"><span>非持久化消息</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a href="#configuration-for-message-deduplication">Co [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/cookbooks-non-persistent.html b/content/docs/zh-CN/cookbooks-non-persistent.html
index e9d2334..67edffc 100644
--- a/content/docs/zh-CN/cookbooks-non-persistent.html
+++ b/content/docs/zh-CN/cookbooks-non-persistent.html
@@ -1,5 +1,5 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Non-persistent messaging · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;&lt;strong&gt;Non-persistent topics&lt;/strong&gt; are Pulsar topics in which message data is &lt;em&gt;never&lt;/em&gt; &lt;a href=&quot;/docs/zh-CN/concepts-architecture-overview [...]
-"/><meta name="docsearch:version" content="2.3.0"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Non-persistent messaging · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;&lt;strong&gt;Non-persistent topics&lt;/strong&gt; are Pulsar topics in which message data is &lt;em&gt;never&lt;/em&gt; &lt;a href=&quot;/docs/zh-C [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Non-persistent messaging · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;&lt;strong&gt;非持久性主题&lt;/strong&gt;也是 Pulsar 的一种主题,其中消息数据&lt;em&gt;永远不会&lt;/em&gt;&lt;a href=&quot;/docs/zh-CN/concepts-architecture-overview#persistent-storage&quot;&gt;持久存储&lt;/a [...]
+"/><meta name="docsearch:version" content="2.3.0"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Non-persistent messaging · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;&lt;strong&gt;非持久性主题&lt;/strong&gt;也是 Pulsar 的一种主题,其中消息数据&lt;em&gt;永远不会&lt;/em&gt;&lt;a href=&quot;/docs/zh-CN/concepts-architecture-overview#persis [...]
 "/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://pulsar.incubator.apache.org/img/pulsar.svg"/><link rel="shortcut icon" href="/img/pulsar.ico"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><link rel="alternate" type="application/atom+xml" href="https://pulsar.incubator.apache.org/blog/atom.x [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
@@ -70,45 +70,45 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Non-persistent messaging</h1></header><article><div><span><p><strong>Non-persistent topics</strong> are Pulsar topics in which message data is <em>never</em> <a href="/docs/zh-CN/concepts-a [...]
+        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Non-persistent messaging</h1></header><article><div><span><p><strong>非持久性主题</strong>也是 Pulsar 的一种主题,其中消息数据<em>永远不会</em><a href="/docs/zh-CN/concepts-architecture-overview#persistent-storage [...]
 <ul>
-<li>A basic <a href="#overview">conceptual overview</a> of non-persistent topics</li>
-<li>Information about <a href="#configuration">configurable parameters</a> related to non-persistent topics</li>
-<li>A guide to the <a href="#cli">CLI interface</a> for managing non-persistent topics</li>
+<li>非持久性主题的基本<a href="#overview">概念概述</a></li>
+<li>非持久性主题相关的<a href="#configuration">可配置参数</a>信息</li>
+<li>用于管理非持久性主题<a href="#cli"> CLI(命令行工具)</a>指南</li>
 </ul>
 <h2><a class="anchor" aria-hidden="true" id="概述"></a><a href="#概述" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>By default, Pulsar persistently stores <em>all</em> unacknowledged messages on multiple <a href="#persistent-storage">BookKeeper</a> bookies (storage nodes). Data for messages on persistent topics can thus survive broker restarts and subscriber failover.</p>
-<p>Pulsar also, however, supports <strong>non-persistent topics</strong>, which are topics on which messages are <em>never</em> persisted to disk and live only in memory. When using non-persistent delivery, killing a Pulsar <a href="/docs/zh-CN/reference-terminology#broker">broker</a> or disconnecting a subscriber to a topic means that all in-transit messages are lost on that (non-persistent) topic, meaning that clients may see message loss.</p>
-<p>Non-persistent topics have names of this form (note the <code>non-persistent</code> in the name):</p>
+<p>默认情况下,Pulsar会在多个<a href="#persistent-storage"> BookKeeper </a> bookies(存储节点)上持续存储<em>所有</em>未确认的消息。 因此,持久性主题上的消息数据可以在 broker 重启和订阅者故障转移之后继续存在。</p>
+<p>但是,Pulsar还支持<strong>非持久性主题</strong>,这些主题的消息<em>从不</em>持久存储到磁盘,只存在于内存中。 使用非持久性主题传输时,当某个 Pulsar <a href="/docs/zh-CN/reference-terminology#broker">broker</a>宕机,或断开订阅者与某个主题(非持久性)的连接意味着所有正在传输的消息都会丢失,客户端也可能会看到消息的丢失。</p>
+<p>非持久性主题具有这种形式的名称(注意名称中的 <code>non-persistent</code>):</p>
 <pre><code class="hljs css language-http">non-persistent://tenant/namespace/topic
 </code></pre>
 <blockquote>
-<p>For more high-level information about non-persistent topics, see the <a href="/docs/zh-CN/concepts-messaging#non-persistent-topics">Concepts and Architecture</a> documentation.</p>
+<p>有关非持久性主题的更多高级信息,请参见 <a href="/docs/zh-CN/concepts-messaging#non-persistent-topics">Concepts and Architecture</a> 文档。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="using"></a><a href="#using" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
+<h2><a class="anchor" aria-hidden="true" id="使用"></a><a href="#使用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <blockquote>
-<p>In order to use non-persistent topics, they must be <a href="#enabling">enabled</a> in your Pulsar broker configuration.</p>
+<p>要使用非持久性主题,必须在 Pulsar broker 配置中<a href="#enabling">启用</a>。</p>
 </blockquote>
-<p>In order to use non-persistent topics, you only need to differentiate them by name when interacting with them. This <a href="/docs/zh-CN/reference-cli-tools#pulsar-client-produce"><code>pulsar-client produce</code></a> command, for example, would produce one message on a non-persistent topic in a standalone cluster:</p>
+<p>为了使用非持久性主题,你只需要在与它们交互时按名称区分它们。 例如,此<a href="/docs/zh-CN/reference-cli-tools#pulsar-client-produce"> <code>pulsar-client produce</code> </a>命令将在单集群的非持久性主题上生产一条消息:</p>
 <pre><code class="hljs css language-bash">$ bin/pulsar-client produce non-persistent://public/default/example-np-topic \
   --num-produce 1 \
   --messages <span class="hljs-string">"This message will be stored only in memory"</span>
 </code></pre>
 <blockquote>
-<p>For a more thorough guide to non-persistent topics from an administrative perspective, see the <a href="/docs/zh-CN/admin-api-non-persistent-topics">Non-persistent topics</a> guide.</p>
+<p>要从管理的角度获得关于非持久性主题的更详细的指南,请参阅<a href="/docs/zh-CN/admin-api-non-persistent-topics">非持久性主题</a>指南。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="enabling"></a><a href="#enabling" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 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>In order to enable non-persistent topics in a Pulsar broker, the <a href="/docs/zh-CN/reference-configuration#broker-enableNonPersistentTopics"><code>enableNonPersistentTopics</code></a> must be set to <code>true</code>. This is the default, and so you won't need to take any action to enable non-persistent messaging.</p>
+<h2><a class="anchor" aria-hidden="true" id="启用"></a><a href="#启用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>为了在 Pulsar broker 中启用非持久性主题,必须将 <a href="/docs/zh-CN/reference-configuration#broker-enableNonPersistentTopics"><code>enableNonPersistentTopics</code></a> 设置为<code>true</code>。 你无需采取任何操作来启用非持久性消息传递,因为这是默认设置。</p>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="configuration-for-standalone-mode"></a><a href="#configuration-for-standalone-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.5S1 [...]
-<p>If you're running Pulsar in standalone mode, the same configurable parameters are available but in the <a href="/docs/zh-CN/reference-configuration#standalone"><code>standalone.conf</code></a> configuration file.</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- [...]
+<p>如果你在独立模式下运行 Pulsar,则可以在<a href="/docs/zh-CN/reference-configuration#standalone"> <code>standalone.conf</code> </a>配置文件中使用相同的可配置参数。</p>
 </blockquote>
-<p>If you'd like to enable <em>only</em> non-persistent topics in a broker, you can set the <a href="/docs/zh-CN/reference-configuration#broker-enablePersistentTopics"><code>enablePersistentTopics</code></a> parameter to <code>false</code> and the <code>enableNonPersistentTopics</code> parameter to <code>true</code>.</p>
-<h2><a class="anchor" aria-hidden="true" id="managing-with-cli"></a><a href="#managing-with-cli" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
-<p>Non-persistent topics can be managed using the <a href="/docs/zh-CN/pulsar-admin#non-persistent"><code>pulsar-admin non-persistent</code></a> command-line interface. With that interface you can perform actions like <a href="/docs/zh-CN/pulsar-admin#non-persistent-create-partitioned-topic">create a partitioned non-persistent topic</a>, get <a href="/docs/zh-CN/pulsar-admin#non-persistent-stats">stats</a> for a non-persistent topic, <a href="/docs/zh-CN/pulsar-admin">list</a> non-persis [...]
-<h2><a class="anchor" aria-hidden="true" id="using-with-pulsar-clients"></a><a href="#using-with-pulsar-clients" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c [...]
-<p>You shouldn't need to make any changes to your Pulsar clients to use non-persistent messaging beyond making sure that you use proper <a href="#using">topic names</a> with <code>non-persistent</code> as the topic type.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/cookbooks-deduplication"><span class="arrow-prev">← </span><span>Message deduplication</span></a><a class="docs-next button" href="/docs/zh-CN/cookbooks-partitioned"><span>分区Topic</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#概述">概述</a></li><li><a href="#using">Using</a></li><li><a href="#enabling">Enabling</a> [...]
+<p>如果你<em>只</em>想在 Broker 中启用非持久性主题,则可以将<a href="/docs/zh-CN/reference-configuration#broker-enablePersistentTopics">enablePersistentTopics</code></a>参数设置为<code>false</code>,将 <code>enableNonPersistentTopics</code>参数设置为<code>true</code>。</p>
+<h2><a class="anchor" aria-hidden="true" id="使用cli-命令行工具-管理"></a><a href="#使用cli-命令行工具-管理" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
+<p>可以使用<a href="/docs/zh-CN/pulsar-admin#non-persistent"> <code>pulsar-admin non-persistent</code> </a>命令行管理非持久性主题。 使用命令行工具,你可以执行诸如<a href="/docs/zh-CN/pulsar-admin#non-persistent-create-partitioned-topic">创建分区非持久性主题</a>,获取非持久主题的<a href="/docs/zh-CN/pulsar-admin#non-persistent-stats">统计信息</a>,获取命名空间下的非持久主题<a href="/docs/zh-CN/pulsar-admin">列表</a>等操作。</p>
+<h2><a class="anchor" aria-hidden="true" id="与pulsar客户端一起使用"></a><a href="#与pulsar客户端一起使用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 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>除了确保使用具有<code>非持久性</code>的正确<a href="#using">主题名称</a>作为主题类型之外,你不应该对 Pulsar 客户端进行任何更改以使用非持久性消息传递。</p>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/cookbooks-deduplication"><span class="arrow-prev">← </span><span>Message deduplication</span></a><a class="docs-next button" href="/docs/zh-CN/cookbooks-partitioned"><span>分区Topic</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#概述">概述</a></li><li><a href="#使用">使用</a></li><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/cookbooks-non-persistent/index.html b/content/docs/zh-CN/cookbooks-non-persistent/index.html
index e9d2334..67edffc 100644
--- a/content/docs/zh-CN/cookbooks-non-persistent/index.html
+++ b/content/docs/zh-CN/cookbooks-non-persistent/index.html
@@ -1,5 +1,5 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Non-persistent messaging · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;&lt;strong&gt;Non-persistent topics&lt;/strong&gt; are Pulsar topics in which message data is &lt;em&gt;never&lt;/em&gt; &lt;a href=&quot;/docs/zh-CN/concepts-architecture-overview [...]
-"/><meta name="docsearch:version" content="2.3.0"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Non-persistent messaging · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;&lt;strong&gt;Non-persistent topics&lt;/strong&gt; are Pulsar topics in which message data is &lt;em&gt;never&lt;/em&gt; &lt;a href=&quot;/docs/zh-C [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Non-persistent messaging · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;&lt;strong&gt;非持久性主题&lt;/strong&gt;也是 Pulsar 的一种主题,其中消息数据&lt;em&gt;永远不会&lt;/em&gt;&lt;a href=&quot;/docs/zh-CN/concepts-architecture-overview#persistent-storage&quot;&gt;持久存储&lt;/a [...]
+"/><meta name="docsearch:version" content="2.3.0"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Non-persistent messaging · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;&lt;strong&gt;非持久性主题&lt;/strong&gt;也是 Pulsar 的一种主题,其中消息数据&lt;em&gt;永远不会&lt;/em&gt;&lt;a href=&quot;/docs/zh-CN/concepts-architecture-overview#persis [...]
 "/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://pulsar.incubator.apache.org/img/pulsar.svg"/><link rel="shortcut icon" href="/img/pulsar.ico"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><link rel="alternate" type="application/atom+xml" href="https://pulsar.incubator.apache.org/blog/atom.x [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
@@ -70,45 +70,45 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Non-persistent messaging</h1></header><article><div><span><p><strong>Non-persistent topics</strong> are Pulsar topics in which message data is <em>never</em> <a href="/docs/zh-CN/concepts-a [...]
+        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Non-persistent messaging</h1></header><article><div><span><p><strong>非持久性主题</strong>也是 Pulsar 的一种主题,其中消息数据<em>永远不会</em><a href="/docs/zh-CN/concepts-architecture-overview#persistent-storage [...]
 <ul>
-<li>A basic <a href="#overview">conceptual overview</a> of non-persistent topics</li>
-<li>Information about <a href="#configuration">configurable parameters</a> related to non-persistent topics</li>
-<li>A guide to the <a href="#cli">CLI interface</a> for managing non-persistent topics</li>
+<li>非持久性主题的基本<a href="#overview">概念概述</a></li>
+<li>非持久性主题相关的<a href="#configuration">可配置参数</a>信息</li>
+<li>用于管理非持久性主题<a href="#cli"> CLI(命令行工具)</a>指南</li>
 </ul>
 <h2><a class="anchor" aria-hidden="true" id="概述"></a><a href="#概述" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>By default, Pulsar persistently stores <em>all</em> unacknowledged messages on multiple <a href="#persistent-storage">BookKeeper</a> bookies (storage nodes). Data for messages on persistent topics can thus survive broker restarts and subscriber failover.</p>
-<p>Pulsar also, however, supports <strong>non-persistent topics</strong>, which are topics on which messages are <em>never</em> persisted to disk and live only in memory. When using non-persistent delivery, killing a Pulsar <a href="/docs/zh-CN/reference-terminology#broker">broker</a> or disconnecting a subscriber to a topic means that all in-transit messages are lost on that (non-persistent) topic, meaning that clients may see message loss.</p>
-<p>Non-persistent topics have names of this form (note the <code>non-persistent</code> in the name):</p>
+<p>默认情况下,Pulsar会在多个<a href="#persistent-storage"> BookKeeper </a> bookies(存储节点)上持续存储<em>所有</em>未确认的消息。 因此,持久性主题上的消息数据可以在 broker 重启和订阅者故障转移之后继续存在。</p>
+<p>但是,Pulsar还支持<strong>非持久性主题</strong>,这些主题的消息<em>从不</em>持久存储到磁盘,只存在于内存中。 使用非持久性主题传输时,当某个 Pulsar <a href="/docs/zh-CN/reference-terminology#broker">broker</a>宕机,或断开订阅者与某个主题(非持久性)的连接意味着所有正在传输的消息都会丢失,客户端也可能会看到消息的丢失。</p>
+<p>非持久性主题具有这种形式的名称(注意名称中的 <code>non-persistent</code>):</p>
 <pre><code class="hljs css language-http">non-persistent://tenant/namespace/topic
 </code></pre>
 <blockquote>
-<p>For more high-level information about non-persistent topics, see the <a href="/docs/zh-CN/concepts-messaging#non-persistent-topics">Concepts and Architecture</a> documentation.</p>
+<p>有关非持久性主题的更多高级信息,请参见 <a href="/docs/zh-CN/concepts-messaging#non-persistent-topics">Concepts and Architecture</a> 文档。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="using"></a><a href="#using" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
+<h2><a class="anchor" aria-hidden="true" id="使用"></a><a href="#使用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <blockquote>
-<p>In order to use non-persistent topics, they must be <a href="#enabling">enabled</a> in your Pulsar broker configuration.</p>
+<p>要使用非持久性主题,必须在 Pulsar broker 配置中<a href="#enabling">启用</a>。</p>
 </blockquote>
-<p>In order to use non-persistent topics, you only need to differentiate them by name when interacting with them. This <a href="/docs/zh-CN/reference-cli-tools#pulsar-client-produce"><code>pulsar-client produce</code></a> command, for example, would produce one message on a non-persistent topic in a standalone cluster:</p>
+<p>为了使用非持久性主题,你只需要在与它们交互时按名称区分它们。 例如,此<a href="/docs/zh-CN/reference-cli-tools#pulsar-client-produce"> <code>pulsar-client produce</code> </a>命令将在单集群的非持久性主题上生产一条消息:</p>
 <pre><code class="hljs css language-bash">$ bin/pulsar-client produce non-persistent://public/default/example-np-topic \
   --num-produce 1 \
   --messages <span class="hljs-string">"This message will be stored only in memory"</span>
 </code></pre>
 <blockquote>
-<p>For a more thorough guide to non-persistent topics from an administrative perspective, see the <a href="/docs/zh-CN/admin-api-non-persistent-topics">Non-persistent topics</a> guide.</p>
+<p>要从管理的角度获得关于非持久性主题的更详细的指南,请参阅<a href="/docs/zh-CN/admin-api-non-persistent-topics">非持久性主题</a>指南。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="enabling"></a><a href="#enabling" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 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>In order to enable non-persistent topics in a Pulsar broker, the <a href="/docs/zh-CN/reference-configuration#broker-enableNonPersistentTopics"><code>enableNonPersistentTopics</code></a> must be set to <code>true</code>. This is the default, and so you won't need to take any action to enable non-persistent messaging.</p>
+<h2><a class="anchor" aria-hidden="true" id="启用"></a><a href="#启用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>为了在 Pulsar broker 中启用非持久性主题,必须将 <a href="/docs/zh-CN/reference-configuration#broker-enableNonPersistentTopics"><code>enableNonPersistentTopics</code></a> 设置为<code>true</code>。 你无需采取任何操作来启用非持久性消息传递,因为这是默认设置。</p>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="configuration-for-standalone-mode"></a><a href="#configuration-for-standalone-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.5S1 [...]
-<p>If you're running Pulsar in standalone mode, the same configurable parameters are available but in the <a href="/docs/zh-CN/reference-configuration#standalone"><code>standalone.conf</code></a> configuration file.</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- [...]
+<p>如果你在独立模式下运行 Pulsar,则可以在<a href="/docs/zh-CN/reference-configuration#standalone"> <code>standalone.conf</code> </a>配置文件中使用相同的可配置参数。</p>
 </blockquote>
-<p>If you'd like to enable <em>only</em> non-persistent topics in a broker, you can set the <a href="/docs/zh-CN/reference-configuration#broker-enablePersistentTopics"><code>enablePersistentTopics</code></a> parameter to <code>false</code> and the <code>enableNonPersistentTopics</code> parameter to <code>true</code>.</p>
-<h2><a class="anchor" aria-hidden="true" id="managing-with-cli"></a><a href="#managing-with-cli" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
-<p>Non-persistent topics can be managed using the <a href="/docs/zh-CN/pulsar-admin#non-persistent"><code>pulsar-admin non-persistent</code></a> command-line interface. With that interface you can perform actions like <a href="/docs/zh-CN/pulsar-admin#non-persistent-create-partitioned-topic">create a partitioned non-persistent topic</a>, get <a href="/docs/zh-CN/pulsar-admin#non-persistent-stats">stats</a> for a non-persistent topic, <a href="/docs/zh-CN/pulsar-admin">list</a> non-persis [...]
-<h2><a class="anchor" aria-hidden="true" id="using-with-pulsar-clients"></a><a href="#using-with-pulsar-clients" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c [...]
-<p>You shouldn't need to make any changes to your Pulsar clients to use non-persistent messaging beyond making sure that you use proper <a href="#using">topic names</a> with <code>non-persistent</code> as the topic type.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/cookbooks-deduplication"><span class="arrow-prev">← </span><span>Message deduplication</span></a><a class="docs-next button" href="/docs/zh-CN/cookbooks-partitioned"><span>分区Topic</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#概述">概述</a></li><li><a href="#using">Using</a></li><li><a href="#enabling">Enabling</a> [...]
+<p>如果你<em>只</em>想在 Broker 中启用非持久性主题,则可以将<a href="/docs/zh-CN/reference-configuration#broker-enablePersistentTopics">enablePersistentTopics</code></a>参数设置为<code>false</code>,将 <code>enableNonPersistentTopics</code>参数设置为<code>true</code>。</p>
+<h2><a class="anchor" aria-hidden="true" id="使用cli-命令行工具-管理"></a><a href="#使用cli-命令行工具-管理" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
+<p>可以使用<a href="/docs/zh-CN/pulsar-admin#non-persistent"> <code>pulsar-admin non-persistent</code> </a>命令行管理非持久性主题。 使用命令行工具,你可以执行诸如<a href="/docs/zh-CN/pulsar-admin#non-persistent-create-partitioned-topic">创建分区非持久性主题</a>,获取非持久主题的<a href="/docs/zh-CN/pulsar-admin#non-persistent-stats">统计信息</a>,获取命名空间下的非持久主题<a href="/docs/zh-CN/pulsar-admin">列表</a>等操作。</p>
+<h2><a class="anchor" aria-hidden="true" id="与pulsar客户端一起使用"></a><a href="#与pulsar客户端一起使用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 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>除了确保使用具有<code>非持久性</code>的正确<a href="#using">主题名称</a>作为主题类型之外,你不应该对 Pulsar 客户端进行任何更改以使用非持久性消息传递。</p>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/cookbooks-deduplication"><span class="arrow-prev">← </span><span>Message deduplication</span></a><a class="docs-next button" href="/docs/zh-CN/cookbooks-partitioned"><span>分区Topic</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#概述">概述</a></li><li><a href="#使用">使用</a></li><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/cookbooks-partitioned.html b/content/docs/zh-CN/cookbooks-partitioned.html
index 96b9b08..07bd0ec 100644
--- a/content/docs/zh-CN/cookbooks-partitioned.html
+++ b/content/docs/zh-CN/cookbooks-partitioned.html
@@ -121,7 +121,7 @@ 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- [...]
 <p>您可以使用Pulsar的<a href="/docs/zh-CN/admin-api-overview"> admin API </a>来创建和管理<a href="/docs/zh-CN/admin-api-partitioned-topics">分区主题</a>。</p>
-</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>Non-persistent messaging</span></a><a class="docs-next button" href="/docs/zh-CN/cookbooks-retention-expiry"><span>Message retention and expiry</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 [...]
+</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-retention-expiry"><span>Message retention and expiry</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="#java">Java</a>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/cookbooks-partitioned/index.html b/content/docs/zh-CN/cookbooks-partitioned/index.html
index 96b9b08..07bd0ec 100644
--- a/content/docs/zh-CN/cookbooks-partitioned/index.html
+++ b/content/docs/zh-CN/cookbooks-partitioned/index.html
@@ -121,7 +121,7 @@ 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- [...]
 <p>您可以使用Pulsar的<a href="/docs/zh-CN/admin-api-overview"> admin API </a>来创建和管理<a href="/docs/zh-CN/admin-api-partitioned-topics">分区主题</a>。</p>
-</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>Non-persistent messaging</span></a><a class="docs-next button" href="/docs/zh-CN/cookbooks-retention-expiry"><span>Message retention and expiry</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 [...]
+</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-retention-expiry"><span>Message retention and expiry</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="#java">Java</a>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/next/adaptors-kafka.html b/content/docs/zh-CN/next/adaptors-kafka.html
index 637c198..534fa88 100644
--- a/content/docs/zh-CN/next/adaptors-kafka.html
+++ b/content/docs/zh-CN/next/adaptors-kafka.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>适配器 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>适配器 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/adaptors-kafka/index.html b/content/docs/zh-CN/next/adaptors-kafka/index.html
index 637c198..534fa88 100644
--- a/content/docs/zh-CN/next/adaptors-kafka/index.html
+++ b/content/docs/zh-CN/next/adaptors-kafka/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>适配器 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>适配器 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/adaptors-spark.html b/content/docs/zh-CN/next/adaptors-spark.html
index 82c185a..e394cc9 100644
--- a/content/docs/zh-CN/next/adaptors-spark.html
+++ b/content/docs/zh-CN/next/adaptors-spark.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>适配器 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>适配器 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/adaptors-spark/index.html b/content/docs/zh-CN/next/adaptors-spark/index.html
index 82c185a..e394cc9 100644
--- a/content/docs/zh-CN/next/adaptors-spark/index.html
+++ b/content/docs/zh-CN/next/adaptors-spark/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>适配器 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>适配器 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/adaptors-storm.html b/content/docs/zh-CN/next/adaptors-storm.html
index bce756c..90df3a7 100644
--- a/content/docs/zh-CN/next/adaptors-storm.html
+++ b/content/docs/zh-CN/next/adaptors-storm.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>适配器 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>适配器 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/adaptors-storm/index.html b/content/docs/zh-CN/next/adaptors-storm/index.html
index bce756c..90df3a7 100644
--- a/content/docs/zh-CN/next/adaptors-storm/index.html
+++ b/content/docs/zh-CN/next/adaptors-storm/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>适配器 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>适配器 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/admin-api-brokers.html b/content/docs/zh-CN/next/admin-api-brokers.html
index 37dbd18..e1196e5 100644
--- a/content/docs/zh-CN/next/admin-api-brokers.html
+++ b/content/docs/zh-CN/next/admin-api-brokers.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/admin-api-brokers/index.html b/content/docs/zh-CN/next/admin-api-brokers/index.html
index 37dbd18..e1196e5 100644
--- a/content/docs/zh-CN/next/admin-api-brokers/index.html
+++ b/content/docs/zh-CN/next/admin-api-brokers/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/admin-api-clusters.html b/content/docs/zh-CN/next/admin-api-clusters.html
index 39679e7..a075a31 100644
--- a/content/docs/zh-CN/next/admin-api-clusters.html
+++ b/content/docs/zh-CN/next/admin-api-clusters.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/admin-api-clusters/index.html b/content/docs/zh-CN/next/admin-api-clusters/index.html
index 39679e7..a075a31 100644
--- a/content/docs/zh-CN/next/admin-api-clusters/index.html
+++ b/content/docs/zh-CN/next/admin-api-clusters/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/admin-api-namespaces.html b/content/docs/zh-CN/next/admin-api-namespaces.html
index dee8218..9cb45c6 100644
--- a/content/docs/zh-CN/next/admin-api-namespaces.html
+++ b/content/docs/zh-CN/next/admin-api-namespaces.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/admin-api-namespaces/index.html b/content/docs/zh-CN/next/admin-api-namespaces/index.html
index dee8218..9cb45c6 100644
--- a/content/docs/zh-CN/next/admin-api-namespaces/index.html
+++ b/content/docs/zh-CN/next/admin-api-namespaces/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/admin-api-non-persistent-topics.html b/content/docs/zh-CN/next/admin-api-non-persistent-topics.html
index 9e1f0ee..6644dfc 100644
--- a/content/docs/zh-CN/next/admin-api-non-persistent-topics.html
+++ b/content/docs/zh-CN/next/admin-api-non-persistent-topics.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/admin-api-non-persistent-topics/index.html b/content/docs/zh-CN/next/admin-api-non-persistent-topics/index.html
index 9e1f0ee..6644dfc 100644
--- a/content/docs/zh-CN/next/admin-api-non-persistent-topics/index.html
+++ b/content/docs/zh-CN/next/admin-api-non-persistent-topics/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/admin-api-overview.html b/content/docs/zh-CN/next/admin-api-overview.html
index cfaa53a..7bc2151 100644
--- a/content/docs/zh-CN/next/admin-api-overview.html
+++ b/content/docs/zh-CN/next/admin-api-overview.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/admin-api-overview/index.html b/content/docs/zh-CN/next/admin-api-overview/index.html
index cfaa53a..7bc2151 100644
--- a/content/docs/zh-CN/next/admin-api-overview/index.html
+++ b/content/docs/zh-CN/next/admin-api-overview/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/admin-api-partitioned-topics.html b/content/docs/zh-CN/next/admin-api-partitioned-topics.html
index 0d715e0..766557e 100644
--- a/content/docs/zh-CN/next/admin-api-partitioned-topics.html
+++ b/content/docs/zh-CN/next/admin-api-partitioned-topics.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -71,14 +71,14 @@
               }
             });
         </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">管理分区的主题</h1></header><article><div><span><p>您可以使用Pulsar的 <a href="/docs/zh-CN/next/admin-api-overview">admin API</a>来创建和管理分区主题。</p>
-<p>In all of the instructions and commands below, the topic name structure is:</p>
+<p>下面的指示和命令中,主题名结构是:</p>
 <pre><code class="hljs css language-shell">persistent://tenant/namespace/topic
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="partitioned-topics-资源"></a><a href="#partitioned-topics-资源" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
+<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. [...]
 <h3><a class="anchor" aria-hidden="true" id="创建"></a><a href="#创建" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>在Pulsar中, Partitioned topics 必须被显示的创建. 创建新的partitioned topic时, 你需要提供topic的名称以及所需的partition的数量.</p>
+<p>在 Pulsar 中, 必须显式的创建分区主题。创建新的分区主题时,您需要提供主题的名称以及所需的分区的数量。</p>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>你可以使用<a href="/docs/zh-CN/next/pulsar-admin#create-partitioned-topic"><code>create-partitioned-topic</code></a>命令创建partitioned topic,并指定topic的名字;使用<code>-p</code> 或 <code>--partitions</code>标志指定分区数。 这里有一个示例:</p>
+<p>你可以使用<a href="/docs/zh-CN/next/pulsar-admin#create-partitioned-topic"><code>create-partitioned-topic</code></a>命令创建partitioned topic,并指定topic的名字;使用<code>-p</code> 或 <code>--partitions</code>标志指定分区数。 下面是一个示例:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin topics create-partitioned-topic \</span>
   persistent://my-tenant/my-namespace/my-topic \
   --partitions 4
@@ -133,7 +133,7 @@ admin.persistentTopics().getPartitionedTopicMetadata(topicName);
 <h3><a class="anchor" aria-hidden="true" id="更新"></a><a href="#更新" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <p>You can update the number of partitions on an existing partitioned topic <em>if</em> the topic is non-global. To update, the new number of partitions must be greater than the existing number.</p>
 <p>Decrementing the number of partitions would deleting the topic, which is not supported in Pulsar.</p>
-<p>Already created partitioned producers and consumers will automatically find the newly created partitions.</p>
+<p>已创建的分区生产者和消费者,将自动查找新创建的分区。</p>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-3"></a><a href="#pulsar-admin-3" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
 <p>Partitioned topics can be updated using the <a href="/docs/zh-CN/next/pulsar-admin#update-partitioned-topic"><code>update-partitioned-topic</code></a> command.</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin topics update-partitioned-topic \</span>
@@ -326,7 +326,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-7"></a><a href="#java-7" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 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.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/zh-CN/next/admin-api-schemas"><span>Schema</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-资源">Partitioned topics 资源</a><ul class="toc-headings"> [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/zh-CN/next/admin-api-schemas"><span>Schema</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>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/next/admin-api-partitioned-topics/index.html b/content/docs/zh-CN/next/admin-api-partitioned-topics/index.html
index 0d715e0..766557e 100644
--- a/content/docs/zh-CN/next/admin-api-partitioned-topics/index.html
+++ b/content/docs/zh-CN/next/admin-api-partitioned-topics/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -71,14 +71,14 @@
               }
             });
         </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">管理分区的主题</h1></header><article><div><span><p>您可以使用Pulsar的 <a href="/docs/zh-CN/next/admin-api-overview">admin API</a>来创建和管理分区主题。</p>
-<p>In all of the instructions and commands below, the topic name structure is:</p>
+<p>下面的指示和命令中,主题名结构是:</p>
 <pre><code class="hljs css language-shell">persistent://tenant/namespace/topic
 </code></pre>
-<h2><a class="anchor" aria-hidden="true" id="partitioned-topics-资源"></a><a href="#partitioned-topics-资源" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2 [...]
+<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. [...]
 <h3><a class="anchor" aria-hidden="true" id="创建"></a><a href="#创建" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>在Pulsar中, Partitioned topics 必须被显示的创建. 创建新的partitioned topic时, 你需要提供topic的名称以及所需的partition的数量.</p>
+<p>在 Pulsar 中, 必须显式的创建分区主题。创建新的分区主题时,您需要提供主题的名称以及所需的分区的数量。</p>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin"></a><a href="#pulsar-admin" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83. [...]
-<p>你可以使用<a href="/docs/zh-CN/next/pulsar-admin#create-partitioned-topic"><code>create-partitioned-topic</code></a>命令创建partitioned topic,并指定topic的名字;使用<code>-p</code> 或 <code>--partitions</code>标志指定分区数。 这里有一个示例:</p>
+<p>你可以使用<a href="/docs/zh-CN/next/pulsar-admin#create-partitioned-topic"><code>create-partitioned-topic</code></a>命令创建partitioned topic,并指定topic的名字;使用<code>-p</code> 或 <code>--partitions</code>标志指定分区数。 下面是一个示例:</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> bin/pulsar-admin topics create-partitioned-topic \</span>
   persistent://my-tenant/my-namespace/my-topic \
   --partitions 4
@@ -133,7 +133,7 @@ admin.persistentTopics().getPartitionedTopicMetadata(topicName);
 <h3><a class="anchor" aria-hidden="true" id="更新"></a><a href="#更新" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <p>You can update the number of partitions on an existing partitioned topic <em>if</em> the topic is non-global. To update, the new number of partitions must be greater than the existing number.</p>
 <p>Decrementing the number of partitions would deleting the topic, which is not supported in Pulsar.</p>
-<p>Already created partitioned producers and consumers will automatically find the newly created partitions.</p>
+<p>已创建的分区生产者和消费者,将自动查找新创建的分区。</p>
 <h4><a class="anchor" aria-hidden="true" id="pulsar-admin-3"></a><a href="#pulsar-admin-3" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
 <p>Partitioned topics can be updated using the <a href="/docs/zh-CN/next/pulsar-admin#update-partitioned-topic"><code>update-partitioned-topic</code></a> command.</p>
 <pre><code class="hljs css language-shell"><span class="hljs-meta">$</span><span class="bash"> pulsar-admin topics update-partitioned-topic \</span>
@@ -326,7 +326,7 @@ persistent://tenant/namespace/topic2
 <h4><a class="anchor" aria-hidden="true" id="java-7"></a><a href="#java-7" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 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.persistentTopics().getInternalStats(persistentTopic);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/zh-CN/next/admin-api-schemas"><span>Schema</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#partitioned-topics-资源">Partitioned topics 资源</a><ul class="toc-headings"> [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/admin-api-non-persistent-topics"><span class="arrow-prev">← </span><span>Non-Persistent topics</span></a><a class="docs-next button" href="/docs/zh-CN/next/admin-api-schemas"><span>Schema</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>< [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/next/admin-api-permissions.html b/content/docs/zh-CN/next/admin-api-permissions.html
index 87506e5..b299e9f 100644
--- a/content/docs/zh-CN/next/admin-api-permissions.html
+++ b/content/docs/zh-CN/next/admin-api-permissions.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/admin-api-permissions/index.html b/content/docs/zh-CN/next/admin-api-permissions/index.html
index 87506e5..b299e9f 100644
--- a/content/docs/zh-CN/next/admin-api-permissions/index.html
+++ b/content/docs/zh-CN/next/admin-api-permissions/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/admin-api-persistent-topics.html b/content/docs/zh-CN/next/admin-api-persistent-topics.html
index 94e8fad..7651546 100644
--- a/content/docs/zh-CN/next/admin-api-persistent-topics.html
+++ b/content/docs/zh-CN/next/admin-api-persistent-topics.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/admin-api-persistent-topics/index.html b/content/docs/zh-CN/next/admin-api-persistent-topics/index.html
index 94e8fad..7651546 100644
--- a/content/docs/zh-CN/next/admin-api-persistent-topics/index.html
+++ b/content/docs/zh-CN/next/admin-api-persistent-topics/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/admin-api-schemas.html b/content/docs/zh-CN/next/admin-api-schemas.html
index 0b33ca8..0dda590 100644
--- a/content/docs/zh-CN/next/admin-api-schemas.html
+++ b/content/docs/zh-CN/next/admin-api-schemas.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/admin-api-schemas/index.html b/content/docs/zh-CN/next/admin-api-schemas/index.html
index 0b33ca8..0dda590 100644
--- a/content/docs/zh-CN/next/admin-api-schemas/index.html
+++ b/content/docs/zh-CN/next/admin-api-schemas/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/admin-api-tenants.html b/content/docs/zh-CN/next/admin-api-tenants.html
index c82df01..d81b889 100644
--- a/content/docs/zh-CN/next/admin-api-tenants.html
+++ b/content/docs/zh-CN/next/admin-api-tenants.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/admin-api-tenants/index.html b/content/docs/zh-CN/next/admin-api-tenants/index.html
index c82df01..d81b889 100644
--- a/content/docs/zh-CN/next/admin-api-tenants/index.html
+++ b/content/docs/zh-CN/next/admin-api-tenants/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>管理  [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/administration-dashboard.html b/content/docs/zh-CN/next/administration-dashboard.html
index 019461a..fa3d80f 100644
--- a/content/docs/zh-CN/next/administration-dashboard.html
+++ b/content/docs/zh-CN/next/administration-dashboard.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>系统管 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>系统管 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/administration-dashboard/index.html b/content/docs/zh-CN/next/administration-dashboard/index.html
index 019461a..fa3d80f 100644
--- a/content/docs/zh-CN/next/administration-dashboard/index.html
+++ b/content/docs/zh-CN/next/administration-dashboard/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>系统管 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>系统管 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/administration-geo.html b/content/docs/zh-CN/next/administration-geo.html
index 3ce68d4..805ba67 100644
--- a/content/docs/zh-CN/next/administration-geo.html
+++ b/content/docs/zh-CN/next/administration-geo.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>系统管 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>系统管 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/administration-geo/index.html b/content/docs/zh-CN/next/administration-geo/index.html
index 3ce68d4..805ba67 100644
--- a/content/docs/zh-CN/next/administration-geo/index.html
+++ b/content/docs/zh-CN/next/administration-geo/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>系统管 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>系统管 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/administration-load-distribution.html b/content/docs/zh-CN/next/administration-load-distribution.html
index 724c798..cc25fb2 100644
--- a/content/docs/zh-CN/next/administration-load-distribution.html
+++ b/content/docs/zh-CN/next/administration-load-distribution.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>系统管 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>系统管 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/administration-load-distribution/index.html b/content/docs/zh-CN/next/administration-load-distribution/index.html
index 724c798..cc25fb2 100644
--- a/content/docs/zh-CN/next/administration-load-distribution/index.html
+++ b/content/docs/zh-CN/next/administration-load-distribution/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>系统管 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>系统管 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/administration-proxy.html b/content/docs/zh-CN/next/administration-proxy.html
index b12279c..b59fe42 100644
--- a/content/docs/zh-CN/next/administration-proxy.html
+++ b/content/docs/zh-CN/next/administration-proxy.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>系统管 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>系统管 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -97,9 +97,9 @@
 <span class="hljs-attr">functionWorkerWebServiceURL</span>=<span class="hljs-string">https://function-workers.example.com:8443</span>
 </code></pre>
 <p>提供的URLs中的主机名应该是指向多个 broker 的DNS条目,或由多个broker 的IP地址支持的虚拟IP,以便在单个 broker 不可用时 ,代理不会失去与 Pulsar 群集的连接。</p>
-<p>连接到 brokers 的端口(6650&amp; 8080,或者在TLS,6651&amp; 8443 的情况下)应该在网络ACL中打开。</p>
-<p>Note that if you are not using functions, then <code>functionWorkerWebServiceURL</code> does not need to be configured.</p>
-<h2><a class="anchor" aria-hidden="true" id="starting-the-proxy"></a><a href="#starting-the-proxy" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
+<p>连接到 brokers 的端口(6650 和 8080,或者在使用TLS的情况下,6651 和 8443 )应该在网络ACL中打开。</p>
+<p>注意,如果不使用 functions,则不需要配置<code>functionWorkerWebServiceURL</code>。</p>
+<h2><a class="anchor" aria-hidden="true" id="启动代理"></a><a href="#启动代理" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
 <p>To start the proxy:</p>
 <pre><code class="hljs css language-bash">$ <span class="hljs-built_in">cd</span> /path/to/pulsar/directory
 $ bin/pulsar proxy
@@ -120,33 +120,33 @@ $ bin/pulsar proxy
 <tr><th>Name</th><th>说明:</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td>zookeeperServers</td><td>The ZooKeeper quorum connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper session timeout (in milliseconds)</td><td>30000</td></tr>
-<tr><td>servicePort</td><td>The port to use for server binary Protobuf requests</td><td>6650</td></tr>
-<tr><td>servicePortTls</td><td>The port to use to server binary Protobuf TLS requests</td><td>6651</td></tr>
-<tr><td>statusFilePath</td><td>Path for the file used to determine the rotation status for the proxy instance when responding to service discovery health checks</td><td></td></tr>
-<tr><td>authenticationEnabled</td><td>Whether authentication is enabled for the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authenticationProviders</td><td>Authentication provider name list (a comma-separated list of class names)</td><td></td></tr>
-<tr><td>authorizationEnabled</td><td>Whether authorization is enforced by the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authorizationProvider</td><td>Authorization provider as a fully qualified class name</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
-<tr><td>brokerClientAuthenticationPlugin</td><td>The authentication plugin used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientAuthenticationParameters</td><td>The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientTrustCertsFilePath</td><td>The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>superUserRoles</td><td>Role names that are treated as “super-users,” meaning that they will be able to perform all admin</td><td></td></tr>
-<tr><td>forwardAuthorizationCredentials</td><td>Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.</td><td>false</td></tr>
-<tr><td>maxConcurrentInboundConnections</td><td>Max concurrent inbound connections. The proxy will reject requests beyond that.</td><td>10000</td></tr>
-<tr><td>maxConcurrentLookupRequests</td><td>Max concurrent outbound connections. The proxy will error out requests beyond that.</td><td>50000</td></tr>
-<tr><td>tlsEnabledInProxy</td><td>Whether TLS is enabled for the proxy</td><td>false</td></tr>
-<tr><td>tlsEnabledWithBroker</td><td>Whether TLS is enabled when communicating with Pulsar brokers</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
-<tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate pem file</td><td></td></tr>
-<tr><td>tlsHostnameVerificationEnabled</td><td>Whether the hostname is validated when the proxy creates a TLS connection with brokers</td><td>false</td></tr>
-<tr><td>tlsRequireTrustedClientCertOnConnect</td><td>Whether client certificates are required for TLS. Connections are rejected if the client certificate isn’t trusted.</td><td>false</td></tr>
+<tr><td>zookeeperServers</td><td>ZooKeeper仲裁连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper会话超时(以毫秒为单位)</td><td>30000</td></tr>
+<tr><td>servicePort</td><td>用于服务器二进制Protobuf请求的端口</td><td>6650</td></tr>
+<tr><td>servicePortTls</td><td>用于服务器二进制Protobuf TLS请求的端口</td><td>6651</td></tr>
+<tr><td>statusFilePath</td><td>在响应服务发现健康检查时,用于确定代理实例的轮换状态的文件的路径</td><td></td></tr>
+<tr><td>authenticationEnabled</td><td>是否为Pulsar代理启用身份验证</td><td>false</td></tr>
+<tr><td>authenticationProviders</td><td>身份验证提供者名称列表(以逗号分隔的类名列表)</td><td></td></tr>
+<tr><td>authorizationEnabled</td><td>是否由Pulsar代理强制执行授权</td><td>false</td></tr>
+<tr><td>authorizationProvider</td><td>授权提供程序的完全限定类名</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
+<tr><td>brokerClientAuthenticationPlugin</td><td>Pulsar代理使用的身份验证插件,用于对Pulsar brokers进行身份验证</td><td></td></tr>
+<tr><td>brokerClientAuthenticationParameters</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的参数</td><td></td></tr>
+<tr><td>brokerClientTrustCertsFilePath</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的可信证书的路径</td><td></td></tr>
+<tr><td>superUserRoles</td><td>“超级用户”的角色名,这意味着它们将能够执行所有管理</td><td></td></tr>
+<tr><td>forwardAuthorizationCredentials</td><td>客户端授权凭据是否转发给broker以进行重新授权。必须通过AuthenticationEnabled=true启用身份验证才能生效。</td><td>false</td></tr>
+<tr><td>maxConcurrentInboundConnections</td><td>最大进站并发连接数, 代理将拒绝超出此范围的请求。</td><td>10000</td></tr>
+<tr><td>maxConcurrentLookupRequests</td><td>最大出站并发连接数。代理将错误地输出超过此范围的请求。</td><td>50000</td></tr>
+<tr><td>tlsEnabledInProxy</td><td>是否为代理启用TLS</td><td>false</td></tr>
+<tr><td>tlsEnabledWithBroker</td><td>与Pulsar Brokers通信时是否启用TLS</td><td>false</td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
+<tr><td>tlsTrustCertsFilePath</td><td>受信任的TLS证书pem文件的路径</td><td></td></tr>
+<tr><td>tlsHostnameVerificationEnabled</td><td>当代理与brokers建立TLS连接时是否验证主机名</td><td>false</td></tr>
+<tr><td>tlsRequireTrustedClientCertOnConnect</td><td>TLS是否需要客户端证书。如果客户端证书不受信任,连接将被拒绝。</td><td>false</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/administration-load-distribution"><span class="arrow-prev">← </span><span>Load distribution</span></a><a class="docs-next button" href="/docs/zh-CN/next/security-overview"><span>概述</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#pulsar-代理的配置">Pulsar 代理的配置</a><ul class="toc-headings"><li><a href="#选项-1-使用服务发现 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/administration-load-distribution"><span class="arrow-prev">← </span><span>Load distribution</span></a><a class="docs-next button" href="/docs/zh-CN/next/security-overview"><span>概述</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#pulsar-代理的配置">Pulsar 代理的配置</a><ul class="toc-headings"><li><a href="#选项-1-使用服务发现 [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/next/administration-proxy/index.html b/content/docs/zh-CN/next/administration-proxy/index.html
index b12279c..b59fe42 100644
--- a/content/docs/zh-CN/next/administration-proxy/index.html
+++ b/content/docs/zh-CN/next/administration-proxy/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>系统管 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>系统管 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -97,9 +97,9 @@
 <span class="hljs-attr">functionWorkerWebServiceURL</span>=<span class="hljs-string">https://function-workers.example.com:8443</span>
 </code></pre>
 <p>提供的URLs中的主机名应该是指向多个 broker 的DNS条目,或由多个broker 的IP地址支持的虚拟IP,以便在单个 broker 不可用时 ,代理不会失去与 Pulsar 群集的连接。</p>
-<p>连接到 brokers 的端口(6650&amp; 8080,或者在TLS,6651&amp; 8443 的情况下)应该在网络ACL中打开。</p>
-<p>Note that if you are not using functions, then <code>functionWorkerWebServiceURL</code> does not need to be configured.</p>
-<h2><a class="anchor" aria-hidden="true" id="starting-the-proxy"></a><a href="#starting-the-proxy" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22- [...]
+<p>连接到 brokers 的端口(6650 和 8080,或者在使用TLS的情况下,6651 和 8443 )应该在网络ACL中打开。</p>
+<p>注意,如果不使用 functions,则不需要配置<code>functionWorkerWebServiceURL</code>。</p>
+<h2><a class="anchor" aria-hidden="true" id="启动代理"></a><a href="#启动代理" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6 [...]
 <p>To start the proxy:</p>
 <pre><code class="hljs css language-bash">$ <span class="hljs-built_in">cd</span> /path/to/pulsar/directory
 $ bin/pulsar proxy
@@ -120,33 +120,33 @@ $ bin/pulsar proxy
 <tr><th>Name</th><th>说明:</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td>zookeeperServers</td><td>The ZooKeeper quorum connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper session timeout (in milliseconds)</td><td>30000</td></tr>
-<tr><td>servicePort</td><td>The port to use for server binary Protobuf requests</td><td>6650</td></tr>
-<tr><td>servicePortTls</td><td>The port to use to server binary Protobuf TLS requests</td><td>6651</td></tr>
-<tr><td>statusFilePath</td><td>Path for the file used to determine the rotation status for the proxy instance when responding to service discovery health checks</td><td></td></tr>
-<tr><td>authenticationEnabled</td><td>Whether authentication is enabled for the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authenticationProviders</td><td>Authentication provider name list (a comma-separated list of class names)</td><td></td></tr>
-<tr><td>authorizationEnabled</td><td>Whether authorization is enforced by the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authorizationProvider</td><td>Authorization provider as a fully qualified class name</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
-<tr><td>brokerClientAuthenticationPlugin</td><td>The authentication plugin used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientAuthenticationParameters</td><td>The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientTrustCertsFilePath</td><td>The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>superUserRoles</td><td>Role names that are treated as “super-users,” meaning that they will be able to perform all admin</td><td></td></tr>
-<tr><td>forwardAuthorizationCredentials</td><td>Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.</td><td>false</td></tr>
-<tr><td>maxConcurrentInboundConnections</td><td>Max concurrent inbound connections. The proxy will reject requests beyond that.</td><td>10000</td></tr>
-<tr><td>maxConcurrentLookupRequests</td><td>Max concurrent outbound connections. The proxy will error out requests beyond that.</td><td>50000</td></tr>
-<tr><td>tlsEnabledInProxy</td><td>Whether TLS is enabled for the proxy</td><td>false</td></tr>
-<tr><td>tlsEnabledWithBroker</td><td>Whether TLS is enabled when communicating with Pulsar brokers</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
-<tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate pem file</td><td></td></tr>
-<tr><td>tlsHostnameVerificationEnabled</td><td>Whether the hostname is validated when the proxy creates a TLS connection with brokers</td><td>false</td></tr>
-<tr><td>tlsRequireTrustedClientCertOnConnect</td><td>Whether client certificates are required for TLS. Connections are rejected if the client certificate isn’t trusted.</td><td>false</td></tr>
+<tr><td>zookeeperServers</td><td>ZooKeeper仲裁连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper会话超时(以毫秒为单位)</td><td>30000</td></tr>
+<tr><td>servicePort</td><td>用于服务器二进制Protobuf请求的端口</td><td>6650</td></tr>
+<tr><td>servicePortTls</td><td>用于服务器二进制Protobuf TLS请求的端口</td><td>6651</td></tr>
+<tr><td>statusFilePath</td><td>在响应服务发现健康检查时,用于确定代理实例的轮换状态的文件的路径</td><td></td></tr>
+<tr><td>authenticationEnabled</td><td>是否为Pulsar代理启用身份验证</td><td>false</td></tr>
+<tr><td>authenticationProviders</td><td>身份验证提供者名称列表(以逗号分隔的类名列表)</td><td></td></tr>
+<tr><td>authorizationEnabled</td><td>是否由Pulsar代理强制执行授权</td><td>false</td></tr>
+<tr><td>authorizationProvider</td><td>授权提供程序的完全限定类名</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
+<tr><td>brokerClientAuthenticationPlugin</td><td>Pulsar代理使用的身份验证插件,用于对Pulsar brokers进行身份验证</td><td></td></tr>
+<tr><td>brokerClientAuthenticationParameters</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的参数</td><td></td></tr>
+<tr><td>brokerClientTrustCertsFilePath</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的可信证书的路径</td><td></td></tr>
+<tr><td>superUserRoles</td><td>“超级用户”的角色名,这意味着它们将能够执行所有管理</td><td></td></tr>
+<tr><td>forwardAuthorizationCredentials</td><td>客户端授权凭据是否转发给broker以进行重新授权。必须通过AuthenticationEnabled=true启用身份验证才能生效。</td><td>false</td></tr>
+<tr><td>maxConcurrentInboundConnections</td><td>最大进站并发连接数, 代理将拒绝超出此范围的请求。</td><td>10000</td></tr>
+<tr><td>maxConcurrentLookupRequests</td><td>最大出站并发连接数。代理将错误地输出超过此范围的请求。</td><td>50000</td></tr>
+<tr><td>tlsEnabledInProxy</td><td>是否为代理启用TLS</td><td>false</td></tr>
+<tr><td>tlsEnabledWithBroker</td><td>与Pulsar Brokers通信时是否启用TLS</td><td>false</td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
+<tr><td>tlsTrustCertsFilePath</td><td>受信任的TLS证书pem文件的路径</td><td></td></tr>
+<tr><td>tlsHostnameVerificationEnabled</td><td>当代理与brokers建立TLS连接时是否验证主机名</td><td>false</td></tr>
+<tr><td>tlsRequireTrustedClientCertOnConnect</td><td>TLS是否需要客户端证书。如果客户端证书不受信任,连接将被拒绝。</td><td>false</td></tr>
 </tbody>
 </table>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/administration-load-distribution"><span class="arrow-prev">← </span><span>Load distribution</span></a><a class="docs-next button" href="/docs/zh-CN/next/security-overview"><span>概述</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#pulsar-代理的配置">Pulsar 代理的配置</a><ul class="toc-headings"><li><a href="#选项-1-使用服务发现 [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/administration-load-distribution"><span class="arrow-prev">← </span><span>Load distribution</span></a><a class="docs-next button" href="/docs/zh-CN/next/security-overview"><span>概述</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#pulsar-代理的配置">Pulsar 代理的配置</a><ul class="toc-headings"><li><a href="#选项-1-使用服务发现 [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/next/administration-stats.html b/content/docs/zh-CN/next/administration-stats.html
index dd1fcce..5464300 100644
--- a/content/docs/zh-CN/next/administration-stats.html
+++ b/content/docs/zh-CN/next/administration-stats.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>系统管 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>系统管 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/administration-stats/index.html b/content/docs/zh-CN/next/administration-stats/index.html
index dd1fcce..5464300 100644
--- a/content/docs/zh-CN/next/administration-stats/index.html
+++ b/content/docs/zh-CN/next/administration-stats/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>系统管 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>系统管 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/administration-zk-bk.html b/content/docs/zh-CN/next/administration-zk-bk.html
index 3b2ae17..ec2ce9a 100644
--- a/content/docs/zh-CN/next/administration-zk-bk.html
+++ b/content/docs/zh-CN/next/administration-zk-bk.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>系统管 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>系统管 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/administration-zk-bk/index.html b/content/docs/zh-CN/next/administration-zk-bk/index.html
index 3b2ae17..ec2ce9a 100644
--- a/content/docs/zh-CN/next/administration-zk-bk/index.html
+++ b/content/docs/zh-CN/next/administration-zk-bk/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>系统管 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>系统管 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/client-libraries-cpp.html b/content/docs/zh-CN/next/client-libraries-cpp.html
index d0e6a7e..135f713 100644
--- a/content/docs/zh-CN/next/client-libraries-cpp.html
+++ b/content/docs/zh-CN/next/client-libraries-cpp.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>客户端 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>客户端 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/client-libraries-cpp/index.html b/content/docs/zh-CN/next/client-libraries-cpp/index.html
index d0e6a7e..135f713 100644
--- a/content/docs/zh-CN/next/client-libraries-cpp/index.html
+++ b/content/docs/zh-CN/next/client-libraries-cpp/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>客户端 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>客户端 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/client-libraries-go.html b/content/docs/zh-CN/next/client-libraries-go.html
index 0cba4e3..6eed31b 100644
--- a/content/docs/zh-CN/next/client-libraries-go.html
+++ b/content/docs/zh-CN/next/client-libraries-go.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>客户端 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>客户端 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/client-libraries-go/index.html b/content/docs/zh-CN/next/client-libraries-go/index.html
index 0cba4e3..6eed31b 100644
--- a/content/docs/zh-CN/next/client-libraries-go/index.html
+++ b/content/docs/zh-CN/next/client-libraries-go/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>客户端 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>客户端 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/client-libraries-java.html b/content/docs/zh-CN/next/client-libraries-java.html
index 1dc9abb..f2c1c10 100644
--- a/content/docs/zh-CN/next/client-libraries-java.html
+++ b/content/docs/zh-CN/next/client-libraries-java.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>客户端 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>客户端 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/client-libraries-java/index.html b/content/docs/zh-CN/next/client-libraries-java/index.html
index 1dc9abb..f2c1c10 100644
--- a/content/docs/zh-CN/next/client-libraries-java/index.html
+++ b/content/docs/zh-CN/next/client-libraries-java/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>客户端 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>客户端 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/client-libraries-python.html b/content/docs/zh-CN/next/client-libraries-python.html
index 4f2c4cf..f466a63 100644
--- a/content/docs/zh-CN/next/client-libraries-python.html
+++ b/content/docs/zh-CN/next/client-libraries-python.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>客户端 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>客户端 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/client-libraries-python/index.html b/content/docs/zh-CN/next/client-libraries-python/index.html
index 4f2c4cf..f466a63 100644
--- a/content/docs/zh-CN/next/client-libraries-python/index.html
+++ b/content/docs/zh-CN/next/client-libraries-python/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>客户端 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>客户端 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/client-libraries-websocket.html b/content/docs/zh-CN/next/client-libraries-websocket.html
index 4fa6a04..a610cd3 100644
--- a/content/docs/zh-CN/next/client-libraries-websocket.html
+++ b/content/docs/zh-CN/next/client-libraries-websocket.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>客户端 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>客户端 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/client-libraries-websocket/index.html b/content/docs/zh-CN/next/client-libraries-websocket/index.html
index 4fa6a04..a610cd3 100644
--- a/content/docs/zh-CN/next/client-libraries-websocket/index.html
+++ b/content/docs/zh-CN/next/client-libraries-websocket/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>客户端 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>客户端 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/client-libraries.html b/content/docs/zh-CN/next/client-libraries.html
index b88192c..5c0fd75 100644
--- a/content/docs/zh-CN/next/client-libraries.html
+++ b/content/docs/zh-CN/next/client-libraries.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Get [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Get [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/client-libraries/index.html b/content/docs/zh-CN/next/client-libraries/index.html
index b88192c..5c0fd75 100644
--- a/content/docs/zh-CN/next/client-libraries/index.html
+++ b/content/docs/zh-CN/next/client-libraries/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Get [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Get [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/concepts-architecture-overview.html b/content/docs/zh-CN/next/concepts-architecture-overview.html
index ce2e423..75e3032 100644
--- a/content/docs/zh-CN/next/concepts-architecture-overview.html
+++ b/content/docs/zh-CN/next/concepts-architecture-overview.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/concepts-architecture-overview/index.html b/content/docs/zh-CN/next/concepts-architecture-overview/index.html
index ce2e423..75e3032 100644
--- a/content/docs/zh-CN/next/concepts-architecture-overview/index.html
+++ b/content/docs/zh-CN/next/concepts-architecture-overview/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/concepts-authentication.html b/content/docs/zh-CN/next/concepts-authentication.html
index 0522153..fa9a428 100644
--- a/content/docs/zh-CN/next/concepts-authentication.html
+++ b/content/docs/zh-CN/next/concepts-authentication.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/concepts-authentication/index.html b/content/docs/zh-CN/next/concepts-authentication/index.html
index 0522153..fa9a428 100644
--- a/content/docs/zh-CN/next/concepts-authentication/index.html
+++ b/content/docs/zh-CN/next/concepts-authentication/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/concepts-clients.html b/content/docs/zh-CN/next/concepts-clients.html
index bb659b1..7fa20b7 100644
--- a/content/docs/zh-CN/next/concepts-clients.html
+++ b/content/docs/zh-CN/next/concepts-clients.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/concepts-clients/index.html b/content/docs/zh-CN/next/concepts-clients/index.html
index bb659b1..7fa20b7 100644
--- a/content/docs/zh-CN/next/concepts-clients/index.html
+++ b/content/docs/zh-CN/next/concepts-clients/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/concepts-messaging.html b/content/docs/zh-CN/next/concepts-messaging.html
index 85b1e37..a2f2ec5 100644
--- a/content/docs/zh-CN/next/concepts-messaging.html
+++ b/content/docs/zh-CN/next/concepts-messaging.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -274,9 +274,9 @@ Consumer someTopicsConsumer = pulsarClient.subscribe(someTopicsInNamespace, "sub
  is an enum that represent sets of standard hashing functions available when choosing the partition to use for a particular message.</p>
 <p>There are 2 types of standard hashing functions available: <code>JavaStringHash</code> and <code>Murmur3_32Hash</code>. The default hashing function for producer is <code>JavaStringHash</code>. Please pay attention that <code>JavaStringHash</code> is not useful when producers can be from different multiple language clients, under this use case, it is recommended to use <code>Murmur3_32Hash</code>.</p>
 <h2><a class="anchor" aria-hidden="true" id="非持久topic"></a><a href="#非持久topic" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>默认的,Pulsar保存<em>所有</em>没有确认的消息到多个<a href="concepts-architecture-overview.md#persistent-storage">BookKeeper</a>的bookies中(存储节点)。持久topic的消息数据可以在broker重启或者订阅者出问题的情况下存活下来。 Data for messages on persistent topics can thus survive broker restarts and subscriber failover.</p>
-<p>Pulsar also, however, supports <strong>non-persistent topics</strong>, which are topics on which messages are <em>never</em> persisted to disk and live only in memory. Pulsar也提供了非持久topic。非持久topic的消息不会被保存在硬盘上,只存活于内存中。当使用非持久topic分发时,杀掉Pulsar的broker或者关闭订阅者,此topic( non-persistent))上所有的瞬时消息都会丢失,意味着客户端可能会遇到消息缺失。</p>
-<p>Non-persistent topics have names of this form (note the <code>non-persistent</code> in the name):</p>
+<p>默认的,Pulsar保存<em>所有</em>没有确认的消息到多个<a href="concepts-architecture-overview.md#persistent-storage">BookKeeper</a>的bookies中(存储节点)。持久topic的消息数据可以在broker重启或者订阅者出问题的情况下存活下来。 因此,持久性主题上的消息数据可以在 broker 重启和订阅者故障转移之后继续存在。</p>
+<p>但是,Pulsar还支持<strong>非持久性主题</strong>,这些主题的消息<em>从不</em>持久存储到磁盘,只存在于内存中。 Pulsar也提供了非持久topic。非持久topic的消息不会被保存在硬盘上,只存活于内存中。当使用非持久topic分发时,杀掉Pulsar的broker或者关闭订阅者,此topic( non-persistent))上所有的瞬时消息都会丢失,意味着客户端可能会遇到消息缺失。</p>
+<p>非持久性主题具有这种形式的名称(注意名称中的 <code>non-persistent</code>):</p>
 <pre><code class="hljs css language-http">non-persistent://tenant/namespace/topic
 </code></pre>
 <blockquote>
diff --git a/content/docs/zh-CN/next/concepts-messaging/index.html b/content/docs/zh-CN/next/concepts-messaging/index.html
index 85b1e37..a2f2ec5 100644
--- a/content/docs/zh-CN/next/concepts-messaging/index.html
+++ b/content/docs/zh-CN/next/concepts-messaging/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -274,9 +274,9 @@ Consumer someTopicsConsumer = pulsarClient.subscribe(someTopicsInNamespace, "sub
  is an enum that represent sets of standard hashing functions available when choosing the partition to use for a particular message.</p>
 <p>There are 2 types of standard hashing functions available: <code>JavaStringHash</code> and <code>Murmur3_32Hash</code>. The default hashing function for producer is <code>JavaStringHash</code>. Please pay attention that <code>JavaStringHash</code> is not useful when producers can be from different multiple language clients, under this use case, it is recommended to use <code>Murmur3_32Hash</code>.</p>
 <h2><a class="anchor" aria-hidden="true" id="非持久topic"></a><a href="#非持久topic" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64  [...]
-<p>默认的,Pulsar保存<em>所有</em>没有确认的消息到多个<a href="concepts-architecture-overview.md#persistent-storage">BookKeeper</a>的bookies中(存储节点)。持久topic的消息数据可以在broker重启或者订阅者出问题的情况下存活下来。 Data for messages on persistent topics can thus survive broker restarts and subscriber failover.</p>
-<p>Pulsar also, however, supports <strong>non-persistent topics</strong>, which are topics on which messages are <em>never</em> persisted to disk and live only in memory. Pulsar也提供了非持久topic。非持久topic的消息不会被保存在硬盘上,只存活于内存中。当使用非持久topic分发时,杀掉Pulsar的broker或者关闭订阅者,此topic( non-persistent))上所有的瞬时消息都会丢失,意味着客户端可能会遇到消息缺失。</p>
-<p>Non-persistent topics have names of this form (note the <code>non-persistent</code> in the name):</p>
+<p>默认的,Pulsar保存<em>所有</em>没有确认的消息到多个<a href="concepts-architecture-overview.md#persistent-storage">BookKeeper</a>的bookies中(存储节点)。持久topic的消息数据可以在broker重启或者订阅者出问题的情况下存活下来。 因此,持久性主题上的消息数据可以在 broker 重启和订阅者故障转移之后继续存在。</p>
+<p>但是,Pulsar还支持<strong>非持久性主题</strong>,这些主题的消息<em>从不</em>持久存储到磁盘,只存在于内存中。 Pulsar也提供了非持久topic。非持久topic的消息不会被保存在硬盘上,只存活于内存中。当使用非持久topic分发时,杀掉Pulsar的broker或者关闭订阅者,此topic( non-persistent))上所有的瞬时消息都会丢失,意味着客户端可能会遇到消息缺失。</p>
+<p>非持久性主题具有这种形式的名称(注意名称中的 <code>non-persistent</code>):</p>
 <pre><code class="hljs css language-http">non-persistent://tenant/namespace/topic
 </code></pre>
 <blockquote>
diff --git a/content/docs/zh-CN/next/concepts-multi-tenancy.html b/content/docs/zh-CN/next/concepts-multi-tenancy.html
index 0f682e3..8475db0 100644
--- a/content/docs/zh-CN/next/concepts-multi-tenancy.html
+++ b/content/docs/zh-CN/next/concepts-multi-tenancy.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/concepts-multi-tenancy/index.html b/content/docs/zh-CN/next/concepts-multi-tenancy/index.html
index 0f682e3..8475db0 100644
--- a/content/docs/zh-CN/next/concepts-multi-tenancy/index.html
+++ b/content/docs/zh-CN/next/concepts-multi-tenancy/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/concepts-overview.html b/content/docs/zh-CN/next/concepts-overview.html
index 201c91e..90ea480 100644
--- a/content/docs/zh-CN/next/concepts-overview.html
+++ b/content/docs/zh-CN/next/concepts-overview.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/concepts-overview/index.html b/content/docs/zh-CN/next/concepts-overview/index.html
index 201c91e..90ea480 100644
--- a/content/docs/zh-CN/next/concepts-overview/index.html
+++ b/content/docs/zh-CN/next/concepts-overview/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/concepts-replication.html b/content/docs/zh-CN/next/concepts-replication.html
index d91da38..1cac01c 100644
--- a/content/docs/zh-CN/next/concepts-replication.html
+++ b/content/docs/zh-CN/next/concepts-replication.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/concepts-replication/index.html b/content/docs/zh-CN/next/concepts-replication/index.html
index d91da38..1cac01c 100644
--- a/content/docs/zh-CN/next/concepts-replication/index.html
+++ b/content/docs/zh-CN/next/concepts-replication/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/concepts-schema-registry.html b/content/docs/zh-CN/next/concepts-schema-registry.html
index 93a2cd3..3d8d399 100644
--- a/content/docs/zh-CN/next/concepts-schema-registry.html
+++ b/content/docs/zh-CN/next/concepts-schema-registry.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/concepts-schema-registry/index.html b/content/docs/zh-CN/next/concepts-schema-registry/index.html
index 93a2cd3..3d8d399 100644
--- a/content/docs/zh-CN/next/concepts-schema-registry/index.html
+++ b/content/docs/zh-CN/next/concepts-schema-registry/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/concepts-tiered-storage.html b/content/docs/zh-CN/next/concepts-tiered-storage.html
index 254c18a..5631a4e 100644
--- a/content/docs/zh-CN/next/concepts-tiered-storage.html
+++ b/content/docs/zh-CN/next/concepts-tiered-storage.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/concepts-tiered-storage/index.html b/content/docs/zh-CN/next/concepts-tiered-storage/index.html
index 254c18a..5631a4e 100644
--- a/content/docs/zh-CN/next/concepts-tiered-storage/index.html
+++ b/content/docs/zh-CN/next/concepts-tiered-storage/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/concepts-topic-compaction.html b/content/docs/zh-CN/next/concepts-topic-compaction.html
index a038835..25c3440 100644
--- a/content/docs/zh-CN/next/concepts-topic-compaction.html
+++ b/content/docs/zh-CN/next/concepts-topic-compaction.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/concepts-topic-compaction/index.html b/content/docs/zh-CN/next/concepts-topic-compaction/index.html
index a038835..25c3440 100644
--- a/content/docs/zh-CN/next/concepts-topic-compaction/index.html
+++ b/content/docs/zh-CN/next/concepts-topic-compaction/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>概念和 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/cookbooks-bookkeepermetadata.html b/content/docs/zh-CN/next/cookbooks-bookkeepermetadata.html
index 24aee6d..c9b72f4 100644
--- a/content/docs/zh-CN/next/cookbooks-bookkeepermetadata.html
+++ b/content/docs/zh-CN/next/cookbooks-bookkeepermetadata.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考手 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考手 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/cookbooks-bookkeepermetadata/index.html b/content/docs/zh-CN/next/cookbooks-bookkeepermetadata/index.html
index 24aee6d..c9b72f4 100644
--- a/content/docs/zh-CN/next/cookbooks-bookkeepermetadata/index.html
+++ b/content/docs/zh-CN/next/cookbooks-bookkeepermetadata/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考手 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考手 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/cookbooks-compaction.html b/content/docs/zh-CN/next/cookbooks-compaction.html
index 5e6c864..6fd2e80 100644
--- a/content/docs/zh-CN/next/cookbooks-compaction.html
+++ b/content/docs/zh-CN/next/cookbooks-compaction.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考手 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考手 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/cookbooks-compaction/index.html b/content/docs/zh-CN/next/cookbooks-compaction/index.html
index 5e6c864..6fd2e80 100644
--- a/content/docs/zh-CN/next/cookbooks-compaction/index.html
+++ b/content/docs/zh-CN/next/cookbooks-compaction/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考手 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考手 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/cookbooks-deduplication.html b/content/docs/zh-CN/next/cookbooks-deduplication.html
index 0e78fa3..80921a2 100644
--- a/content/docs/zh-CN/next/cookbooks-deduplication.html
+++ b/content/docs/zh-CN/next/cookbooks-deduplication.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考手 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考手 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -159,7 +159,7 @@ Producer producer;
 
 Result result = client.createProducer(topic, producerConfig, producer);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/cookbooks-compaction"><span class="arrow-prev">← </span><span>Topic compaction</span></a><a class="docs-next button" href="/docs/zh-CN/next/cookbooks-non-persistent"><span>Non-persistent messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a href="#configuration-f [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/cookbooks-compaction"><span class="arrow-prev">← </span><span>Topic compaction</span></a><a class="docs-next button" href="/docs/zh-CN/next/cookbooks-non-persistent"><span>非持久化消息</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a href="#configuration-for-message-dedupli [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/next/cookbooks-deduplication/index.html b/content/docs/zh-CN/next/cookbooks-deduplication/index.html
index 0e78fa3..80921a2 100644
--- a/content/docs/zh-CN/next/cookbooks-deduplication/index.html
+++ b/content/docs/zh-CN/next/cookbooks-deduplication/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考手 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考手 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -159,7 +159,7 @@ Producer producer;
 
 Result result = client.createProducer(topic, producerConfig, producer);
 </code></pre>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/cookbooks-compaction"><span class="arrow-prev">← </span><span>Topic compaction</span></a><a class="docs-next button" href="/docs/zh-CN/next/cookbooks-non-persistent"><span>Non-persistent messaging</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a href="#configuration-f [...]
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/cookbooks-compaction"><span class="arrow-prev">← </span><span>Topic compaction</span></a><a class="docs-next button" href="/docs/zh-CN/next/cookbooks-non-persistent"><span>非持久化消息</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#how-it-works">How it works</a></li><li><a href="#configuration-for-message-dedupli [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/next/cookbooks-encryption.html b/content/docs/zh-CN/next/cookbooks-encryption.html
index cac1482..b09a6d3 100644
--- a/content/docs/zh-CN/next/cookbooks-encryption.html
+++ b/content/docs/zh-CN/next/cookbooks-encryption.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考手 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考手 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/cookbooks-encryption/index.html b/content/docs/zh-CN/next/cookbooks-encryption/index.html
index cac1482..b09a6d3 100644
--- a/content/docs/zh-CN/next/cookbooks-encryption/index.html
+++ b/content/docs/zh-CN/next/cookbooks-encryption/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考手 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考手 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/cookbooks-message-queue.html b/content/docs/zh-CN/next/cookbooks-message-queue.html
index 1b2f288..959e800 100644
--- a/content/docs/zh-CN/next/cookbooks-message-queue.html
+++ b/content/docs/zh-CN/next/cookbooks-message-queue.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考手 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考手 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/cookbooks-message-queue/index.html b/content/docs/zh-CN/next/cookbooks-message-queue/index.html
index 1b2f288..959e800 100644
--- a/content/docs/zh-CN/next/cookbooks-message-queue/index.html
+++ b/content/docs/zh-CN/next/cookbooks-message-queue/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考手 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考手 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/cookbooks-non-persistent.html b/content/docs/zh-CN/next/cookbooks-non-persistent.html
index eff0a7f..f9a6feb 100644
--- a/content/docs/zh-CN/next/cookbooks-non-persistent.html
+++ b/content/docs/zh-CN/next/cookbooks-non-persistent.html
@@ -1,5 +1,5 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Non-persistent messaging · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;&lt;strong&gt;Non-persistent topics&lt;/strong&gt; are Pulsar topics in which message data is &lt;em&gt;never&lt;/em&gt; &lt;a href=&quot;/docs/zh-CN/next/concepts-architecture-ove [...]
-"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Non-persistent messaging · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;&lt;strong&gt;Non-persistent topics&lt;/strong&gt; are Pulsar topics in which message data is &lt;em&gt;never&lt;/em&gt; &lt;a href=&quot;/docs/zh-CN [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>非持久化消息 · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;&lt;strong&gt;非持久性主题&lt;/strong&gt;也是 Pulsar 的一种主题,其中消息数据&lt;em&gt;永远不会&lt;/em&gt;&lt;a href=&quot;/docs/zh-CN/next/concepts-architecture-overview#persistent-storage&quot;&gt;持久存储&lt;/a&gt;,仅保存在内存中。 [...]
+"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="非持久化消息 · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;&lt;strong&gt;非持久性主题&lt;/strong&gt;也是 Pulsar 的一种主题,其中消息数据&lt;em&gt;永远不会&lt;/em&gt;&lt;a href=&quot;/docs/zh-CN/next/concepts-architecture-overview#persistent-storage&q [...]
 "/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://pulsar.incubator.apache.org/img/pulsar.svg"/><link rel="shortcut icon" href="/img/pulsar.ico"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><link rel="alternate" type="application/atom+xml" href="https://pulsar.incubator.apache.org/blog/atom.x [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考手 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考手 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -70,45 +70,45 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Non-persistent messaging</h1></header><article><div><span><p><strong>Non-persistent topics</strong> are Pulsar topics in which message data is <em>never</em> <a href="/docs/zh-CN/next/conce [...]
+        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">非持久化消息</h1></header><article><div><span><p><strong>非持久性主题</strong>也是 Pulsar 的一种主题,其中消息数据<em>永远不会</em><a href="/docs/zh-CN/next/concepts-architecture-overview#persistent-storage">持久存储</a>,仅保 [...]
 <ul>
-<li>A basic <a href="#overview">conceptual overview</a> of non-persistent topics</li>
-<li>Information about <a href="#configuration">configurable parameters</a> related to non-persistent topics</li>
-<li>A guide to the <a href="#cli">CLI interface</a> for managing non-persistent topics</li>
+<li>非持久性主题的基本<a href="#overview">概念概述</a></li>
+<li>非持久性主题相关的<a href="#configuration">可配置参数</a>信息</li>
+<li>用于管理非持久性主题<a href="#cli"> CLI(命令行工具)</a>指南</li>
 </ul>
 <h2><a class="anchor" aria-hidden="true" id="概述"></a><a href="#概述" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>By default, Pulsar persistently stores <em>all</em> unacknowledged messages on multiple <a href="#persistent-storage">BookKeeper</a> bookies (storage nodes). Data for messages on persistent topics can thus survive broker restarts and subscriber failover.</p>
-<p>Pulsar also, however, supports <strong>non-persistent topics</strong>, which are topics on which messages are <em>never</em> persisted to disk and live only in memory. When using non-persistent delivery, killing a Pulsar <a href="/docs/zh-CN/next/reference-terminology#broker">broker</a> or disconnecting a subscriber to a topic means that all in-transit messages are lost on that (non-persistent) topic, meaning that clients may see message loss.</p>
-<p>Non-persistent topics have names of this form (note the <code>non-persistent</code> in the name):</p>
+<p>默认情况下,Pulsar会在多个<a href="#persistent-storage"> BookKeeper </a> bookies(存储节点)上持续存储<em>所有</em>未确认的消息。 因此,持久性主题上的消息数据可以在 broker 重启和订阅者故障转移之后继续存在。</p>
+<p>但是,Pulsar还支持<strong>非持久性主题</strong>,这些主题的消息<em>从不</em>持久存储到磁盘,只存在于内存中。 使用非持久性主题传输时,当某个 Pulsar <a href="/docs/zh-CN/next/reference-terminology#broker">broker</a>宕机,或断开订阅者与某个主题(非持久性)的连接意味着所有正在传输的消息都会丢失,客户端也可能会看到消息的丢失。</p>
+<p>非持久性主题具有这种形式的名称(注意名称中的 <code>non-persistent</code>):</p>
 <pre><code class="hljs css language-http">non-persistent://tenant/namespace/topic
 </code></pre>
 <blockquote>
-<p>For more high-level information about non-persistent topics, see the <a href="/docs/zh-CN/next/concepts-messaging#non-persistent-topics">Concepts and Architecture</a> documentation.</p>
+<p>有关非持久性主题的更多高级信息,请参见 <a href="/docs/zh-CN/next/concepts-messaging#non-persistent-topics">Concepts and Architecture</a> 文档。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="using"></a><a href="#using" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
+<h2><a class="anchor" aria-hidden="true" id="使用"></a><a href="#使用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <blockquote>
-<p>In order to use non-persistent topics, they must be <a href="#enabling">enabled</a> in your Pulsar broker configuration.</p>
+<p>要使用非持久性主题,必须在 Pulsar broker 配置中<a href="#enabling">启用</a>。</p>
 </blockquote>
-<p>In order to use non-persistent topics, you only need to differentiate them by name when interacting with them. This <a href="/docs/zh-CN/next/reference-cli-tools#pulsar-client-produce"><code>pulsar-client produce</code></a> command, for example, would produce one message on a non-persistent topic in a standalone cluster:</p>
+<p>为了使用非持久性主题,你只需要在与它们交互时按名称区分它们。 例如,此<a href="/docs/zh-CN/next/reference-cli-tools#pulsar-client-produce"> <code>pulsar-client produce</code> </a>命令将在单集群的非持久性主题上生产一条消息:</p>
 <pre><code class="hljs css language-bash">$ bin/pulsar-client produce non-persistent://public/default/example-np-topic \
   --num-produce 1 \
   --messages <span class="hljs-string">"This message will be stored only in memory"</span>
 </code></pre>
 <blockquote>
-<p>For a more thorough guide to non-persistent topics from an administrative perspective, see the <a href="/docs/zh-CN/next/admin-api-non-persistent-topics">Non-persistent topics</a> guide.</p>
+<p>要从管理的角度获得关于非持久性主题的更详细的指南,请参阅<a href="/docs/zh-CN/next/admin-api-non-persistent-topics">非持久性主题</a>指南。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="enabling"></a><a href="#enabling" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 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>In order to enable non-persistent topics in a Pulsar broker, the <a href="/docs/zh-CN/next/reference-configuration#broker-enableNonPersistentTopics"><code>enableNonPersistentTopics</code></a> must be set to <code>true</code>. This is the default, and so you won't need to take any action to enable non-persistent messaging.</p>
+<h2><a class="anchor" aria-hidden="true" id="启用"></a><a href="#启用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>为了在 Pulsar broker 中启用非持久性主题,必须将 <a href="/docs/zh-CN/next/reference-configuration#broker-enableNonPersistentTopics"><code>enableNonPersistentTopics</code></a> 设置为<code>true</code>。 你无需采取任何操作来启用非持久性消息传递,因为这是默认设置。</p>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="configuration-for-standalone-mode"></a><a href="#configuration-for-standalone-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.5S1 [...]
-<p>If you're running Pulsar in standalone mode, the same configurable parameters are available but in the <a href="/docs/zh-CN/next/reference-configuration#standalone"><code>standalone.conf</code></a> configuration file.</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- [...]
+<p>如果你在独立模式下运行 Pulsar,则可以在<a href="/docs/zh-CN/next/reference-configuration#standalone"> <code>standalone.conf</code> </a>配置文件中使用相同的可配置参数。</p>
 </blockquote>
-<p>If you'd like to enable <em>only</em> non-persistent topics in a broker, you can set the <a href="/docs/zh-CN/next/reference-configuration#broker-enablePersistentTopics"><code>enablePersistentTopics</code></a> parameter to <code>false</code> and the <code>enableNonPersistentTopics</code> parameter to <code>true</code>.</p>
-<h2><a class="anchor" aria-hidden="true" id="managing-with-cli"></a><a href="#managing-with-cli" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
-<p>Non-persistent topics can be managed using the <a href="/docs/zh-CN/next/pulsar-admin#non-persistent"><code>pulsar-admin non-persistent</code></a> command-line interface. With that interface you can perform actions like <a href="/docs/zh-CN/next/pulsar-admin#non-persistent-create-partitioned-topic">create a partitioned non-persistent topic</a>, get <a href="/docs/zh-CN/next/pulsar-admin#non-persistent-stats">stats</a> for a non-persistent topic, <a href="/docs/zh-CN/next/pulsar-admin" [...]
-<h2><a class="anchor" aria-hidden="true" id="using-with-pulsar-clients"></a><a href="#using-with-pulsar-clients" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c [...]
-<p>You shouldn't need to make any changes to your Pulsar clients to use non-persistent messaging beyond making sure that you use proper <a href="#using">topic names</a> with <code>non-persistent</code> as the topic type.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/cookbooks-deduplication"><span class="arrow-prev">← </span><span>Message deduplication</span></a><a class="docs-next button" href="/docs/zh-CN/next/cookbooks-partitioned"><span>分区Topic</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#概述">概述</a></li><li><a href="#using">Using</a></li><li><a href="#enabling">En [...]
+<p>如果你<em>只</em>想在 Broker 中启用非持久性主题,则可以将<a href="/docs/zh-CN/next/reference-configuration#broker-enablePersistentTopics">enablePersistentTopics</code></a>参数设置为<code>false</code>,将 <code>enableNonPersistentTopics</code>参数设置为<code>true</code>。</p>
+<h2><a class="anchor" aria-hidden="true" id="使用cli-命令行工具-管理"></a><a href="#使用cli-命令行工具-管理" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
+<p>可以使用<a href="/docs/zh-CN/next/pulsar-admin#non-persistent"> <code>pulsar-admin non-persistent</code> </a>命令行管理非持久性主题。 使用命令行工具,你可以执行诸如<a href="/docs/zh-CN/next/pulsar-admin#non-persistent-create-partitioned-topic">创建分区非持久性主题</a>,获取非持久主题的<a href="/docs/zh-CN/next/pulsar-admin#non-persistent-stats">统计信息</a>,获取命名空间下的非持久主题<a href="/docs/zh-CN/next/pulsar-admin">列表</a>等操作。</p>
+<h2><a class="anchor" aria-hidden="true" id="与pulsar客户端一起使用"></a><a href="#与pulsar客户端一起使用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 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>除了确保使用具有<code>非持久性</code>的正确<a href="#using">主题名称</a>作为主题类型之外,你不应该对 Pulsar 客户端进行任何更改以使用非持久性消息传递。</p>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/cookbooks-deduplication"><span class="arrow-prev">← </span><span>Message deduplication</span></a><a class="docs-next button" href="/docs/zh-CN/next/cookbooks-partitioned"><span>分区Topic</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#概述">概述</a></li><li><a href="#使用">使用</a></li><li><a href="#启用">启用</a></li><li [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/next/cookbooks-non-persistent/index.html b/content/docs/zh-CN/next/cookbooks-non-persistent/index.html
index eff0a7f..f9a6feb 100644
--- a/content/docs/zh-CN/next/cookbooks-non-persistent/index.html
+++ b/content/docs/zh-CN/next/cookbooks-non-persistent/index.html
@@ -1,5 +1,5 @@
-<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>Non-persistent messaging · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;&lt;strong&gt;Non-persistent topics&lt;/strong&gt; are Pulsar topics in which message data is &lt;em&gt;never&lt;/em&gt; &lt;a href=&quot;/docs/zh-CN/next/concepts-architecture-ove [...]
-"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="Non-persistent messaging · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;&lt;strong&gt;Non-persistent topics&lt;/strong&gt; are Pulsar topics in which message data is &lt;em&gt;never&lt;/em&gt; &lt;a href=&quot;/docs/zh-CN [...]
+<!DOCTYPE html><html lang="zh-CN"><head><meta charSet="utf-8"/><meta http-equiv="X-UA-Compatible" content="IE=edge"/><title>非持久化消息 · Apache Pulsar</title><meta name="viewport" content="width=device-width"/><meta name="generator" content="Docusaurus"/><meta name="description" content="&lt;p&gt;&lt;strong&gt;非持久性主题&lt;/strong&gt;也是 Pulsar 的一种主题,其中消息数据&lt;em&gt;永远不会&lt;/em&gt;&lt;a href=&quot;/docs/zh-CN/next/concepts-architecture-overview#persistent-storage&quot;&gt;持久存储&lt;/a&gt;,仅保存在内存中。 [...]
+"/><meta name="docsearch:version" content="next"/><meta name="docsearch:language" content="zh-CN"/><meta property="og:title" content="非持久化消息 · Apache Pulsar"/><meta property="og:type" content="website"/><meta property="og:url" content="https://pulsar.incubator.apache.org/"/><meta property="og:description" content="&lt;p&gt;&lt;strong&gt;非持久性主题&lt;/strong&gt;也是 Pulsar 的一种主题,其中消息数据&lt;em&gt;永远不会&lt;/em&gt;&lt;a href=&quot;/docs/zh-CN/next/concepts-architecture-overview#persistent-storage&q [...]
 "/><meta name="twitter:card" content="summary"/><meta name="twitter:image" content="https://pulsar.incubator.apache.org/img/pulsar.svg"/><link rel="shortcut icon" href="/img/pulsar.ico"/><link rel="stylesheet" href="https://cdn.jsdelivr.net/docsearch.js/1/docsearch.min.css"/><link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.12.0/styles/atom-one-dark.min.css"/><link rel="alternate" type="application/atom+xml" href="https://pulsar.incubator.apache.org/blog/atom.x [...]
               (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
               (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考手 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考手 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -70,45 +70,45 @@
                 };
               }
             });
-        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">Non-persistent messaging</h1></header><article><div><span><p><strong>Non-persistent topics</strong> are Pulsar topics in which message data is <em>never</em> <a href="/docs/zh-CN/next/conce [...]
+        </script></nav></div><div class="container mainContainer"><div class="wrapper"><div class="post"><header class="postHeader"><a class="edit-page-link button" href="https://crowdin.com/project/apache-pulsar/zh-CN" target="_blank" rel="noreferrer noopener">Translate</a><h1 class="postHeaderTitle">非持久化消息</h1></header><article><div><span><p><strong>非持久性主题</strong>也是 Pulsar 的一种主题,其中消息数据<em>永远不会</em><a href="/docs/zh-CN/next/concepts-architecture-overview#persistent-storage">持久存储</a>,仅保 [...]
 <ul>
-<li>A basic <a href="#overview">conceptual overview</a> of non-persistent topics</li>
-<li>Information about <a href="#configuration">configurable parameters</a> related to non-persistent topics</li>
-<li>A guide to the <a href="#cli">CLI interface</a> for managing non-persistent topics</li>
+<li>非持久性主题的基本<a href="#overview">概念概述</a></li>
+<li>非持久性主题相关的<a href="#configuration">可配置参数</a>信息</li>
+<li>用于管理非持久性主题<a href="#cli"> CLI(命令行工具)</a>指南</li>
 </ul>
 <h2><a class="anchor" aria-hidden="true" id="概述"></a><a href="#概述" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
-<p>By default, Pulsar persistently stores <em>all</em> unacknowledged messages on multiple <a href="#persistent-storage">BookKeeper</a> bookies (storage nodes). Data for messages on persistent topics can thus survive broker restarts and subscriber failover.</p>
-<p>Pulsar also, however, supports <strong>non-persistent topics</strong>, which are topics on which messages are <em>never</em> persisted to disk and live only in memory. When using non-persistent delivery, killing a Pulsar <a href="/docs/zh-CN/next/reference-terminology#broker">broker</a> or disconnecting a subscriber to a topic means that all in-transit messages are lost on that (non-persistent) topic, meaning that clients may see message loss.</p>
-<p>Non-persistent topics have names of this form (note the <code>non-persistent</code> in the name):</p>
+<p>默认情况下,Pulsar会在多个<a href="#persistent-storage"> BookKeeper </a> bookies(存储节点)上持续存储<em>所有</em>未确认的消息。 因此,持久性主题上的消息数据可以在 broker 重启和订阅者故障转移之后继续存在。</p>
+<p>但是,Pulsar还支持<strong>非持久性主题</strong>,这些主题的消息<em>从不</em>持久存储到磁盘,只存在于内存中。 使用非持久性主题传输时,当某个 Pulsar <a href="/docs/zh-CN/next/reference-terminology#broker">broker</a>宕机,或断开订阅者与某个主题(非持久性)的连接意味着所有正在传输的消息都会丢失,客户端也可能会看到消息的丢失。</p>
+<p>非持久性主题具有这种形式的名称(注意名称中的 <code>non-persistent</code>):</p>
 <pre><code class="hljs css language-http">non-persistent://tenant/namespace/topic
 </code></pre>
 <blockquote>
-<p>For more high-level information about non-persistent topics, see the <a href="/docs/zh-CN/next/concepts-messaging#non-persistent-topics">Concepts and Architecture</a> documentation.</p>
+<p>有关非持久性主题的更多高级信息,请参见 <a href="/docs/zh-CN/next/concepts-messaging#non-persistent-topics">Concepts and Architecture</a> 文档。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="using"></a><a href="#using" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
+<h2><a class="anchor" aria-hidden="true" id="使用"></a><a href="#使用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
 <blockquote>
-<p>In order to use non-persistent topics, they must be <a href="#enabling">enabled</a> in your Pulsar broker configuration.</p>
+<p>要使用非持久性主题,必须在 Pulsar broker 配置中<a href="#enabling">启用</a>。</p>
 </blockquote>
-<p>In order to use non-persistent topics, you only need to differentiate them by name when interacting with them. This <a href="/docs/zh-CN/next/reference-cli-tools#pulsar-client-produce"><code>pulsar-client produce</code></a> command, for example, would produce one message on a non-persistent topic in a standalone cluster:</p>
+<p>为了使用非持久性主题,你只需要在与它们交互时按名称区分它们。 例如,此<a href="/docs/zh-CN/next/reference-cli-tools#pulsar-client-produce"> <code>pulsar-client produce</code> </a>命令将在单集群的非持久性主题上生产一条消息:</p>
 <pre><code class="hljs css language-bash">$ bin/pulsar-client produce non-persistent://public/default/example-np-topic \
   --num-produce 1 \
   --messages <span class="hljs-string">"This message will be stored only in memory"</span>
 </code></pre>
 <blockquote>
-<p>For a more thorough guide to non-persistent topics from an administrative perspective, see the <a href="/docs/zh-CN/next/admin-api-non-persistent-topics">Non-persistent topics</a> guide.</p>
+<p>要从管理的角度获得关于非持久性主题的更详细的指南,请参阅<a href="/docs/zh-CN/next/admin-api-non-persistent-topics">非持久性主题</a>指南。</p>
 </blockquote>
-<h2><a class="anchor" aria-hidden="true" id="enabling"></a><a href="#enabling" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 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>In order to enable non-persistent topics in a Pulsar broker, the <a href="/docs/zh-CN/next/reference-configuration#broker-enableNonPersistentTopics"><code>enableNonPersistentTopics</code></a> must be set to <code>true</code>. This is the default, and so you won't need to take any action to enable non-persistent messaging.</p>
+<h2><a class="anchor" aria-hidden="true" id="启用"></a><a href="#启用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c [...]
+<p>为了在 Pulsar broker 中启用非持久性主题,必须将 <a href="/docs/zh-CN/next/reference-configuration#broker-enableNonPersistentTopics"><code>enableNonPersistentTopics</code></a> 设置为<code>true</code>。 你无需采取任何操作来启用非持久性消息传递,因为这是默认设置。</p>
 <blockquote>
-<h4><a class="anchor" aria-hidden="true" id="configuration-for-standalone-mode"></a><a href="#configuration-for-standalone-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.5S1 [...]
-<p>If you're running Pulsar in standalone mode, the same configurable parameters are available but in the <a href="/docs/zh-CN/next/reference-configuration#standalone"><code>standalone.conf</code></a> configuration file.</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- [...]
+<p>如果你在独立模式下运行 Pulsar,则可以在<a href="/docs/zh-CN/next/reference-configuration#standalone"> <code>standalone.conf</code> </a>配置文件中使用相同的可配置参数。</p>
 </blockquote>
-<p>If you'd like to enable <em>only</em> non-persistent topics in a broker, you can set the <a href="/docs/zh-CN/next/reference-configuration#broker-enablePersistentTopics"><code>enablePersistentTopics</code></a> parameter to <code>false</code> and the <code>enableNonPersistentTopics</code> parameter to <code>true</code>.</p>
-<h2><a class="anchor" aria-hidden="true" id="managing-with-cli"></a><a href="#managing-with-cli" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2- [...]
-<p>Non-persistent topics can be managed using the <a href="/docs/zh-CN/next/pulsar-admin#non-persistent"><code>pulsar-admin non-persistent</code></a> command-line interface. With that interface you can perform actions like <a href="/docs/zh-CN/next/pulsar-admin#non-persistent-create-partitioned-topic">create a partitioned non-persistent topic</a>, get <a href="/docs/zh-CN/next/pulsar-admin#non-persistent-stats">stats</a> for a non-persistent topic, <a href="/docs/zh-CN/next/pulsar-admin" [...]
-<h2><a class="anchor" aria-hidden="true" id="using-with-pulsar-clients"></a><a href="#using-with-pulsar-clients" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c [...]
-<p>You shouldn't need to make any changes to your Pulsar clients to use non-persistent messaging beyond making sure that you use proper <a href="#using">topic names</a> with <code>non-persistent</code> as the topic type.</p>
-</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/cookbooks-deduplication"><span class="arrow-prev">← </span><span>Message deduplication</span></a><a class="docs-next button" href="/docs/zh-CN/next/cookbooks-partitioned"><span>分区Topic</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#概述">概述</a></li><li><a href="#using">Using</a></li><li><a href="#enabling">En [...]
+<p>如果你<em>只</em>想在 Broker 中启用非持久性主题,则可以将<a href="/docs/zh-CN/next/reference-configuration#broker-enablePersistentTopics">enablePersistentTopics</code></a>参数设置为<code>false</code>,将 <code>enableNonPersistentTopics</code>参数设置为<code>true</code>。</p>
+<h2><a class="anchor" aria-hidden="true" id="使用cli-命令行工具-管理"></a><a href="#使用cli-命令行工具-管理" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0- [...]
+<p>可以使用<a href="/docs/zh-CN/next/pulsar-admin#non-persistent"> <code>pulsar-admin non-persistent</code> </a>命令行管理非持久性主题。 使用命令行工具,你可以执行诸如<a href="/docs/zh-CN/next/pulsar-admin#non-persistent-create-partitioned-topic">创建分区非持久性主题</a>,获取非持久主题的<a href="/docs/zh-CN/next/pulsar-admin#non-persistent-stats">统计信息</a>,获取命名空间下的非持久主题<a href="/docs/zh-CN/next/pulsar-admin">列表</a>等操作。</p>
+<h2><a class="anchor" aria-hidden="true" id="与pulsar客户端一起使用"></a><a href="#与pulsar客户端一起使用" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 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>除了确保使用具有<code>非持久性</code>的正确<a href="#using">主题名称</a>作为主题类型之外,你不应该对 Pulsar 客户端进行任何更改以使用非持久性消息传递。</p>
+</span></div></article></div><div class="docs-prevnext"><a class="docs-prev button" href="/docs/zh-CN/next/cookbooks-deduplication"><span class="arrow-prev">← </span><span>Message deduplication</span></a><a class="docs-next button" href="/docs/zh-CN/next/cookbooks-partitioned"><span>分区Topic</span><span class="arrow-next"> →</span></a></div></div></div><nav class="onPageNav"><ul class="toc-headings"><li><a href="#概述">概述</a></li><li><a href="#使用">使用</a></li><li><a href="#启用">启用</a></li><li [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/next/cookbooks-partitioned.html b/content/docs/zh-CN/next/cookbooks-partitioned.html
index ac106d4..035b3c7 100644
--- a/content/docs/zh-CN/next/cookbooks-partitioned.html
+++ b/content/docs/zh-CN/next/cookbooks-partitioned.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考手 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考手 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -121,7 +121,7 @@ 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- [...]
 <p>您可以使用Pulsar的<a href="/docs/zh-CN/next/admin-api-overview"> admin API </a>来创建和管理<a href="/docs/zh-CN/next/admin-api-partitioned-topics">分区主题</a>。</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>Non-persistent messaging</span></a><a class="docs-next button" href="/docs/zh-CN/next/cookbooks-retention-expiry"><span>Message retention and expiry</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">< [...]
+</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-retention-expiry"><span>Message retention and expiry</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="#java" [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/next/cookbooks-partitioned/index.html b/content/docs/zh-CN/next/cookbooks-partitioned/index.html
index ac106d4..035b3c7 100644
--- a/content/docs/zh-CN/next/cookbooks-partitioned/index.html
+++ b/content/docs/zh-CN/next/cookbooks-partitioned/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考手 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考手 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -121,7 +121,7 @@ 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- [...]
 <p>您可以使用Pulsar的<a href="/docs/zh-CN/next/admin-api-overview"> admin API </a>来创建和管理<a href="/docs/zh-CN/next/admin-api-partitioned-topics">分区主题</a>。</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>Non-persistent messaging</span></a><a class="docs-next button" href="/docs/zh-CN/next/cookbooks-retention-expiry"><span>Message retention and expiry</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">< [...]
+</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-retention-expiry"><span>Message retention and expiry</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="#java" [...]
       const community = document.querySelector("a[href='#community']").parentNode;
       const communityMenu =
         '<li>' +
diff --git a/content/docs/zh-CN/next/cookbooks-retention-expiry.html b/content/docs/zh-CN/next/cookbooks-retention-expiry.html
index 4564158..50f53e9 100644
--- a/content/docs/zh-CN/next/cookbooks-retention-expiry.html
+++ b/content/docs/zh-CN/next/cookbooks-retention-expiry.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考手 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考手 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
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 4564158..50f53e9 100644
--- a/content/docs/zh-CN/next/cookbooks-retention-expiry/index.html
+++ b/content/docs/zh-CN/next/cookbooks-retention-expiry/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考手 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考手 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/cookbooks-tiered-storage.html b/content/docs/zh-CN/next/cookbooks-tiered-storage.html
index 4dcf319..e83fe98 100644
--- a/content/docs/zh-CN/next/cookbooks-tiered-storage.html
+++ b/content/docs/zh-CN/next/cookbooks-tiered-storage.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考手 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考手 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/cookbooks-tiered-storage/index.html b/content/docs/zh-CN/next/cookbooks-tiered-storage/index.html
index 4dcf319..e83fe98 100644
--- a/content/docs/zh-CN/next/cookbooks-tiered-storage/index.html
+++ b/content/docs/zh-CN/next/cookbooks-tiered-storage/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考手 [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考手 [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/deploy-aws.html b/content/docs/zh-CN/next/deploy-aws.html
index bb2b1c5..26ddd95 100644
--- a/content/docs/zh-CN/next/deploy-aws.html
+++ b/content/docs/zh-CN/next/deploy-aws.html
@@ -24,7 +24,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>部署< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>部署< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/deploy-aws/index.html b/content/docs/zh-CN/next/deploy-aws/index.html
index bb2b1c5..26ddd95 100644
--- a/content/docs/zh-CN/next/deploy-aws/index.html
+++ b/content/docs/zh-CN/next/deploy-aws/index.html
@@ -24,7 +24,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>部署< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>部署< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/deploy-bare-metal-multi-cluster.html b/content/docs/zh-CN/next/deploy-bare-metal-multi-cluster.html
index 71bfedc..477994e 100644
--- a/content/docs/zh-CN/next/deploy-bare-metal-multi-cluster.html
+++ b/content/docs/zh-CN/next/deploy-bare-metal-multi-cluster.html
@@ -24,7 +24,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>部署< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>部署< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/deploy-bare-metal-multi-cluster/index.html b/content/docs/zh-CN/next/deploy-bare-metal-multi-cluster/index.html
index 71bfedc..477994e 100644
--- a/content/docs/zh-CN/next/deploy-bare-metal-multi-cluster/index.html
+++ b/content/docs/zh-CN/next/deploy-bare-metal-multi-cluster/index.html
@@ -24,7 +24,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>部署< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>部署< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/deploy-bare-metal.html b/content/docs/zh-CN/next/deploy-bare-metal.html
index 7a5c519..ce0e80a0 100644
--- a/content/docs/zh-CN/next/deploy-bare-metal.html
+++ b/content/docs/zh-CN/next/deploy-bare-metal.html
@@ -24,7 +24,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>部署< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>部署< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/deploy-bare-metal/index.html b/content/docs/zh-CN/next/deploy-bare-metal/index.html
index 7a5c519..ce0e80a0 100644
--- a/content/docs/zh-CN/next/deploy-bare-metal/index.html
+++ b/content/docs/zh-CN/next/deploy-bare-metal/index.html
@@ -24,7 +24,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>部署< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>部署< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/deploy-dcos.html b/content/docs/zh-CN/next/deploy-dcos.html
index c41b8a2..76dbc95 100644
--- a/content/docs/zh-CN/next/deploy-dcos.html
+++ b/content/docs/zh-CN/next/deploy-dcos.html
@@ -24,7 +24,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>部署< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>部署< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/deploy-dcos/index.html b/content/docs/zh-CN/next/deploy-dcos/index.html
index c41b8a2..76dbc95 100644
--- a/content/docs/zh-CN/next/deploy-dcos/index.html
+++ b/content/docs/zh-CN/next/deploy-dcos/index.html
@@ -24,7 +24,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>部署< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>部署< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/deploy-kubernetes.html b/content/docs/zh-CN/next/deploy-kubernetes.html
index c666127..3d642c6 100644
--- a/content/docs/zh-CN/next/deploy-kubernetes.html
+++ b/content/docs/zh-CN/next/deploy-kubernetes.html
@@ -24,7 +24,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>部署< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>部署< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/deploy-kubernetes/index.html b/content/docs/zh-CN/next/deploy-kubernetes/index.html
index c666127..3d642c6 100644
--- a/content/docs/zh-CN/next/deploy-kubernetes/index.html
+++ b/content/docs/zh-CN/next/deploy-kubernetes/index.html
@@ -24,7 +24,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>部署< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>部署< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/deploy-monitoring.html b/content/docs/zh-CN/next/deploy-monitoring.html
index 381cd42..e459999 100644
--- a/content/docs/zh-CN/next/deploy-monitoring.html
+++ b/content/docs/zh-CN/next/deploy-monitoring.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>部署< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>部署< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/deploy-monitoring/index.html b/content/docs/zh-CN/next/deploy-monitoring/index.html
index 381cd42..e459999 100644
--- a/content/docs/zh-CN/next/deploy-monitoring/index.html
+++ b/content/docs/zh-CN/next/deploy-monitoring/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>部署< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>部署< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/develop-binary-protocol.html b/content/docs/zh-CN/next/develop-binary-protocol.html
index 683e6be..4c53e7a 100644
--- a/content/docs/zh-CN/next/develop-binary-protocol.html
+++ b/content/docs/zh-CN/next/develop-binary-protocol.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>开发< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>开发< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/develop-binary-protocol/index.html b/content/docs/zh-CN/next/develop-binary-protocol/index.html
index 683e6be..4c53e7a 100644
--- a/content/docs/zh-CN/next/develop-binary-protocol/index.html
+++ b/content/docs/zh-CN/next/develop-binary-protocol/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>开发< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>开发< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/develop-cpp.html b/content/docs/zh-CN/next/develop-cpp.html
index 026ccc2..fd9cd54 100644
--- a/content/docs/zh-CN/next/develop-cpp.html
+++ b/content/docs/zh-CN/next/develop-cpp.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>开发< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>开发< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/develop-cpp/index.html b/content/docs/zh-CN/next/develop-cpp/index.html
index 026ccc2..fd9cd54 100644
--- a/content/docs/zh-CN/next/develop-cpp/index.html
+++ b/content/docs/zh-CN/next/develop-cpp/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>开发< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>开发< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/develop-load-manager.html b/content/docs/zh-CN/next/develop-load-manager.html
index b8c0ec2..a04de19 100644
--- a/content/docs/zh-CN/next/develop-load-manager.html
+++ b/content/docs/zh-CN/next/develop-load-manager.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>开发< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>开发< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/develop-load-manager/index.html b/content/docs/zh-CN/next/develop-load-manager/index.html
index b8c0ec2..a04de19 100644
--- a/content/docs/zh-CN/next/develop-load-manager/index.html
+++ b/content/docs/zh-CN/next/develop-load-manager/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>开发< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>开发< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/develop-schema.html b/content/docs/zh-CN/next/develop-schema.html
index 4e437d8..72ec61e 100644
--- a/content/docs/zh-CN/next/develop-schema.html
+++ b/content/docs/zh-CN/next/develop-schema.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>开发< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>开发< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/develop-schema/index.html b/content/docs/zh-CN/next/develop-schema/index.html
index 4e437d8..72ec61e 100644
--- a/content/docs/zh-CN/next/develop-schema/index.html
+++ b/content/docs/zh-CN/next/develop-schema/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>开发< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>开发< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/develop-tools.html b/content/docs/zh-CN/next/develop-tools.html
index 99a7658..32560d8 100644
--- a/content/docs/zh-CN/next/develop-tools.html
+++ b/content/docs/zh-CN/next/develop-tools.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>开发< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>开发< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/develop-tools/index.html b/content/docs/zh-CN/next/develop-tools/index.html
index 99a7658..32560d8 100644
--- a/content/docs/zh-CN/next/develop-tools/index.html
+++ b/content/docs/zh-CN/next/develop-tools/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>开发< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>开发< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/functions-api.html b/content/docs/zh-CN/next/functions-api.html
index ca50854..9a1a4b4 100644
--- a/content/docs/zh-CN/next/functions-api.html
+++ b/content/docs/zh-CN/next/functions-api.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/functions-api/index.html b/content/docs/zh-CN/next/functions-api/index.html
index ca50854..9a1a4b4 100644
--- a/content/docs/zh-CN/next/functions-api/index.html
+++ b/content/docs/zh-CN/next/functions-api/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/functions-deploying.html b/content/docs/zh-CN/next/functions-deploying.html
index 488bb21..c9fc68a 100644
--- a/content/docs/zh-CN/next/functions-deploying.html
+++ b/content/docs/zh-CN/next/functions-deploying.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/functions-deploying/index.html b/content/docs/zh-CN/next/functions-deploying/index.html
index 488bb21..c9fc68a 100644
--- a/content/docs/zh-CN/next/functions-deploying/index.html
+++ b/content/docs/zh-CN/next/functions-deploying/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/functions-guarantees.html b/content/docs/zh-CN/next/functions-guarantees.html
index fb7e1aa..7934953 100644
--- a/content/docs/zh-CN/next/functions-guarantees.html
+++ b/content/docs/zh-CN/next/functions-guarantees.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/functions-guarantees/index.html b/content/docs/zh-CN/next/functions-guarantees/index.html
index fb7e1aa..7934953 100644
--- a/content/docs/zh-CN/next/functions-guarantees/index.html
+++ b/content/docs/zh-CN/next/functions-guarantees/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/functions-metrics.html b/content/docs/zh-CN/next/functions-metrics.html
index 293ad25..7e12317 100644
--- a/content/docs/zh-CN/next/functions-metrics.html
+++ b/content/docs/zh-CN/next/functions-metrics.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/functions-metrics/index.html b/content/docs/zh-CN/next/functions-metrics/index.html
index 293ad25..7e12317 100644
--- a/content/docs/zh-CN/next/functions-metrics/index.html
+++ b/content/docs/zh-CN/next/functions-metrics/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/functions-overview.html b/content/docs/zh-CN/next/functions-overview.html
index 20fe68f..4b017db 100644
--- a/content/docs/zh-CN/next/functions-overview.html
+++ b/content/docs/zh-CN/next/functions-overview.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/functions-overview/index.html b/content/docs/zh-CN/next/functions-overview/index.html
index 20fe68f..4b017db 100644
--- a/content/docs/zh-CN/next/functions-overview/index.html
+++ b/content/docs/zh-CN/next/functions-overview/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/functions-quickstart.html b/content/docs/zh-CN/next/functions-quickstart.html
index 1d1cb60..2b4761e 100644
--- a/content/docs/zh-CN/next/functions-quickstart.html
+++ b/content/docs/zh-CN/next/functions-quickstart.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/functions-quickstart/index.html b/content/docs/zh-CN/next/functions-quickstart/index.html
index 1d1cb60..2b4761e 100644
--- a/content/docs/zh-CN/next/functions-quickstart/index.html
+++ b/content/docs/zh-CN/next/functions-quickstart/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/functions-state.html b/content/docs/zh-CN/next/functions-state.html
index 863cea4..6ea7a97 100644
--- a/content/docs/zh-CN/next/functions-state.html
+++ b/content/docs/zh-CN/next/functions-state.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/functions-state/index.html b/content/docs/zh-CN/next/functions-state/index.html
index 863cea4..6ea7a97 100644
--- a/content/docs/zh-CN/next/functions-state/index.html
+++ b/content/docs/zh-CN/next/functions-state/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/io-cdc.html b/content/docs/zh-CN/next/io-cdc.html
index b444c45..b2a20e4 100644
--- a/content/docs/zh-CN/next/io-cdc.html
+++ b/content/docs/zh-CN/next/io-cdc.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/io-cdc/index.html b/content/docs/zh-CN/next/io-cdc/index.html
index b444c45..b2a20e4 100644
--- a/content/docs/zh-CN/next/io-cdc/index.html
+++ b/content/docs/zh-CN/next/io-cdc/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/io-connectors.html b/content/docs/zh-CN/next/io-connectors.html
index 6a6ff60..84f0e86 100644
--- a/content/docs/zh-CN/next/io-connectors.html
+++ b/content/docs/zh-CN/next/io-connectors.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/io-connectors/index.html b/content/docs/zh-CN/next/io-connectors/index.html
index 6a6ff60..84f0e86 100644
--- a/content/docs/zh-CN/next/io-connectors/index.html
+++ b/content/docs/zh-CN/next/io-connectors/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/io-develop.html b/content/docs/zh-CN/next/io-develop.html
index 60bc650..5dd1b35 100644
--- a/content/docs/zh-CN/next/io-develop.html
+++ b/content/docs/zh-CN/next/io-develop.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/io-develop/index.html b/content/docs/zh-CN/next/io-develop/index.html
index 60bc650..5dd1b35 100644
--- a/content/docs/zh-CN/next/io-develop/index.html
+++ b/content/docs/zh-CN/next/io-develop/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/io-managing.html b/content/docs/zh-CN/next/io-managing.html
index 93ba6d0..423eadd 100644
--- a/content/docs/zh-CN/next/io-managing.html
+++ b/content/docs/zh-CN/next/io-managing.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/io-managing/index.html b/content/docs/zh-CN/next/io-managing/index.html
index 93ba6d0..423eadd 100644
--- a/content/docs/zh-CN/next/io-managing/index.html
+++ b/content/docs/zh-CN/next/io-managing/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/io-overview.html b/content/docs/zh-CN/next/io-overview.html
index 0fc33e6..dddfb02 100644
--- a/content/docs/zh-CN/next/io-overview.html
+++ b/content/docs/zh-CN/next/io-overview.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/io-overview/index.html b/content/docs/zh-CN/next/io-overview/index.html
index 0fc33e6..dddfb02 100644
--- a/content/docs/zh-CN/next/io-overview/index.html
+++ b/content/docs/zh-CN/next/io-overview/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/io-quickstart.html b/content/docs/zh-CN/next/io-quickstart.html
index 321a908..22ff415 100644
--- a/content/docs/zh-CN/next/io-quickstart.html
+++ b/content/docs/zh-CN/next/io-quickstart.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/io-quickstart/index.html b/content/docs/zh-CN/next/io-quickstart/index.html
index 321a908..22ff415 100644
--- a/content/docs/zh-CN/next/io-quickstart/index.html
+++ b/content/docs/zh-CN/next/io-quickstart/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/pulsar-2.0.html b/content/docs/zh-CN/next/pulsar-2.0.html
index c5f13b3..16ab295 100644
--- a/content/docs/zh-CN/next/pulsar-2.0.html
+++ b/content/docs/zh-CN/next/pulsar-2.0.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Get [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Get [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/pulsar-2.0/index.html b/content/docs/zh-CN/next/pulsar-2.0/index.html
index c5f13b3..16ab295 100644
--- a/content/docs/zh-CN/next/pulsar-2.0/index.html
+++ b/content/docs/zh-CN/next/pulsar-2.0/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Get [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Get [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/pulsar-admin.html b/content/docs/zh-CN/next/pulsar-admin.html
index 5c381b3..a72d16f 100644
--- a/content/docs/zh-CN/next/pulsar-admin.html
+++ b/content/docs/zh-CN/next/pulsar-admin.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/pulsar-admin/index.html b/content/docs/zh-CN/next/pulsar-admin/index.html
index 5c381b3..a72d16f 100644
--- a/content/docs/zh-CN/next/pulsar-admin/index.html
+++ b/content/docs/zh-CN/next/pulsar-admin/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/reference-cli-tools.html b/content/docs/zh-CN/next/reference-cli-tools.html
index 58711d5..9c8d5f8 100644
--- a/content/docs/zh-CN/next/reference-cli-tools.html
+++ b/content/docs/zh-CN/next/reference-cli-tools.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/reference-cli-tools/index.html b/content/docs/zh-CN/next/reference-cli-tools/index.html
index 58711d5..9c8d5f8 100644
--- a/content/docs/zh-CN/next/reference-cli-tools/index.html
+++ b/content/docs/zh-CN/next/reference-cli-tools/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/reference-configuration.html b/content/docs/zh-CN/next/reference-configuration.html
index e579c6d..a138c41 100644
--- a/content/docs/zh-CN/next/reference-configuration.html
+++ b/content/docs/zh-CN/next/reference-configuration.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -170,7 +170,7 @@
 <tr><td>enableNonPersistentTopics</td><td>Whether non-persistent topics are enabled on the broker</td><td>true</td></tr>
 <tr><td>functionsWorkerEnabled</td><td>Whether the Pulsar Functions worker service is enabled in the broker</td><td>false</td></tr>
 <tr><td>zookeeperServers</td><td>Zookeeper quorum connection string</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
 <tr><td>brokerServicePort</td><td>Broker data port</td><td>6650</td></tr>
 <tr><td>brokerServicePortTls</td><td>Broker data port for TLS</td><td>6651</td></tr>
 <tr><td>webServicePort</td><td>Port to use to server HTTP request</td><td>8080</td></tr>
@@ -198,8 +198,8 @@
 <tr><td>statusFilePath</td><td>Path for the file used to determine the rotation status for the broker when responding to service discovery health checks</td><td></td></tr>
 <tr><td>preferLaterVersions</td><td>If true, (and ModularLoadManagerImpl is being used), the load manager will attempt to use only brokers running the latest software version (to minimize impact to bundles)</td><td>false</td></tr>
 <tr><td>tlsEnabled</td><td>Enable TLS</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
 <tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate file</td><td></td></tr>
 <tr><td>tlsAllowInsecureConnection</td><td>Accept untrusted TLS certificate from client</td><td>false</td></tr>
 <tr><td>tlsProtocols</td><td>Specify the tls protocols the broker will use to negotiate during TLS Handshake. Multiple values can be specified, separated by commas. Example:- <code>TLSv1.2</code>, <code>TLSv1.1</code>, <code>TLSv1</code></td><td></td></tr>
@@ -310,7 +310,7 @@
 </thead>
 <tbody>
 <tr><td>zookeeperServers</td><td>Zookeeper quorum connection string (comma-separated)</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
 <tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper session timeout</td><td>30000</td></tr>
 <tr><td>servicePort</td><td>Port to use to server binary-proto request</td><td>6650</td></tr>
 <tr><td>servicePortTls</td><td>Port to use to server binary-proto-tls request</td><td>6651</td></tr>
@@ -322,8 +322,8 @@
 <tr><td>authorizationEnabled</td><td>Enforce authorization</td><td>false</td></tr>
 <tr><td>superUserRoles</td><td>Role names that are treated as “super-user”, meaning they will be able to do all admin operations and publish/consume from all topics (comma-separated)</td><td></td></tr>
 <tr><td>tlsEnabled</td><td>Enable TLS</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
 </tbody>
 </table>
 <h2><a class="anchor" aria-hidden="true" id="log4j"></a><a href="#log4j" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
@@ -376,7 +376,7 @@
 </thead>
 <tbody>
 <tr><td>zookeeperServers</td><td>The quorum connection string for local ZooKeeper</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
 <tr><td>brokerServicePort</td><td>The port on which the standalone broker listens for connections</td><td>6650</td></tr>
 <tr><td>webServicePort</td><td>THe port used by the standalone broker for HTTP requests</td><td>8080</td></tr>
 <tr><td>bindAddress</td><td>The hostname or IP address on which the standalone service binds</td><td>0.0.0.0</td></tr>
@@ -491,30 +491,30 @@
 <tr><th>Name</th><th>说明:</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td>zookeeperServers</td><td>The ZooKeeper quorum connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper session timeout (in milliseconds)</td><td>30000</td></tr>
-<tr><td>servicePort</td><td>The port to use for server binary Protobuf requests</td><td>6650</td></tr>
-<tr><td>servicePortTls</td><td>The port to use to server binary Protobuf TLS requests</td><td>6651</td></tr>
-<tr><td>statusFilePath</td><td>Path for the file used to determine the rotation status for the proxy instance when responding to service discovery health checks</td><td></td></tr>
-<tr><td>authenticationEnabled</td><td>Whether authentication is enabled for the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authenticationProviders</td><td>Authentication provider name list (a comma-separated list of class names)</td><td></td></tr>
-<tr><td>authorizationEnabled</td><td>Whether authorization is enforced by the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authorizationProvider</td><td>Authorization provider as a fully qualified class name</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
-<tr><td>brokerClientAuthenticationPlugin</td><td>The authentication plugin used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientAuthenticationParameters</td><td>The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientTrustCertsFilePath</td><td>The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>superUserRoles</td><td>Role names that are treated as “super-users,” meaning that they will be able to perform all admin</td><td></td></tr>
-<tr><td>forwardAuthorizationCredentials</td><td>Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.</td><td>false</td></tr>
-<tr><td>maxConcurrentInboundConnections</td><td>Max concurrent inbound connections. The proxy will reject requests beyond that.</td><td>10000</td></tr>
-<tr><td>maxConcurrentLookupRequests</td><td>Max concurrent outbound connections. The proxy will error out requests beyond that.</td><td>50000</td></tr>
-<tr><td>tlsEnabledInProxy</td><td>Whether TLS is enabled for the proxy</td><td>false</td></tr>
-<tr><td>tlsEnabledWithBroker</td><td>Whether TLS is enabled when communicating with Pulsar brokers</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
-<tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate pem file</td><td></td></tr>
-<tr><td>tlsHostnameVerificationEnabled</td><td>Whether the hostname is validated when the proxy creates a TLS connection with brokers</td><td>false</td></tr>
-<tr><td>tlsRequireTrustedClientCertOnConnect</td><td>Whether client certificates are required for TLS. Connections are rejected if the client certificate isn’t trusted.</td><td>false</td></tr>
+<tr><td>zookeeperServers</td><td>ZooKeeper仲裁连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper会话超时(以毫秒为单位)</td><td>30000</td></tr>
+<tr><td>servicePort</td><td>用于服务器二进制Protobuf请求的端口</td><td>6650</td></tr>
+<tr><td>servicePortTls</td><td>用于服务器二进制Protobuf TLS请求的端口</td><td>6651</td></tr>
+<tr><td>statusFilePath</td><td>在响应服务发现健康检查时,用于确定代理实例的轮换状态的文件的路径</td><td></td></tr>
+<tr><td>authenticationEnabled</td><td>是否为Pulsar代理启用身份验证</td><td>false</td></tr>
+<tr><td>authenticationProviders</td><td>身份验证提供者名称列表(以逗号分隔的类名列表)</td><td></td></tr>
+<tr><td>authorizationEnabled</td><td>是否由Pulsar代理强制执行授权</td><td>false</td></tr>
+<tr><td>authorizationProvider</td><td>授权提供程序的完全限定类名</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
+<tr><td>brokerClientAuthenticationPlugin</td><td>Pulsar代理使用的身份验证插件,用于对Pulsar brokers进行身份验证</td><td></td></tr>
+<tr><td>brokerClientAuthenticationParameters</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的参数</td><td></td></tr>
+<tr><td>brokerClientTrustCertsFilePath</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的可信证书的路径</td><td></td></tr>
+<tr><td>superUserRoles</td><td>“超级用户”的角色名,这意味着它们将能够执行所有管理</td><td></td></tr>
+<tr><td>forwardAuthorizationCredentials</td><td>客户端授权凭据是否转发给broker以进行重新授权。必须通过AuthenticationEnabled=true启用身份验证才能生效。</td><td>false</td></tr>
+<tr><td>maxConcurrentInboundConnections</td><td>最大进站并发连接数, 代理将拒绝超出此范围的请求。</td><td>10000</td></tr>
+<tr><td>maxConcurrentLookupRequests</td><td>最大出站并发连接数。代理将错误地输出超过此范围的请求。</td><td>50000</td></tr>
+<tr><td>tlsEnabledInProxy</td><td>是否为代理启用TLS</td><td>false</td></tr>
+<tr><td>tlsEnabledWithBroker</td><td>与Pulsar Brokers通信时是否启用TLS</td><td>false</td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
+<tr><td>tlsTrustCertsFilePath</td><td>受信任的TLS证书pem文件的路径</td><td></td></tr>
+<tr><td>tlsHostnameVerificationEnabled</td><td>当代理与brokers建立TLS连接时是否验证主机名</td><td>false</td></tr>
+<tr><td>tlsRequireTrustedClientCertOnConnect</td><td>TLS是否需要客户端证书。如果客户端证书不受信任,连接将被拒绝。</td><td>false</td></tr>
 <tr><td>tlsProtocols</td><td>Specify the tls protocols the broker will use to negotiate during TLS Handshake. Multiple values can be specified, separated by commas. Example:- <code>TLSv1.2</code>, <code>TLSv1.1</code>, <code>TLSv1</code></td><td></td></tr>
 <tr><td>tlsCiphers</td><td>Specify the tls cipher the broker will use to negotiate during TLS Handshake. Multiple values can be specified, separated by commas. Example:- <code>TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256</code></td><td></td></tr>
 <tr><td>tokenSecretKey</td><td>Configure the secret key to be used to validate auth tokens. The key can be specified like: <code>tokenSecretKey=data:base64,xxxxxxxxx</code> or <code>tokenSecretKey=file:///my/secret.key</code></td><td></td></tr>
diff --git a/content/docs/zh-CN/next/reference-configuration/index.html b/content/docs/zh-CN/next/reference-configuration/index.html
index e579c6d..a138c41 100644
--- a/content/docs/zh-CN/next/reference-configuration/index.html
+++ b/content/docs/zh-CN/next/reference-configuration/index.html
@@ -18,7 +18,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
@@ -170,7 +170,7 @@
 <tr><td>enableNonPersistentTopics</td><td>Whether non-persistent topics are enabled on the broker</td><td>true</td></tr>
 <tr><td>functionsWorkerEnabled</td><td>Whether the Pulsar Functions worker service is enabled in the broker</td><td>false</td></tr>
 <tr><td>zookeeperServers</td><td>Zookeeper quorum connection string</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
 <tr><td>brokerServicePort</td><td>Broker data port</td><td>6650</td></tr>
 <tr><td>brokerServicePortTls</td><td>Broker data port for TLS</td><td>6651</td></tr>
 <tr><td>webServicePort</td><td>Port to use to server HTTP request</td><td>8080</td></tr>
@@ -198,8 +198,8 @@
 <tr><td>statusFilePath</td><td>Path for the file used to determine the rotation status for the broker when responding to service discovery health checks</td><td></td></tr>
 <tr><td>preferLaterVersions</td><td>If true, (and ModularLoadManagerImpl is being used), the load manager will attempt to use only brokers running the latest software version (to minimize impact to bundles)</td><td>false</td></tr>
 <tr><td>tlsEnabled</td><td>Enable TLS</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
 <tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate file</td><td></td></tr>
 <tr><td>tlsAllowInsecureConnection</td><td>Accept untrusted TLS certificate from client</td><td>false</td></tr>
 <tr><td>tlsProtocols</td><td>Specify the tls protocols the broker will use to negotiate during TLS Handshake. Multiple values can be specified, separated by commas. Example:- <code>TLSv1.2</code>, <code>TLSv1.1</code>, <code>TLSv1</code></td><td></td></tr>
@@ -310,7 +310,7 @@
 </thead>
 <tbody>
 <tr><td>zookeeperServers</td><td>Zookeeper quorum connection string (comma-separated)</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
 <tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper session timeout</td><td>30000</td></tr>
 <tr><td>servicePort</td><td>Port to use to server binary-proto request</td><td>6650</td></tr>
 <tr><td>servicePortTls</td><td>Port to use to server binary-proto-tls request</td><td>6651</td></tr>
@@ -322,8 +322,8 @@
 <tr><td>authorizationEnabled</td><td>Enforce authorization</td><td>false</td></tr>
 <tr><td>superUserRoles</td><td>Role names that are treated as “super-user”, meaning they will be able to do all admin operations and publish/consume from all topics (comma-separated)</td><td></td></tr>
 <tr><td>tlsEnabled</td><td>Enable TLS</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
 </tbody>
 </table>
 <h2><a class="anchor" aria-hidden="true" id="log4j"></a><a href="#log4j" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
@@ -376,7 +376,7 @@
 </thead>
 <tbody>
 <tr><td>zookeeperServers</td><td>The quorum connection string for local ZooKeeper</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
 <tr><td>brokerServicePort</td><td>The port on which the standalone broker listens for connections</td><td>6650</td></tr>
 <tr><td>webServicePort</td><td>THe port used by the standalone broker for HTTP requests</td><td>8080</td></tr>
 <tr><td>bindAddress</td><td>The hostname or IP address on which the standalone service binds</td><td>0.0.0.0</td></tr>
@@ -491,30 +491,30 @@
 <tr><th>Name</th><th>说明:</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td>zookeeperServers</td><td>The ZooKeeper quorum connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper session timeout (in milliseconds)</td><td>30000</td></tr>
-<tr><td>servicePort</td><td>The port to use for server binary Protobuf requests</td><td>6650</td></tr>
-<tr><td>servicePortTls</td><td>The port to use to server binary Protobuf TLS requests</td><td>6651</td></tr>
-<tr><td>statusFilePath</td><td>Path for the file used to determine the rotation status for the proxy instance when responding to service discovery health checks</td><td></td></tr>
-<tr><td>authenticationEnabled</td><td>Whether authentication is enabled for the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authenticationProviders</td><td>Authentication provider name list (a comma-separated list of class names)</td><td></td></tr>
-<tr><td>authorizationEnabled</td><td>Whether authorization is enforced by the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authorizationProvider</td><td>Authorization provider as a fully qualified class name</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
-<tr><td>brokerClientAuthenticationPlugin</td><td>The authentication plugin used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientAuthenticationParameters</td><td>The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientTrustCertsFilePath</td><td>The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>superUserRoles</td><td>Role names that are treated as “super-users,” meaning that they will be able to perform all admin</td><td></td></tr>
-<tr><td>forwardAuthorizationCredentials</td><td>Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.</td><td>false</td></tr>
-<tr><td>maxConcurrentInboundConnections</td><td>Max concurrent inbound connections. The proxy will reject requests beyond that.</td><td>10000</td></tr>
-<tr><td>maxConcurrentLookupRequests</td><td>Max concurrent outbound connections. The proxy will error out requests beyond that.</td><td>50000</td></tr>
-<tr><td>tlsEnabledInProxy</td><td>Whether TLS is enabled for the proxy</td><td>false</td></tr>
-<tr><td>tlsEnabledWithBroker</td><td>Whether TLS is enabled when communicating with Pulsar brokers</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
-<tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate pem file</td><td></td></tr>
-<tr><td>tlsHostnameVerificationEnabled</td><td>Whether the hostname is validated when the proxy creates a TLS connection with brokers</td><td>false</td></tr>
-<tr><td>tlsRequireTrustedClientCertOnConnect</td><td>Whether client certificates are required for TLS. Connections are rejected if the client certificate isn’t trusted.</td><td>false</td></tr>
+<tr><td>zookeeperServers</td><td>ZooKeeper仲裁连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper会话超时(以毫秒为单位)</td><td>30000</td></tr>
+<tr><td>servicePort</td><td>用于服务器二进制Protobuf请求的端口</td><td>6650</td></tr>
+<tr><td>servicePortTls</td><td>用于服务器二进制Protobuf TLS请求的端口</td><td>6651</td></tr>
+<tr><td>statusFilePath</td><td>在响应服务发现健康检查时,用于确定代理实例的轮换状态的文件的路径</td><td></td></tr>
+<tr><td>authenticationEnabled</td><td>是否为Pulsar代理启用身份验证</td><td>false</td></tr>
+<tr><td>authenticationProviders</td><td>身份验证提供者名称列表(以逗号分隔的类名列表)</td><td></td></tr>
+<tr><td>authorizationEnabled</td><td>是否由Pulsar代理强制执行授权</td><td>false</td></tr>
+<tr><td>authorizationProvider</td><td>授权提供程序的完全限定类名</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
+<tr><td>brokerClientAuthenticationPlugin</td><td>Pulsar代理使用的身份验证插件,用于对Pulsar brokers进行身份验证</td><td></td></tr>
+<tr><td>brokerClientAuthenticationParameters</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的参数</td><td></td></tr>
+<tr><td>brokerClientTrustCertsFilePath</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的可信证书的路径</td><td></td></tr>
+<tr><td>superUserRoles</td><td>“超级用户”的角色名,这意味着它们将能够执行所有管理</td><td></td></tr>
+<tr><td>forwardAuthorizationCredentials</td><td>客户端授权凭据是否转发给broker以进行重新授权。必须通过AuthenticationEnabled=true启用身份验证才能生效。</td><td>false</td></tr>
+<tr><td>maxConcurrentInboundConnections</td><td>最大进站并发连接数, 代理将拒绝超出此范围的请求。</td><td>10000</td></tr>
+<tr><td>maxConcurrentLookupRequests</td><td>最大出站并发连接数。代理将错误地输出超过此范围的请求。</td><td>50000</td></tr>
+<tr><td>tlsEnabledInProxy</td><td>是否为代理启用TLS</td><td>false</td></tr>
+<tr><td>tlsEnabledWithBroker</td><td>与Pulsar Brokers通信时是否启用TLS</td><td>false</td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
+<tr><td>tlsTrustCertsFilePath</td><td>受信任的TLS证书pem文件的路径</td><td></td></tr>
+<tr><td>tlsHostnameVerificationEnabled</td><td>当代理与brokers建立TLS连接时是否验证主机名</td><td>false</td></tr>
+<tr><td>tlsRequireTrustedClientCertOnConnect</td><td>TLS是否需要客户端证书。如果客户端证书不受信任,连接将被拒绝。</td><td>false</td></tr>
 <tr><td>tlsProtocols</td><td>Specify the tls protocols the broker will use to negotiate during TLS Handshake. Multiple values can be specified, separated by commas. Example:- <code>TLSv1.2</code>, <code>TLSv1.1</code>, <code>TLSv1</code></td><td></td></tr>
 <tr><td>tlsCiphers</td><td>Specify the tls cipher the broker will use to negotiate during TLS Handshake. Multiple values can be specified, separated by commas. Example:- <code>TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256</code></td><td></td></tr>
 <tr><td>tokenSecretKey</td><td>Configure the secret key to be used to validate auth tokens. The key can be specified like: <code>tokenSecretKey=data:base64,xxxxxxxxx</code> or <code>tokenSecretKey=file:///my/secret.key</code></td><td></td></tr>
diff --git a/content/docs/zh-CN/next/reference-terminology.html b/content/docs/zh-CN/next/reference-terminology.html
index aff631f..3b88b59 100644
--- a/content/docs/zh-CN/next/reference-terminology.html
+++ b/content/docs/zh-CN/next/reference-terminology.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/reference-terminology/index.html b/content/docs/zh-CN/next/reference-terminology/index.html
index aff631f..3b88b59 100644
--- a/content/docs/zh-CN/next/reference-terminology/index.html
+++ b/content/docs/zh-CN/next/reference-terminology/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>参考< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/security-athenz.html b/content/docs/zh-CN/next/security-athenz.html
index aa320e5..1f12ab3 100644
--- a/content/docs/zh-CN/next/security-athenz.html
+++ b/content/docs/zh-CN/next/security-athenz.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>安全< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>安全< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/security-athenz/index.html b/content/docs/zh-CN/next/security-athenz/index.html
index aa320e5..1f12ab3 100644
--- a/content/docs/zh-CN/next/security-athenz/index.html
+++ b/content/docs/zh-CN/next/security-athenz/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>安全< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>安全< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/security-authorization.html b/content/docs/zh-CN/next/security-authorization.html
index 69ee723..eb1d798 100644
--- a/content/docs/zh-CN/next/security-authorization.html
+++ b/content/docs/zh-CN/next/security-authorization.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>安全< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>安全< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/security-authorization/index.html b/content/docs/zh-CN/next/security-authorization/index.html
index 69ee723..eb1d798 100644
--- a/content/docs/zh-CN/next/security-authorization/index.html
+++ b/content/docs/zh-CN/next/security-authorization/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>安全< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>安全< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/security-encryption.html b/content/docs/zh-CN/next/security-encryption.html
index cc1cfea..d5bbd57 100644
--- a/content/docs/zh-CN/next/security-encryption.html
+++ b/content/docs/zh-CN/next/security-encryption.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>安全< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>安全< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/security-encryption/index.html b/content/docs/zh-CN/next/security-encryption/index.html
index cc1cfea..d5bbd57 100644
--- a/content/docs/zh-CN/next/security-encryption/index.html
+++ b/content/docs/zh-CN/next/security-encryption/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>安全< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>安全< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/security-extending.html b/content/docs/zh-CN/next/security-extending.html
index 0edc055..f515ed2 100644
--- a/content/docs/zh-CN/next/security-extending.html
+++ b/content/docs/zh-CN/next/security-extending.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>安全< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>安全< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/security-extending/index.html b/content/docs/zh-CN/next/security-extending/index.html
index 0edc055..f515ed2 100644
--- a/content/docs/zh-CN/next/security-extending/index.html
+++ b/content/docs/zh-CN/next/security-extending/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>安全< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>安全< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/security-overview.html b/content/docs/zh-CN/next/security-overview.html
index b083976..e11c5e1 100644
--- a/content/docs/zh-CN/next/security-overview.html
+++ b/content/docs/zh-CN/next/security-overview.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>安全< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>安全< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/security-overview/index.html b/content/docs/zh-CN/next/security-overview/index.html
index b083976..e11c5e1 100644
--- a/content/docs/zh-CN/next/security-overview/index.html
+++ b/content/docs/zh-CN/next/security-overview/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>安全< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>安全< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/security-tls-authentication.html b/content/docs/zh-CN/next/security-tls-authentication.html
index e00f994..7697002 100644
--- a/content/docs/zh-CN/next/security-tls-authentication.html
+++ b/content/docs/zh-CN/next/security-tls-authentication.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>安全< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>安全< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/security-tls-authentication/index.html b/content/docs/zh-CN/next/security-tls-authentication/index.html
index e00f994..7697002 100644
--- a/content/docs/zh-CN/next/security-tls-authentication/index.html
+++ b/content/docs/zh-CN/next/security-tls-authentication/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>安全< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>安全< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/security-tls-transport.html b/content/docs/zh-CN/next/security-tls-transport.html
index 61b2678..9de11a1 100644
--- a/content/docs/zh-CN/next/security-tls-transport.html
+++ b/content/docs/zh-CN/next/security-tls-transport.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>安全< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>安全< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/security-tls-transport/index.html b/content/docs/zh-CN/next/security-tls-transport/index.html
index 61b2678..9de11a1 100644
--- a/content/docs/zh-CN/next/security-tls-transport/index.html
+++ b/content/docs/zh-CN/next/security-tls-transport/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>安全< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>安全< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/security-token-admin.html b/content/docs/zh-CN/next/security-token-admin.html
index 09161f1..96dd0e5 100644
--- a/content/docs/zh-CN/next/security-token-admin.html
+++ b/content/docs/zh-CN/next/security-token-admin.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>安全< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>安全< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/security-token-admin/index.html b/content/docs/zh-CN/next/security-token-admin/index.html
index 09161f1..96dd0e5 100644
--- a/content/docs/zh-CN/next/security-token-admin/index.html
+++ b/content/docs/zh-CN/next/security-token-admin/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>安全< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>安全< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/security-token-client.html b/content/docs/zh-CN/next/security-token-client.html
index 153f540..2c0d545 100644
--- a/content/docs/zh-CN/next/security-token-client.html
+++ b/content/docs/zh-CN/next/security-token-client.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>安全< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>安全< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/security-token-client/index.html b/content/docs/zh-CN/next/security-token-client/index.html
index 153f540..2c0d545 100644
--- a/content/docs/zh-CN/next/security-token-client/index.html
+++ b/content/docs/zh-CN/next/security-token-client/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>安全< [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>安全< [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/sql-deployment-configurations.html b/content/docs/zh-CN/next/sql-deployment-configurations.html
index 6653488..b1b516c 100644
--- a/content/docs/zh-CN/next/sql-deployment-configurations.html
+++ b/content/docs/zh-CN/next/sql-deployment-configurations.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/sql-deployment-configurations/index.html b/content/docs/zh-CN/next/sql-deployment-configurations/index.html
index 6653488..b1b516c 100644
--- a/content/docs/zh-CN/next/sql-deployment-configurations/index.html
+++ b/content/docs/zh-CN/next/sql-deployment-configurations/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/sql-getting-started.html b/content/docs/zh-CN/next/sql-getting-started.html
index 2624aa5..9077073 100644
--- a/content/docs/zh-CN/next/sql-getting-started.html
+++ b/content/docs/zh-CN/next/sql-getting-started.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/sql-getting-started/index.html b/content/docs/zh-CN/next/sql-getting-started/index.html
index 2624aa5..9077073 100644
--- a/content/docs/zh-CN/next/sql-getting-started/index.html
+++ b/content/docs/zh-CN/next/sql-getting-started/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/sql-overview.html b/content/docs/zh-CN/next/sql-overview.html
index 6165a41..24b7f41 100644
--- a/content/docs/zh-CN/next/sql-overview.html
+++ b/content/docs/zh-CN/next/sql-overview.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/sql-overview/index.html b/content/docs/zh-CN/next/sql-overview/index.html
index 6165a41..24b7f41 100644
--- a/content/docs/zh-CN/next/sql-overview/index.html
+++ b/content/docs/zh-CN/next/sql-overview/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Pul [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/standalone-docker.html b/content/docs/zh-CN/next/standalone-docker.html
index ad98f27..dd4e7aa 100644
--- a/content/docs/zh-CN/next/standalone-docker.html
+++ b/content/docs/zh-CN/next/standalone-docker.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Get [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Get [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/standalone-docker/index.html b/content/docs/zh-CN/next/standalone-docker/index.html
index ad98f27..dd4e7aa 100644
--- a/content/docs/zh-CN/next/standalone-docker/index.html
+++ b/content/docs/zh-CN/next/standalone-docker/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Get [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Get [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/standalone.html b/content/docs/zh-CN/next/standalone.html
index 107c229..717a423 100644
--- a/content/docs/zh-CN/next/standalone.html
+++ b/content/docs/zh-CN/next/standalone.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Get [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Get [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/next/standalone/index.html b/content/docs/zh-CN/next/standalone/index.html
index 107c229..717a423 100644
--- a/content/docs/zh-CN/next/standalone/index.html
+++ b/content/docs/zh-CN/next/standalone/index.html
@@ -20,7 +20,7 @@
             languagesDropDown.className = "hide";
           }
         });
-      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Get [...]
+      </script></span><li class="navSearchWrapper reactNavSearchWrapper"><input type="text" id="search_input_react" placeholder="Search" title="Search"/></li></ul></nav></div></header></div></div><div class="navPusher"><div class="docMainWrapper wrapper"><div class="container docsNavContainer" id="docsNav"><nav class="toc"><div class="toggleNav"><section class="navWrapper wrapper"><div class="navBreadcrumb wrapper"><div class="navToggle" id="navToggler"><i></i></div><h2><i>›</i><span>Get [...]
             var coll = document.getElementsByClassName('collapsible');
             var checkActiveCategory = true;
             for (var i = 0; i < coll.length; i++) {
diff --git a/content/docs/zh-CN/reference-configuration.html b/content/docs/zh-CN/reference-configuration.html
index 69db265..33101e8 100644
--- a/content/docs/zh-CN/reference-configuration.html
+++ b/content/docs/zh-CN/reference-configuration.html
@@ -170,7 +170,7 @@
 <tr><td>enableNonPersistentTopics</td><td>Whether non-persistent topics are enabled on the broker</td><td>true</td></tr>
 <tr><td>functionsWorkerEnabled</td><td>Whether the Pulsar Functions worker service is enabled in the broker</td><td>false</td></tr>
 <tr><td>zookeeperServers</td><td>Zookeeper quorum connection string</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
 <tr><td>brokerServicePort</td><td>Broker data port</td><td>6650</td></tr>
 <tr><td>brokerServicePortTls</td><td>Broker data port for TLS</td><td>6651</td></tr>
 <tr><td>webServicePort</td><td>Port to use to server HTTP request</td><td>8080</td></tr>
@@ -198,8 +198,8 @@
 <tr><td>statusFilePath</td><td>Path for the file used to determine the rotation status for the broker when responding to service discovery health checks</td><td></td></tr>
 <tr><td>preferLaterVersions</td><td>If true, (and ModularLoadManagerImpl is being used), the load manager will attempt to use only brokers running the latest software version (to minimize impact to bundles)</td><td>false</td></tr>
 <tr><td>tlsEnabled</td><td>Enable TLS</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
 <tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate file</td><td></td></tr>
 <tr><td>tlsAllowInsecureConnection</td><td>Accept untrusted TLS certificate from client</td><td>false</td></tr>
 <tr><td>tlsProtocols</td><td>Specify the tls protocols the broker will use to negotiate during TLS Handshake. Multiple values can be specified, separated by commas. Example:- <code>TLSv1.2</code>, <code>TLSv1.1</code>, <code>TLSv1</code></td><td></td></tr>
@@ -309,7 +309,7 @@
 </thead>
 <tbody>
 <tr><td>zookeeperServers</td><td>Zookeeper quorum connection string (comma-separated)</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
 <tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper session timeout</td><td>30000</td></tr>
 <tr><td>servicePort</td><td>Port to use to server binary-proto request</td><td>6650</td></tr>
 <tr><td>servicePortTls</td><td>Port to use to server binary-proto-tls request</td><td>6651</td></tr>
@@ -321,8 +321,8 @@
 <tr><td>authorizationEnabled</td><td>Enforce authorization</td><td>false</td></tr>
 <tr><td>superUserRoles</td><td>Role names that are treated as “super-user”, meaning they will be able to do all admin operations and publish/consume from all topics (comma-separated)</td><td></td></tr>
 <tr><td>tlsEnabled</td><td>Enable TLS</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
 </tbody>
 </table>
 <h2><a class="anchor" aria-hidden="true" id="log4j"></a><a href="#log4j" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
@@ -375,7 +375,7 @@
 </thead>
 <tbody>
 <tr><td>zookeeperServers</td><td>The quorum connection string for local ZooKeeper</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
 <tr><td>brokerServicePort</td><td>The port on which the standalone broker listens for connections</td><td>6650</td></tr>
 <tr><td>webServicePort</td><td>THe port used by the standalone broker for HTTP requests</td><td>8080</td></tr>
 <tr><td>bindAddress</td><td>The hostname or IP address on which the standalone service binds</td><td>0.0.0.0</td></tr>
@@ -490,29 +490,29 @@
 <tr><th>Name</th><th>说明:</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td>zookeeperServers</td><td>The ZooKeeper quorum connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper session timeout (in milliseconds)</td><td>30000</td></tr>
-<tr><td>servicePort</td><td>The port to use for server binary Protobuf requests</td><td>6650</td></tr>
-<tr><td>servicePortTls</td><td>The port to use to server binary Protobuf TLS requests</td><td>6651</td></tr>
-<tr><td>statusFilePath</td><td>Path for the file used to determine the rotation status for the proxy instance when responding to service discovery health checks</td><td></td></tr>
-<tr><td>authenticationEnabled</td><td>Whether authentication is enabled for the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authenticationProviders</td><td>Authentication provider name list (a comma-separated list of class names)</td><td></td></tr>
-<tr><td>authorizationEnabled</td><td>Whether authorization is enforced by the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authorizationProvider</td><td>Authorization provider as a fully qualified class name</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
-<tr><td>brokerClientAuthenticationPlugin</td><td>The authentication plugin used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientAuthenticationParameters</td><td>The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientTrustCertsFilePath</td><td>The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>superUserRoles</td><td>Role names that are treated as “super-users,” meaning that they will be able to perform all admin</td><td></td></tr>
+<tr><td>zookeeperServers</td><td>ZooKeeper仲裁连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper会话超时(以毫秒为单位)</td><td>30000</td></tr>
+<tr><td>servicePort</td><td>用于服务器二进制Protobuf请求的端口</td><td>6650</td></tr>
+<tr><td>servicePortTls</td><td>用于服务器二进制Protobuf TLS请求的端口</td><td>6651</td></tr>
+<tr><td>statusFilePath</td><td>在响应服务发现健康检查时,用于确定代理实例的轮换状态的文件的路径</td><td></td></tr>
+<tr><td>authenticationEnabled</td><td>是否为Pulsar代理启用身份验证</td><td>false</td></tr>
+<tr><td>authenticationProviders</td><td>身份验证提供者名称列表(以逗号分隔的类名列表)</td><td></td></tr>
+<tr><td>authorizationEnabled</td><td>是否由Pulsar代理强制执行授权</td><td>false</td></tr>
+<tr><td>authorizationProvider</td><td>授权提供程序的完全限定类名</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
+<tr><td>brokerClientAuthenticationPlugin</td><td>Pulsar代理使用的身份验证插件,用于对Pulsar brokers进行身份验证</td><td></td></tr>
+<tr><td>brokerClientAuthenticationParameters</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的参数</td><td></td></tr>
+<tr><td>brokerClientTrustCertsFilePath</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的可信证书的路径</td><td></td></tr>
+<tr><td>superUserRoles</td><td>“超级用户”的角色名,这意味着它们将能够执行所有管理</td><td></td></tr>
 <tr><td>forwardAuthorizationCredentials</td><td>Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.</td><td>false</td></tr>
 <tr><td>maxConcurrentInboundConnections</td><td>Max concurrent inbound connections. The proxy will reject requests beyond that.</td><td>10000</td></tr>
 <tr><td>maxConcurrentLookupRequests</td><td>Max concurrent outbound connections. The proxy will error out requests beyond that.</td><td>50000</td></tr>
-<tr><td>tlsEnabledInProxy</td><td>Whether TLS is enabled for the proxy</td><td>false</td></tr>
-<tr><td>tlsEnabledWithBroker</td><td>Whether TLS is enabled when communicating with Pulsar brokers</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
-<tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate pem file</td><td></td></tr>
-<tr><td>tlsHostnameVerificationEnabled</td><td>Whether the hostname is validated when the proxy creates a TLS connection with brokers</td><td>false</td></tr>
+<tr><td>tlsEnabledInProxy</td><td>是否为代理启用TLS</td><td>false</td></tr>
+<tr><td>tlsEnabledWithBroker</td><td>与Pulsar Brokers通信时是否启用TLS</td><td>false</td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
+<tr><td>tlsTrustCertsFilePath</td><td>受信任的TLS证书pem文件的路径</td><td></td></tr>
+<tr><td>tlsHostnameVerificationEnabled</td><td>当代理与brokers建立TLS连接时是否验证主机名</td><td>false</td></tr>
 <tr><td>tlsRequireTrustedClientCertOnConnect</td><td>Whether client certificates are required for TLS. Connections are rejected if the client certificate isn’t trusted.</td><td>false</td></tr>
 <tr><td>tlsProtocols</td><td>Specify the tls protocols the broker will use to negotiate during TLS Handshake. Multiple values can be specified, separated by commas. Example:- <code>TLSv1.2</code>, <code>TLSv1.1</code>, <code>TLSv1</code></td><td></td></tr>
 <tr><td>tlsCiphers</td><td>Specify the tls cipher the broker will use to negotiate during TLS Handshake. Multiple values can be specified, separated by commas. Example:- <code>TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256</code></td><td></td></tr>
diff --git a/content/docs/zh-CN/reference-configuration/index.html b/content/docs/zh-CN/reference-configuration/index.html
index 69db265..33101e8 100644
--- a/content/docs/zh-CN/reference-configuration/index.html
+++ b/content/docs/zh-CN/reference-configuration/index.html
@@ -170,7 +170,7 @@
 <tr><td>enableNonPersistentTopics</td><td>Whether non-persistent topics are enabled on the broker</td><td>true</td></tr>
 <tr><td>functionsWorkerEnabled</td><td>Whether the Pulsar Functions worker service is enabled in the broker</td><td>false</td></tr>
 <tr><td>zookeeperServers</td><td>Zookeeper quorum connection string</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
 <tr><td>brokerServicePort</td><td>Broker data port</td><td>6650</td></tr>
 <tr><td>brokerServicePortTls</td><td>Broker data port for TLS</td><td>6651</td></tr>
 <tr><td>webServicePort</td><td>Port to use to server HTTP request</td><td>8080</td></tr>
@@ -198,8 +198,8 @@
 <tr><td>statusFilePath</td><td>Path for the file used to determine the rotation status for the broker when responding to service discovery health checks</td><td></td></tr>
 <tr><td>preferLaterVersions</td><td>If true, (and ModularLoadManagerImpl is being used), the load manager will attempt to use only brokers running the latest software version (to minimize impact to bundles)</td><td>false</td></tr>
 <tr><td>tlsEnabled</td><td>Enable TLS</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
 <tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate file</td><td></td></tr>
 <tr><td>tlsAllowInsecureConnection</td><td>Accept untrusted TLS certificate from client</td><td>false</td></tr>
 <tr><td>tlsProtocols</td><td>Specify the tls protocols the broker will use to negotiate during TLS Handshake. Multiple values can be specified, separated by commas. Example:- <code>TLSv1.2</code>, <code>TLSv1.1</code>, <code>TLSv1</code></td><td></td></tr>
@@ -309,7 +309,7 @@
 </thead>
 <tbody>
 <tr><td>zookeeperServers</td><td>Zookeeper quorum connection string (comma-separated)</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
 <tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper session timeout</td><td>30000</td></tr>
 <tr><td>servicePort</td><td>Port to use to server binary-proto request</td><td>6650</td></tr>
 <tr><td>servicePortTls</td><td>Port to use to server binary-proto-tls request</td><td>6651</td></tr>
@@ -321,8 +321,8 @@
 <tr><td>authorizationEnabled</td><td>Enforce authorization</td><td>false</td></tr>
 <tr><td>superUserRoles</td><td>Role names that are treated as “super-user”, meaning they will be able to do all admin operations and publish/consume from all topics (comma-separated)</td><td></td></tr>
 <tr><td>tlsEnabled</td><td>Enable TLS</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
 </tbody>
 </table>
 <h2><a class="anchor" aria-hidden="true" id="log4j"></a><a href="#log4j" aria-hidden="true" class="hash-link"><svg class="hash-link-icon" aria-hidden="true" height="16" version="1.1" viewBox="0 0 16 16" width="16"><path fill-rule="evenodd" d="M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09 [...]
@@ -375,7 +375,7 @@
 </thead>
 <tbody>
 <tr><td>zookeeperServers</td><td>The quorum connection string for local ZooKeeper</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
 <tr><td>brokerServicePort</td><td>The port on which the standalone broker listens for connections</td><td>6650</td></tr>
 <tr><td>webServicePort</td><td>THe port used by the standalone broker for HTTP requests</td><td>8080</td></tr>
 <tr><td>bindAddress</td><td>The hostname or IP address on which the standalone service binds</td><td>0.0.0.0</td></tr>
@@ -490,29 +490,29 @@
 <tr><th>Name</th><th>说明:</th><th>默认值</th></tr>
 </thead>
 <tbody>
-<tr><td>zookeeperServers</td><td>The ZooKeeper quorum connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>configurationStoreServers</td><td>Configuration store connection string (as a comma-separated list)</td><td></td></tr>
-<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper session timeout (in milliseconds)</td><td>30000</td></tr>
-<tr><td>servicePort</td><td>The port to use for server binary Protobuf requests</td><td>6650</td></tr>
-<tr><td>servicePortTls</td><td>The port to use to server binary Protobuf TLS requests</td><td>6651</td></tr>
-<tr><td>statusFilePath</td><td>Path for the file used to determine the rotation status for the proxy instance when responding to service discovery health checks</td><td></td></tr>
-<tr><td>authenticationEnabled</td><td>Whether authentication is enabled for the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authenticationProviders</td><td>Authentication provider name list (a comma-separated list of class names)</td><td></td></tr>
-<tr><td>authorizationEnabled</td><td>Whether authorization is enforced by the Pulsar proxy</td><td>false</td></tr>
-<tr><td>authorizationProvider</td><td>Authorization provider as a fully qualified class name</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
-<tr><td>brokerClientAuthenticationPlugin</td><td>The authentication plugin used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientAuthenticationParameters</td><td>The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>brokerClientTrustCertsFilePath</td><td>The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers</td><td></td></tr>
-<tr><td>superUserRoles</td><td>Role names that are treated as “super-users,” meaning that they will be able to perform all admin</td><td></td></tr>
+<tr><td>zookeeperServers</td><td>ZooKeeper仲裁连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>configurationStoreServers</td><td>配置存储连接字符串(以逗号分隔的列表)</td><td></td></tr>
+<tr><td>zookeeperSessionTimeoutMs</td><td>ZooKeeper会话超时(以毫秒为单位)</td><td>30000</td></tr>
+<tr><td>servicePort</td><td>用于服务器二进制Protobuf请求的端口</td><td>6650</td></tr>
+<tr><td>servicePortTls</td><td>用于服务器二进制Protobuf TLS请求的端口</td><td>6651</td></tr>
+<tr><td>statusFilePath</td><td>在响应服务发现健康检查时,用于确定代理实例的轮换状态的文件的路径</td><td></td></tr>
+<tr><td>authenticationEnabled</td><td>是否为Pulsar代理启用身份验证</td><td>false</td></tr>
+<tr><td>authenticationProviders</td><td>身份验证提供者名称列表(以逗号分隔的类名列表)</td><td></td></tr>
+<tr><td>authorizationEnabled</td><td>是否由Pulsar代理强制执行授权</td><td>false</td></tr>
+<tr><td>authorizationProvider</td><td>授权提供程序的完全限定类名</td><td>org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider</td></tr>
+<tr><td>brokerClientAuthenticationPlugin</td><td>Pulsar代理使用的身份验证插件,用于对Pulsar brokers进行身份验证</td><td></td></tr>
+<tr><td>brokerClientAuthenticationParameters</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的参数</td><td></td></tr>
+<tr><td>brokerClientTrustCertsFilePath</td><td>Pulsar代理用于对Pulsar Brokers进行身份验证的可信证书的路径</td><td></td></tr>
+<tr><td>superUserRoles</td><td>“超级用户”的角色名,这意味着它们将能够执行所有管理</td><td></td></tr>
 <tr><td>forwardAuthorizationCredentials</td><td>Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect.</td><td>false</td></tr>
 <tr><td>maxConcurrentInboundConnections</td><td>Max concurrent inbound connections. The proxy will reject requests beyond that.</td><td>10000</td></tr>
 <tr><td>maxConcurrentLookupRequests</td><td>Max concurrent outbound connections. The proxy will error out requests beyond that.</td><td>50000</td></tr>
-<tr><td>tlsEnabledInProxy</td><td>Whether TLS is enabled for the proxy</td><td>false</td></tr>
-<tr><td>tlsEnabledWithBroker</td><td>Whether TLS is enabled when communicating with Pulsar brokers</td><td>false</td></tr>
-<tr><td>tlsCertificateFilePath</td><td>Path for the TLS certificate file</td><td></td></tr>
-<tr><td>tlsKeyFilePath</td><td>Path for the TLS private key file</td><td></td></tr>
-<tr><td>tlsTrustCertsFilePath</td><td>Path for the trusted TLS certificate pem file</td><td></td></tr>
-<tr><td>tlsHostnameVerificationEnabled</td><td>Whether the hostname is validated when the proxy creates a TLS connection with brokers</td><td>false</td></tr>
+<tr><td>tlsEnabledInProxy</td><td>是否为代理启用TLS</td><td>false</td></tr>
+<tr><td>tlsEnabledWithBroker</td><td>与Pulsar Brokers通信时是否启用TLS</td><td>false</td></tr>
+<tr><td>tlsCertificateFilePath</td><td>TLS证书文件的路径</td><td></td></tr>
+<tr><td>tlsKeyFilePath</td><td>TLS私钥文件的路径</td><td></td></tr>
+<tr><td>tlsTrustCertsFilePath</td><td>受信任的TLS证书pem文件的路径</td><td></td></tr>
+<tr><td>tlsHostnameVerificationEnabled</td><td>当代理与brokers建立TLS连接时是否验证主机名</td><td>false</td></tr>
 <tr><td>tlsRequireTrustedClientCertOnConnect</td><td>Whether client certificates are required for TLS. Connections are rejected if the client certificate isn’t trusted.</td><td>false</td></tr>
 <tr><td>tlsProtocols</td><td>Specify the tls protocols the broker will use to negotiate during TLS Handshake. Multiple values can be specified, separated by commas. Example:- <code>TLSv1.2</code>, <code>TLSv1.1</code>, <code>TLSv1</code></td><td></td></tr>
 <tr><td>tlsCiphers</td><td>Specify the tls cipher the broker will use to negotiate during TLS Handshake. Multiple values can be specified, separated by commas. Example:- <code>TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256</code></td><td></td></tr>
diff --git a/content/swagger/swagger.json b/content/swagger/swagger.json
index 64da6e0..42fb706 100644
--- a/content/swagger/swagger.json
+++ b/content/swagger/swagger.json
@@ -7096,29 +7096,19 @@
           "type" : "number",
           "format" : "double"
         },
-        "underLoaded" : {
-          "type" : "boolean"
-        },
-        "bandwidthOut" : {
-          "$ref" : "#/definitions/ResourceUsage"
-        },
-        "lastUpdate" : {
-          "type" : "integer",
-          "format" : "int64"
-        },
-        "msgThroughputIn" : {
+        "msgThroughputOut" : {
           "type" : "number",
           "format" : "double"
         },
-        "msgThroughputOut" : {
+        "msgThroughputIn" : {
           "type" : "number",
           "format" : "double"
         },
         "overLoaded" : {
           "type" : "boolean"
         },
-        "directMemory" : {
-          "$ref" : "#/definitions/ResourceUsage"
+        "underLoaded" : {
+          "type" : "boolean"
         },
         "loadReportType" : {
           "type" : "string"
@@ -7126,11 +7116,21 @@
         "cpu" : {
           "$ref" : "#/definitions/ResourceUsage"
         },
+        "memory" : {
+          "$ref" : "#/definitions/ResourceUsage"
+        },
+        "directMemory" : {
+          "$ref" : "#/definitions/ResourceUsage"
+        },
         "bandwidthIn" : {
           "$ref" : "#/definitions/ResourceUsage"
         },
-        "memory" : {
+        "bandwidthOut" : {
           "$ref" : "#/definitions/ResourceUsage"
+        },
+        "lastUpdate" : {
+          "type" : "integer",
+          "format" : "int64"
         }
       }
     },
@@ -8069,15 +8069,15 @@
     "ResourceDescription" : {
       "type" : "object",
       "properties" : {
+        "usagePct" : {
+          "type" : "integer",
+          "format" : "int32"
+        },
         "resourceUsage" : {
           "type" : "object",
           "additionalProperties" : {
             "$ref" : "#/definitions/ResourceUsage"
           }
-        },
-        "usagePct" : {
-          "type" : "integer",
-          "format" : "int32"
         }
       }
     },