You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by ti...@apache.org on 2023/01/15 03:41:47 UTC
[pulsar-site] branch main updated (cb01afd6b26 -> adbe8fdb722)
This is an automated email from the ASF dual-hosted git repository.
tison pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/pulsar-site.git
from cb01afd6b26 Add Pulsar shell to the download page (#384)
new c36f232691b Add 2.11.x references
new adbe8fdb722 fix site-updater branch names
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
static/reference/{2.10.x => 2.11.x}/README.md | 0
static/reference/{next => 2.11.x}/_sidebar.md | 0
static/reference/{2.10.x => 2.11.x}/bookkeeper/README.md | 0
static/reference/{next => 2.11.x}/bookkeeper/bookkeeper.md | 0
static/reference/{2.10.x => 2.11.x}/cli.md | 0
static/reference/{2.10.x => 2.11.x}/client/README.md | 0
.../reference/{next => 2.11.x}/client/client-configuration-client.md | 0
.../{next => 2.11.x}/client/client-configuration-consumer.md | 0
.../{next => 2.11.x}/client/client-configuration-producer.md | 0
.../reference/{next => 2.11.x}/client/client-configuration-reader.md | 0
static/reference/{next => 2.11.x}/config/README.md | 0
.../{next => 2.11.x}/config/reference-configuration-bookkeeper.md | 0
.../{next => 2.11.x}/config/reference-configuration-broker.md | 0
.../{next => 2.11.x}/config/reference-configuration-client.md | 0
.../{next => 2.11.x}/config/reference-configuration-log4j-shell.md | 0
.../{next => 2.11.x}/config/reference-configuration-log4j.md | 0
.../{next => 2.11.x}/config/reference-configuration-pulsar-proxy.md | 0
.../{next => 2.11.x}/config/reference-configuration-standalone.md | 0
.../{next => 2.11.x}/config/reference-configuration-websocket.md | 0
.../{next => 2.11.x}/config/reference-configuration-zookeeper.md | 0
static/reference/{2.10.x => 2.11.x}/pulsar-admin/README.md | 0
static/reference/{next => 2.11.x}/pulsar-admin/bookies.md | 0
static/reference/{next => 2.11.x}/pulsar-admin/broker-stats.md | 0
static/reference/{next => 2.11.x}/pulsar-admin/brokers.md | 0
static/reference/{next => 2.11.x}/pulsar-admin/clusters.md | 0
static/reference/{next => 2.11.x}/pulsar-admin/functions-worker.md | 0
static/reference/{next => 2.11.x}/pulsar-admin/functions.md | 0
static/reference/{next => 2.11.x}/pulsar-admin/namespaces.md | 0
.../reference/{next => 2.11.x}/pulsar-admin/ns-isolation-policy.md | 0
static/reference/{next => 2.11.x}/pulsar-admin/packages.md | 0
static/reference/{next => 2.11.x}/pulsar-admin/proxy-stats.md | 0
static/reference/{next => 2.11.x}/pulsar-admin/resource-quotas.md | 0
static/reference/{next => 2.11.x}/pulsar-admin/resourcegroups.md | 0
static/reference/{next => 2.11.x}/pulsar-admin/schemas.md | 0
static/reference/{next => 2.11.x}/pulsar-admin/sinks.md | 0
static/reference/{next => 2.11.x}/pulsar-admin/sources.md | 0
static/reference/{next => 2.11.x}/pulsar-admin/tenants.md | 0
static/reference/{next => 2.11.x}/pulsar-admin/topicPolicies.md | 0
static/reference/{next => 2.11.x}/pulsar-admin/topics.md | 0
static/reference/{next => 2.11.x}/pulsar-admin/transactions.md | 0
static/reference/{2.10.x => 2.11.x}/pulsar-client/README.md | 0
static/reference/{next => 2.11.x}/pulsar-client/pulsar-client.md | 0
static/reference/{2.10.x => 2.11.x}/pulsar-daemon/README.md | 0
static/reference/{next => 2.11.x}/pulsar-daemon/pulsar-daemon.md | 0
static/reference/{2.10.x => 2.11.x}/pulsar-perf/README.md | 0
static/reference/{next => 2.11.x}/pulsar-perf/pulsar-perf.md | 0
static/reference/{next => 2.11.x}/pulsar-shell/README.md | 0
static/reference/{next => 2.11.x}/pulsar-shell/pulsar-shell.md | 0
static/reference/{2.10.x => 2.11.x}/pulsar/README.md | 0
static/reference/{next => 2.11.x}/pulsar/broker-tool.md | 0
static/reference/{next => 2.11.x}/pulsar/broker.md | 0
static/reference/{next => 2.11.x}/pulsar/compact-topic.md | 0
static/reference/{next => 2.11.x}/pulsar/delete-cluster-metadata.md | 0
static/reference/{next => 2.11.x}/pulsar/functions-worker.md | 0
.../reference/{next => 2.11.x}/pulsar/initialize-cluster-metadata.md | 0
static/reference/{next => 2.11.x}/pulsar/initialize-namespace.md | 0
.../pulsar/initialize-transaction-coordinator-metadata.md | 0
static/reference/{next => 2.11.x}/pulsar/proxy.md | 0
static/reference/{next => 2.11.x}/pulsar/standalone.md | 0
static/reference/{next => 2.11.x}/pulsar/tokens.md | 0
static/reference/{next => 2.11.x}/pulsar/version.md | 0
static/reference/{next => 2.11.x}/pulsar/websocket.md | 0
tools/pytools/bin/site-updater.py | 5 ++---
63 files changed, 2 insertions(+), 3 deletions(-)
copy static/reference/{2.10.x => 2.11.x}/README.md (100%)
copy static/reference/{next => 2.11.x}/_sidebar.md (100%)
copy static/reference/{2.10.x => 2.11.x}/bookkeeper/README.md (100%)
copy static/reference/{next => 2.11.x}/bookkeeper/bookkeeper.md (100%)
copy static/reference/{2.10.x => 2.11.x}/cli.md (100%)
copy static/reference/{2.10.x => 2.11.x}/client/README.md (100%)
copy static/reference/{next => 2.11.x}/client/client-configuration-client.md (100%)
copy static/reference/{next => 2.11.x}/client/client-configuration-consumer.md (100%)
copy static/reference/{next => 2.11.x}/client/client-configuration-producer.md (100%)
copy static/reference/{next => 2.11.x}/client/client-configuration-reader.md (100%)
copy static/reference/{next => 2.11.x}/config/README.md (100%)
copy static/reference/{next => 2.11.x}/config/reference-configuration-bookkeeper.md (100%)
copy static/reference/{next => 2.11.x}/config/reference-configuration-broker.md (100%)
copy static/reference/{next => 2.11.x}/config/reference-configuration-client.md (100%)
copy static/reference/{next => 2.11.x}/config/reference-configuration-log4j-shell.md (100%)
copy static/reference/{next => 2.11.x}/config/reference-configuration-log4j.md (100%)
copy static/reference/{next => 2.11.x}/config/reference-configuration-pulsar-proxy.md (100%)
copy static/reference/{next => 2.11.x}/config/reference-configuration-standalone.md (100%)
copy static/reference/{next => 2.11.x}/config/reference-configuration-websocket.md (100%)
copy static/reference/{next => 2.11.x}/config/reference-configuration-zookeeper.md (100%)
copy static/reference/{2.10.x => 2.11.x}/pulsar-admin/README.md (100%)
copy static/reference/{next => 2.11.x}/pulsar-admin/bookies.md (100%)
copy static/reference/{next => 2.11.x}/pulsar-admin/broker-stats.md (100%)
copy static/reference/{next => 2.11.x}/pulsar-admin/brokers.md (100%)
copy static/reference/{next => 2.11.x}/pulsar-admin/clusters.md (100%)
copy static/reference/{next => 2.11.x}/pulsar-admin/functions-worker.md (100%)
copy static/reference/{next => 2.11.x}/pulsar-admin/functions.md (100%)
copy static/reference/{next => 2.11.x}/pulsar-admin/namespaces.md (100%)
copy static/reference/{next => 2.11.x}/pulsar-admin/ns-isolation-policy.md (100%)
copy static/reference/{next => 2.11.x}/pulsar-admin/packages.md (100%)
copy static/reference/{next => 2.11.x}/pulsar-admin/proxy-stats.md (100%)
copy static/reference/{next => 2.11.x}/pulsar-admin/resource-quotas.md (100%)
copy static/reference/{next => 2.11.x}/pulsar-admin/resourcegroups.md (100%)
copy static/reference/{next => 2.11.x}/pulsar-admin/schemas.md (100%)
copy static/reference/{next => 2.11.x}/pulsar-admin/sinks.md (100%)
copy static/reference/{next => 2.11.x}/pulsar-admin/sources.md (100%)
copy static/reference/{next => 2.11.x}/pulsar-admin/tenants.md (100%)
copy static/reference/{next => 2.11.x}/pulsar-admin/topicPolicies.md (100%)
copy static/reference/{next => 2.11.x}/pulsar-admin/topics.md (100%)
copy static/reference/{next => 2.11.x}/pulsar-admin/transactions.md (100%)
copy static/reference/{2.10.x => 2.11.x}/pulsar-client/README.md (100%)
copy static/reference/{next => 2.11.x}/pulsar-client/pulsar-client.md (100%)
copy static/reference/{2.10.x => 2.11.x}/pulsar-daemon/README.md (100%)
copy static/reference/{next => 2.11.x}/pulsar-daemon/pulsar-daemon.md (100%)
copy static/reference/{2.10.x => 2.11.x}/pulsar-perf/README.md (100%)
copy static/reference/{next => 2.11.x}/pulsar-perf/pulsar-perf.md (100%)
copy static/reference/{next => 2.11.x}/pulsar-shell/README.md (100%)
copy static/reference/{next => 2.11.x}/pulsar-shell/pulsar-shell.md (100%)
copy static/reference/{2.10.x => 2.11.x}/pulsar/README.md (100%)
copy static/reference/{next => 2.11.x}/pulsar/broker-tool.md (100%)
copy static/reference/{next => 2.11.x}/pulsar/broker.md (100%)
copy static/reference/{next => 2.11.x}/pulsar/compact-topic.md (100%)
copy static/reference/{next => 2.11.x}/pulsar/delete-cluster-metadata.md (100%)
copy static/reference/{next => 2.11.x}/pulsar/functions-worker.md (100%)
copy static/reference/{next => 2.11.x}/pulsar/initialize-cluster-metadata.md (100%)
copy static/reference/{next => 2.11.x}/pulsar/initialize-namespace.md (100%)
copy static/reference/{next => 2.11.x}/pulsar/initialize-transaction-coordinator-metadata.md (100%)
copy static/reference/{next => 2.11.x}/pulsar/proxy.md (100%)
copy static/reference/{next => 2.11.x}/pulsar/standalone.md (100%)
copy static/reference/{next => 2.11.x}/pulsar/tokens.md (100%)
copy static/reference/{next => 2.11.x}/pulsar/version.md (100%)
copy static/reference/{next => 2.11.x}/pulsar/websocket.md (100%)
[pulsar-site] 01/02: Add 2.11.x references
Posted by ti...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
tison pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pulsar-site.git
commit c36f232691b76cef77d3622a59304cf231214af3
Author: tison <wa...@gmail.com>
AuthorDate: Sun Jan 15 11:24:47 2023 +0800
Add 2.11.x references
Signed-off-by: tison <wa...@gmail.com>
---
static/reference/2.11.x/README.md | 3 +
static/reference/2.11.x/_sidebar.md | 61 +
static/reference/2.11.x/bookkeeper/README.md | 1 +
static/reference/2.11.x/bookkeeper/bookkeeper.md | 94 +
static/reference/2.11.x/cli.md | 3 +
static/reference/2.11.x/client/README.md | 1 +
.../2.11.x/client/client-configuration-client.md | 369 ++
.../2.11.x/client/client-configuration-consumer.md | 282 ++
.../2.11.x/client/client-configuration-producer.md | 136 +
.../2.11.x/client/client-configuration-reader.md | 96 +
static/reference/2.11.x/config/README.md | 28 +
.../config/reference-configuration-bookkeeper.md | 583 +++
.../config/reference-configuration-broker.md | 5209 ++++++++++++++++++++
.../config/reference-configuration-client.md | 369 ++
.../config/reference-configuration-log4j-shell.md | 37 +
.../2.11.x/config/reference-configuration-log4j.md | 80 +
.../config/reference-configuration-pulsar-proxy.md | 1210 +++++
.../config/reference-configuration-standalone.md | 5209 ++++++++++++++++++++
.../config/reference-configuration-websocket.md | 615 +++
.../config/reference-configuration-zookeeper.md | 83 +
static/reference/2.11.x/pulsar-admin/README.md | 1 +
static/reference/2.11.x/pulsar-admin/bookies.md | 96 +
.../reference/2.11.x/pulsar-admin/broker-stats.md | 93 +
static/reference/2.11.x/pulsar-admin/brokers.md | 225 +
static/reference/2.11.x/pulsar-admin/clusters.md | 273 +
.../2.11.x/pulsar-admin/functions-worker.md | 106 +
static/reference/2.11.x/pulsar-admin/functions.md | 503 ++
static/reference/2.11.x/pulsar-admin/namespaces.md | 2289 +++++++++
.../2.11.x/pulsar-admin/ns-isolation-policy.md | 112 +
static/reference/2.11.x/pulsar-admin/packages.md | 131 +
.../reference/2.11.x/pulsar-admin/proxy-stats.md | 44 +
.../2.11.x/pulsar-admin/resource-quotas.md | 70 +
.../2.11.x/pulsar-admin/resourcegroups.md | 98 +
static/reference/2.11.x/pulsar-admin/schemas.md | 83 +
static/reference/2.11.x/pulsar-admin/sinks.md | 334 ++
static/reference/2.11.x/pulsar-admin/sources.md | 301 ++
static/reference/2.11.x/pulsar-admin/tenants.md | 95 +
.../reference/2.11.x/pulsar-admin/topicPolicies.md | 1418 ++++++
static/reference/2.11.x/pulsar-admin/topics.md | 2421 +++++++++
.../reference/2.11.x/pulsar-admin/transactions.md | 230 +
static/reference/2.11.x/pulsar-client/README.md | 1 +
.../2.11.x/pulsar-client/pulsar-client.md | 54 +
static/reference/2.11.x/pulsar-daemon/README.md | 1 +
.../2.11.x/pulsar-daemon/pulsar-daemon.md | 36 +
static/reference/2.11.x/pulsar-perf/README.md | 1 +
static/reference/2.11.x/pulsar-perf/pulsar-perf.md | 303 ++
static/reference/2.11.x/pulsar-shell/README.md | 1 +
.../reference/2.11.x/pulsar-shell/pulsar-shell.md | 149 +
static/reference/2.11.x/pulsar/README.md | 1 +
static/reference/2.11.x/pulsar/broker-tool.md | 21 +
static/reference/2.11.x/pulsar/broker.md | 20 +
static/reference/2.11.x/pulsar/compact-topic.md | 15 +
.../2.11.x/pulsar/delete-cluster-metadata.md | 18 +
static/reference/2.11.x/pulsar/functions-worker.md | 14 +
.../2.11.x/pulsar/initialize-cluster-metadata.md | 31 +
.../2.11.x/pulsar/initialize-namespace.md | 16 +
.../initialize-transaction-coordinator-metadata.md | 17 +
static/reference/2.11.x/pulsar/proxy.md | 19 +
static/reference/2.11.x/pulsar/standalone.md | 29 +
static/reference/2.11.x/pulsar/tokens.md | 82 +
static/reference/2.11.x/pulsar/version.md | 13 +
static/reference/2.11.x/pulsar/websocket.md | 13 +
62 files changed, 24247 insertions(+)
diff --git a/static/reference/2.11.x/README.md b/static/reference/2.11.x/README.md
new file mode 100644
index 00000000000..7308b61184c
--- /dev/null
+++ b/static/reference/2.11.x/README.md
@@ -0,0 +1,3 @@
+# Welcome
+
+> Welcome to Pulsar Configuration Docs.
diff --git a/static/reference/2.11.x/_sidebar.md b/static/reference/2.11.x/_sidebar.md
new file mode 100644
index 00000000000..3d40539231a
--- /dev/null
+++ b/static/reference/2.11.x/_sidebar.md
@@ -0,0 +1,61 @@
+- [Configuration]()
+ - [Pulsar](config/)
+ - [BookKeeper](config/reference-configuration-bookkeeper)
+ - [Broker](config/reference-configuration-broker)
+ - [Client](config/reference-configuration-client)
+ - [Log4j](config/reference-configuration-log4j)
+ - [Log4j shell](config/reference-configuration-log4j-shell)
+ - [Standalone](config/reference-configuration-standalone)
+ - [WebSocket](config/reference-configuration-websocket)
+ - [Pulsar proxy](config/reference-configuration-pulsar-proxy)
+ - [ZooKeeper](config/reference-configuration-zookeeper)
+ - [Client](client/)
+ - [Client](client/client-configuration-client)
+ - [Producer](client/client-configuration-producer)
+ - [Consumer](client/client-configuration-consumer)
+ - [Reader](client/client-configuration-reader)
+- [CLI Tools](cli.md)
+ - [pulsar-admin](pulsar-admin/)
+ - [broker-stats](pulsar-admin/broker-stats.md)
+ - [brokers](pulsar-admin/brokers.md)
+ - [bookies](pulsar-admin/bookies.md)
+ - [clusters](pulsar-admin/clusters.md)
+ - [functions](pulsar-admin/functions.md)
+ - [functions-worker](pulsar-admin/functions-worker.md)
+ - [namespaces](pulsar-admin/namespaces.md)
+ - [ns-isolation-policy](pulsar-admin/ns-isolation-policy.md)
+ - [sources](pulsar-admin/sources.md)
+ - [sinks](pulsar-admin/sinks.md)
+ - [topics](pulsar-admin/topics.md)
+ - [topicPolicies](pulsar-admin/topicPolicies.md)
+ - [proxy-stats](pulsar-admin/proxy-stats.md)
+ - [resourcegroups](pulsar-admin/resourcegroups.md)
+ - [transactions](pulsar-admin/transactions.md)
+ - [tenants](pulsar-admin/tenants.md)
+ - [resource-quotas](pulsar-admin/resource-quotas.md)
+ - [schemas](pulsar-admin/schemas.md)
+ - [packages](pulsar-admin/packages.md)
+ - [pulsar](pulsar/)
+ - [broker](pulsar/broker.md)
+ - [broker-tool](pulsar/broker-tool.md)
+ - [compact-topic](pulsar/compact-topic.md)
+ - [tokens](pulsar/tokens.md)
+ - [proxy](pulsar/proxy.md)
+ - [functions-worker](pulsar/functions-worker.md)
+ - [standalone](pulsar/standalone.md)
+ - [initialize-cluster-metadata](pulsar/initialize-cluster-metadata.md)
+ - [delete-cluster-metadata](pulsar/delete-cluster-metadata.md)
+ - [initialize-transaction-coordinator-metadata](pulsar/initialize-transaction-coordinator-metadata.md)
+ - [initialize-namespace](pulsar/initialize-namespace.md)
+ - [version](pulsar/version.md)
+ - [websocket](pulsar/websocket.md)
+ - [pulsar-client](pulsar-client/)
+ - [pulsar-client](pulsar-client/pulsar-client.md)
+ - [pulsar-daemon](pulsar-daemon/)
+ - [pulsar-daemon](pulsar-daemon/pulsar-daemon.md)
+ - [pulsar-perf](pulsar-perf/)
+ - [pulsar-perf](pulsar-perf/pulsar-perf.md)
+ - [pulsar-shell](pulsar-shell/)
+ - [pulsar-shell](pulsar-shell/pulsar-shell.md)
+ - [bookkeeper](bookkeeper/)
+ - [bookkeeper](bookkeeper/bookkeeper.md)
diff --git a/static/reference/2.11.x/bookkeeper/README.md b/static/reference/2.11.x/bookkeeper/README.md
new file mode 100644
index 00000000000..9d1dd4aed50
--- /dev/null
+++ b/static/reference/2.11.x/bookkeeper/README.md
@@ -0,0 +1 @@
+> Docs for `bookkeeper`.
diff --git a/static/reference/2.11.x/bookkeeper/bookkeeper.md b/static/reference/2.11.x/bookkeeper/bookkeeper.md
new file mode 100644
index 00000000000..d1da9992a21
--- /dev/null
+++ b/static/reference/2.11.x/bookkeeper/bookkeeper.md
@@ -0,0 +1,94 @@
+## `bookkeeper`
+A tool for managing BookKeeper.
+
+### Environment variables
+
+The table below lists the environment variables that you can use to configure the bookkeeper tool.
+
+|Variable|Description|Default|
+|---|---|---|
+|BOOKIE_LOG_CONF|Log4j configuration file|conf/log4j2.yaml|
+|BOOKIE_CONF|BookKeeper configuration file|conf/bk_server.conf|
+|BOOKIE_EXTRA_OPTS|Extra options to be passed to the JVM||
+|BOOKIE_EXTRA_CLASSPATH|Extra paths for BookKeeper's classpath||
+|ENTRY_FORMATTER_CLASS|The Java class used to format entries||
+|BOOKIE_PID_DIR|Folder where the BookKeeper server PID file should be stored||
+|BOOKIE_STOP_TIMEOUT|Wait time before forcefully killing the Bookie server instance if attempts to stop it are not successful||
+|BOOKIE_GC_LOG|Gc options to be passed to the jvm||
+
+
+### `autorecovery`
+Runs an auto-recovery service
+
+Usage
+
+```bash
+bookkeeper autorecovery options
+```
+
+Options
+
+|Flag|Description|Default|
+|---|---|---|
+|`-c`, `--conf`|Configuration for the auto-recovery||
+
+
+### `bookie`
+Starts up a BookKeeper server (aka bookie)
+
+Usage
+
+```bash
+bookkeeper bookie options
+```
+
+Options
+
+|Flag|Description|Default|
+|---|---|---|
+|`-c`, `--conf`|Configuration for the auto-recovery||
+|-readOnly|Force start a read-only bookie server|false|
+|-withAutoRecovery|Start auto-recovery service bookie server|false|
+
+
+### `localbookie`
+Runs a test ensemble of N bookies locally
+
+Usage
+
+```bash
+bookkeeper localbookie N
+```
+
+### `upgrade`
+Upgrade the bookie’s filesystem
+
+Usage
+
+```bash
+bookkeeper upgrade options
+```
+
+Options
+
+|Flag|Description|Default|
+|---|---|---|
+|`-c`, `--conf`|Configuration for the auto-recovery||
+|`-u`, `--upgrade`|Upgrade the bookie’s directories||
+
+
+### `shell`
+Run shell for admin commands. To see a full listing of those commands, run bookkeeper shell without an argument.
+
+Usage
+
+```bash
+bookkeeper shell
+```
+
+Example
+
+```bash
+bookkeeper shell bookiesanity
+```
+
diff --git a/static/reference/2.11.x/cli.md b/static/reference/2.11.x/cli.md
new file mode 100644
index 00000000000..520d14e5b03
--- /dev/null
+++ b/static/reference/2.11.x/cli.md
@@ -0,0 +1,3 @@
+# Welcome
+
+> Welcome to Pulsar CLI Tools Docs.
diff --git a/static/reference/2.11.x/client/README.md b/static/reference/2.11.x/client/README.md
new file mode 100644
index 00000000000..323b61c38b5
--- /dev/null
+++ b/static/reference/2.11.x/client/README.md
@@ -0,0 +1 @@
+> Docs for Pulsar Java Client Configuration.
diff --git a/static/reference/2.11.x/client/client-configuration-client.md b/static/reference/2.11.x/client/client-configuration-client.md
new file mode 100644
index 00000000000..a28d15a26ef
--- /dev/null
+++ b/static/reference/2.11.x/client/client-configuration-client.md
@@ -0,0 +1,369 @@
+# Client
+
+## Required
+### serviceUrl
+Pulsar cluster HTTP URL to connect to a broker.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+## Optional
+### authParamMap
+Authentication map of the client.
+
+**Type**: `java.util.Map`
+
+**Default**: `null`
+
+### authParams
+Authentication parameter of the client.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+### authPluginClassName
+Class name of authentication plugin of the client.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+### authentication
+Authentication settings of the client.
+
+**Type**: `org.apache.pulsar.client.api.Authentication`
+
+**Default**: `null`
+
+### autoCertRefreshSeconds
+Seconds of auto refreshing certificate.
+
+**Type**: `int`
+
+**Default**: `300`
+
+### concurrentLookupRequest
+The number of concurrent lookup requests that can be sent on each broker connection. Setting a maximum prevents overloading a broker.
+
+**Type**: `int`
+
+**Default**: `5000`
+
+### connectionMaxIdleSeconds
+Release the connection if it is not used for more than [connectionMaxIdleSeconds] seconds. If [connectionMaxIdleSeconds] < 0, disabled the feature that auto release the idle connections
+
+**Type**: `int`
+
+**Default**: `180`
+
+### connectionTimeoutMs
+Duration of waiting for a connection to a broker to be established.If the duration passes without a response from a broker, the connection attempt is dropped.
+
+**Type**: `int`
+
+**Default**: `10000`
+
+### connectionsPerBroker
+Number of connections established between the client and each Broker. A value of 0 means to disable connection pooling.
+
+**Type**: `int`
+
+**Default**: `1`
+
+### dnsLookupBindAddress
+The Pulsar client dns lookup bind address, default behavior is bind on 0.0.0.0
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+### dnsLookupBindPort
+The Pulsar client dns lookup bind port, takes effect when dnsLookupBindAddress is configured, default value is 0.
+
+**Type**: `int`
+
+**Default**: `0`
+
+### enableBusyWait
+Whether to enable BusyWait for EpollEventLoopGroup.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+### enableTransaction
+Whether to enable transaction.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+### initialBackoffIntervalNanos
+Initial backoff interval (in nanosecond).
+
+**Type**: `long`
+
+**Default**: `100000000`
+
+### keepAliveIntervalSeconds
+Seconds of keeping alive interval for each client broker connection.
+
+**Type**: `int`
+
+**Default**: `30`
+
+### listenerName
+Listener name for lookup. Clients can use listenerName to choose one of the listeners as the service URL to create a connection to the broker as long as the network is accessible."advertisedListeners" must enabled in broker side.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+### lookupTimeoutMs
+Client lookup timeout (in milliseconds).
+
+**Type**: `long`
+
+**Default**: `-1`
+
+### maxBackoffIntervalNanos
+Max backoff interval (in nanosecond).
+
+**Type**: `long`
+
+**Default**: `60000000000`
+
+### maxLookupRedirects
+Maximum times of redirected lookup requests.
+
+**Type**: `int`
+
+**Default**: `20`
+
+### maxLookupRequest
+Maximum number of lookup requests allowed on each broker connection to prevent overloading a broker.
+
+**Type**: `int`
+
+**Default**: `50000`
+
+### maxNumberOfRejectedRequestPerConnection
+Maximum number of rejected requests of a broker in a certain time frame (60 seconds) after the current connection is closed and the client creating a new connection to connect to a different broker.
+
+**Type**: `int`
+
+**Default**: `50`
+
+### memoryLimitBytes
+Limit of client memory usage (in byte). The 64M default can guarantee a high producer throughput.
+
+**Type**: `long`
+
+**Default**: `67108864`
+
+### numIoThreads
+Number of IO threads.
+
+**Type**: `int`
+
+**Default**: `2`
+
+### numListenerThreads
+Number of consumer listener threads.
+
+**Type**: `int`
+
+**Default**: `2`
+
+### operationTimeoutMs
+Client operation timeout (in milliseconds).
+
+**Type**: `long`
+
+**Default**: `30000`
+
+### proxyProtocol
+Protocol of proxy service. proxyServiceUrl and proxyProtocol must be mutually inclusive.
+
+**Type**: `org.apache.pulsar.client.api.ProxyProtocol`
+
+**Default**: `null`
+
+### proxyServiceUrl
+URL of proxy service. proxyServiceUrl and proxyProtocol must be mutually inclusive.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+### readTimeoutMs
+Maximum read time of a request.
+
+**Type**: `int`
+
+**Default**: `60000`
+
+### requestTimeoutMs
+Maximum duration for completing a request.
+
+**Type**: `int`
+
+**Default**: `60000`
+
+### serviceUrlProvider
+The implementation class of ServiceUrlProvider used to generate ServiceUrl.
+
+**Type**: `org.apache.pulsar.client.api.ServiceUrlProvider`
+
+**Default**: `null`
+
+### socks5ProxyAddress
+Address of SOCKS5 proxy.
+
+**Type**: `java.net.InetSocketAddress`
+
+**Default**: `null`
+
+### socks5ProxyPassword
+Password of SOCKS5 proxy.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+### socks5ProxyUsername
+User name of SOCKS5 proxy.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+### sslProvider
+The TLS provider used by an internal client to authenticate with other Pulsar brokers.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+### statsIntervalSeconds
+Interval to print client stats (in seconds).
+
+**Type**: `long`
+
+**Default**: `60`
+
+### tlsAllowInsecureConnection
+Whether the client accepts untrusted TLS certificates from the broker.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+### tlsCertificateFilePath
+Path to the TLS certificate file.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+### tlsCiphers
+Set of TLS Ciphers.
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+### tlsHostnameVerificationEnable
+Whether the hostname is validated when the proxy creates a TLS connection with brokers.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+### tlsKeyFilePath
+Path to the TLS key file.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+### tlsKeyStorePassword
+Password of TLS KeyStore.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+### tlsKeyStorePath
+Path of TLS KeyStore.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+### tlsKeyStoreType
+TLS KeyStore type configuration.
+
+**Type**: `java.lang.String`
+
+**Default**: `JKS`
+
+### tlsProtocols
+Protocols of TLS.
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+### tlsTrustCertsFilePath
+Path to the trusted TLS certificate file.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+### tlsTrustStorePassword
+Password of TLS TrustStore.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+### tlsTrustStorePath
+Path of TLS TrustStore.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+### tlsTrustStoreType
+TLS TrustStore type configuration. You need to set this configuration when client authentication is required.
+
+**Type**: `java.lang.String`
+
+**Default**: `JKS`
+
+### useKeyStoreTls
+Set TLS using KeyStore way.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+### useTcpNoDelay
+Whether to use TCP NoDelay option.
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+### useTls
+Whether to use TLS.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+
diff --git a/static/reference/2.11.x/client/client-configuration-consumer.md b/static/reference/2.11.x/client/client-configuration-consumer.md
new file mode 100644
index 00000000000..33e6a81d527
--- /dev/null
+++ b/static/reference/2.11.x/client/client-configuration-consumer.md
@@ -0,0 +1,282 @@
+# Consumer
+
+## Required
+### topicNames
+Topic name
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+## Optional
+### ackTimeoutMillis
+Timeout of unacked messages
+
+**Type**: `long`
+
+**Default**: `0`
+
+### ackTimeoutRedeliveryBackoff
+Interface for custom message is ackTimeout policy. You can specify `RedeliveryBackoff` for a consumer.
+
+**Type**: `org.apache.pulsar.client.api.RedeliveryBackoff`
+
+**Default**: `null`
+
+### acknowledgementsGroupTimeMicros
+Group a consumer acknowledgment for a specified time.
+
+By default, a consumer uses 100ms grouping time to send out acknowledgments to a broker.
+
+Setting a group time of 0 sends out acknowledgments immediately.
+
+A longer ack group time is more efficient at the expense of a slight increase in message re-deliveries after a failure.
+
+**Type**: `long`
+
+**Default**: `100000`
+
+### autoAckOldestChunkedMessageOnQueueFull
+Whether to automatically acknowledge pending chunked messages when the threashold of `maxPendingChunkedMessage` is reached. If set to `false`, these messages will be redelivered by their broker.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+### autoUpdatePartitions
+If `autoUpdatePartitions` is enabled, a consumer subscribes to partition increasement automatically.
+
+**Note**: this is only for partitioned consumers.
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+### consumerName
+Consumer name
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+### cryptoFailureAction
+Consumer should take action when it receives a message that can not be decrypted.
+* **FAIL**: this is the default option to fail messages until crypto succeeds.
+* **DISCARD**:silently acknowledge and not deliver message to an application.
+* **CONSUME**: deliver encrypted messages to applications. It is the application's responsibility to decrypt the message.
+
+The decompression of message fails.
+
+If messages contain batch messages, a client is not be able to retrieve individual messages in batch.
+
+Delivered encrypted message contains {@link EncryptionContext} which contains encryption and compression information in it using which application can decrypt consumed message payload.
+
+**Type**: `org.apache.pulsar.client.api.ConsumerCryptoFailureAction`
+
+**Default**: `FAIL`
+
+### deadLetterPolicy
+Dead letter policy for consumers.
+
+By default, some messages are probably redelivered many times, even to the extent that it never stops.
+
+By using the dead letter mechanism, messages have the max redelivery count. **When exceeding the maximum number of redeliveries, messages are sent to the Dead Letter Topic and acknowledged automatically**.
+
+You can enable the dead letter mechanism by setting `deadLetterPolicy`.
+
+**Example**
+```java
+client.newConsumer()
+.deadLetterPolicy(DeadLetterPolicy.builder().maxRedeliverCount(10).build())
+.subscribe();
+```
+Default dead letter topic name is `{TopicName}-{Subscription}-DLQ`.
+
+To set a custom dead letter topic name:
+```java
+client.newConsumer()
+.deadLetterPolicy(DeadLetterPolicy.builder().maxRedeliverCount(10)
+.deadLetterTopic("your-topic-name").build())
+.subscribe();
+```
+When specifying the dead letter policy while not specifying `ackTimeoutMillis`, you can set the ack timeout to 30000 millisecond.
+
+**Type**: `org.apache.pulsar.client.api.DeadLetterPolicy`
+
+**Default**: `null`
+
+### expireTimeOfIncompleteChunkedMessageMillis
+The time interval to expire incomplete chunks if a consumer fails to receive all the chunks in the specified time period. The default value is 1 minute.
+
+**Type**: `long`
+
+**Default**: `60000`
+
+### maxAcknowledgmentGroupSize
+Group a consumer acknowledgment for the number of messages.
+
+**Type**: `int`
+
+**Default**: `1000`
+
+### maxPendingChunkedMessage
+The maximum size of a queue holding pending chunked messages. When the threshold is reached, the consumer drops pending messages to optimize memory utilization.
+
+**Type**: `int`
+
+**Default**: `10`
+
+### maxTotalReceiverQueueSizeAcrossPartitions
+The max total receiver queue size across partitions.
+
+This setting reduces the receiver queue size for individual partitions if the total receiver queue size exceeds this value.
+
+**Type**: `int`
+
+**Default**: `50000`
+
+### negativeAckRedeliveryBackoff
+Interface for custom message is negativeAcked policy. You can specify `RedeliveryBackoff` for aconsumer.
+
+**Type**: `org.apache.pulsar.client.api.RedeliveryBackoff`
+
+**Default**: `null`
+
+### negativeAckRedeliveryDelayMicros
+Delay to wait before redelivering messages that failed to be processed.
+
+When an application uses {@link Consumer#negativeAcknowledge(Message)}, failed messages are redelivered after a fixed timeout.
+
+**Type**: `long`
+
+**Default**: `60000000`
+
+### patternAutoDiscoveryPeriod
+Topic auto discovery period when using a pattern for topic's consumer.
+
+The default and minimum value is 1 minute.
+
+**Type**: `int`
+
+**Default**: `60`
+
+### priorityLevel
+Priority level for a consumer to which a broker gives more priority while dispatching messages in Shared subscription type.
+
+The broker follows descending priorities. For example, 0=max-priority, 1, 2,...
+
+In Shared subscription type, the broker **first dispatches messages to the max priority level consumers if they have permits**. Otherwise, the broker considers next priority level consumers.
+
+**Example 1**
+If a subscription has consumerA with `priorityLevel` 0 and consumerB with `priorityLevel` 1, then the broker **only dispatches messages to consumerA until it runs out permits** and then starts dispatching messages to consumerB.
+
+**Example 2**
+Consumer Priority, Level, Permits
+C1, 0, 2
+C2, 0, 1
+C3, 0, 1
+C4, 1, 2
+C5, 1, 1
+
+Order in which a broker dispatches messages to consumers is: C1, C2, C3, C1, C4, C5, C4.
+
+**Type**: `int`
+
+**Default**: `0`
+
+### properties
+A name or value property of this consumer.
+
+`properties` is application defined metadata attached to a consumer.
+
+When getting a topic stats, associate this metadata with the consumer stats for easier identification.
+
+**Type**: `java.util.SortedMap`
+
+**Default**: `{}`
+
+### readCompacted
+If enabling `readCompacted`, a consumer reads messages from a compacted topic rather than reading a full message backlog of a topic.
+
+A consumer only sees the latest value for each key in the compacted topic, up until reaching the point in the topic message when compacting backlog. Beyond that point, send messages as normal.
+
+Only enabling `readCompacted` on subscriptions to persistent topics, which have a single active consumer (like failure or exclusive subscriptions).
+
+Attempting to enable it on subscriptions to non-persistent topics or on shared subscriptions leads to a subscription call throwing a `PulsarClientException`.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+### receiverQueueSize
+Size of a consumer's receiver queue.
+
+For example, the number of messages accumulated by a consumer before an application calls `Receive`.
+
+A value higher than the default value increases consumer throughput, though at the expense of more memory utilization.
+
+**Type**: `int`
+
+**Default**: `1000`
+
+### regexSubscriptionMode
+When subscribing to a topic using a regular expression, you can pick a certain type of topics.
+
+* **PersistentOnly**: only subscribe to persistent topics.
+* **NonPersistentOnly**: only subscribe to non-persistent topics.
+* **AllTopics**: subscribe to both persistent and non-persistent topics.
+
+**Type**: `org.apache.pulsar.client.api.RegexSubscriptionMode`
+
+**Default**: `PersistentOnly`
+
+### replicateSubscriptionState
+If `replicateSubscriptionState` is enabled, a subscription state is replicated to geo-replicated clusters.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+### subscriptionInitialPosition
+Initial position at which to set cursor when subscribing to a topic at first time.
+
+**Type**: `org.apache.pulsar.client.api.SubscriptionInitialPosition`
+
+**Default**: `Latest`
+
+### subscriptionName
+Subscription name
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+### subscriptionType
+Subscription type.
+Four subscription types are available:
+* Exclusive
+* Failover
+* Shared
+* Key_Shared
+
+**Type**: `org.apache.pulsar.client.api.SubscriptionType`
+
+**Default**: `Exclusive`
+
+### tickDurationMillis
+Granularity of the ack-timeout redelivery.
+
+Using an higher `tickDurationMillis` reduces the memory overhead to track messages when setting ack-timeout to a bigger value (for example, 1 hour).
+
+**Type**: `long`
+
+**Default**: `1000`
+
+### topicsPattern
+Topic pattern
+
+**Type**: `java.util.regex.Pattern`
+
+**Default**: `null`
+
+
diff --git a/static/reference/2.11.x/client/client-configuration-producer.md b/static/reference/2.11.x/client/client-configuration-producer.md
new file mode 100644
index 00000000000..d8cbfd5c8c3
--- /dev/null
+++ b/static/reference/2.11.x/client/client-configuration-producer.md
@@ -0,0 +1,136 @@
+# Producer
+
+## Required
+### topicName
+Topic name
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+## Optional
+### batchingEnabled
+Enable batching of messages.
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+### batchingMaxMessages
+The maximum number of messages permitted in a batch.
+
+**Type**: `int`
+
+**Default**: `1000`
+
+### batchingMaxPublishDelayMicros
+Batching time period of sending messages.
+
+**Type**: `long`
+
+**Default**: `1000`
+
+### blockIfQueueFull
+If it is set to `true`, when the outgoing message queue is full, the `Send` and `SendAsync` methods of producer block, rather than failing and throwing errors.
+If it is set to `false`, when the outgoing message queue is full, the `Send` and `SendAsync` methods of producer fail and `ProducerQueueIsFullError` exceptions occur.
+
+The `MaxPendingMessages` parameter determines the size of the outgoing message queue.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+### chunkingEnabled
+Enable chunking of messages.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+### compressionType
+Message data compression type used by a producer.
+Available options:
+* [LZ4](https://github.com/lz4/lz4)
+* [ZLIB](https://zlib.net/)
+* [ZSTD](https://facebook.github.io/zstd/)
+* [SNAPPY](https://google.github.io/snappy/)
+
+**Type**: `org.apache.pulsar.client.api.CompressionType`
+
+**Default**: `NONE`
+
+### cryptoFailureAction
+Producer should take action when encryption fails.
+* **FAIL**: if encryption fails, unencrypted messages fail to send.
+* **SEND**: if encryption fails, unencrypted messages are sent.
+
+**Type**: `org.apache.pulsar.client.api.ProducerCryptoFailureAction`
+
+**Default**: `FAIL`
+
+### hashingScheme
+Hashing function determining the partition where you publish a particular message (partitioned topics only).
+Available options are as follows:
+* `pulsar.JavastringHash`: the equivalent of `string.hashCode()` in Java
+* `pulsar.Murmur3_32Hash`: applies the [Murmur3](https://en.wikipedia.org/wiki/MurmurHash) hashing function
+* `pulsar.BoostHash`: applies the hashing function from C++'s[Boost](https://www.boost.org/doc/libs/1_62_0/doc/html/hash.html) library
+
+**Type**: `org.apache.pulsar.client.api.HashingScheme`
+
+**Default**: `JavaStringHash`
+
+### initialSubscriptionName
+Use this configuration to automatically create an initial subscription when creating a topic. If this field is not set, the initial subscription is not created.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+### maxPendingMessages
+The maximum size of a queue holding pending messages.
+
+For example, a message waiting to receive an acknowledgment from a [broker](https://pulsar.apache.org/docs/reference-terminology#broker).
+
+By default, when the queue is full, all calls to the `Send` and `SendAsync` methods fail **unless** you set `BlockIfQueueFull` to `true`.
+
+**Type**: `int`
+
+**Default**: `0`
+
+### maxPendingMessagesAcrossPartitions
+The maximum number of pending messages across partitions.
+
+Use the setting to lower the max pending messages for each partition ({@link #setMaxPendingMessages(int)}) if the total number exceeds the configured value.
+
+**Type**: `int`
+
+**Default**: `0`
+
+### messageRoutingMode
+Message routing logic for producers on [partitioned topics](https://pulsar.apache.org/docs/concepts-architecture-overview#partitioned-topics).
+Apply the logic only when setting no key on messages.
+Available options are as follows:
+* `pulsar.RoundRobinDistribution`: round robin
+* `pulsar.UseSinglePartition`: publish all messages to a single partition
+* `pulsar.CustomPartition`: a custom partitioning scheme
+
+**Type**: `org.apache.pulsar.client.api.MessageRoutingMode`
+
+**Default**: `null`
+
+### producerName
+Producer name
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+### sendTimeoutMs
+Message send timeout in ms.
+If a message is not acknowledged by a server before the `sendTimeout` expires, an error occurs.
+
+**Type**: `long`
+
+**Default**: `30000`
+
+
diff --git a/static/reference/2.11.x/client/client-configuration-reader.md b/static/reference/2.11.x/client/client-configuration-reader.md
new file mode 100644
index 00000000000..8abe16ba92a
--- /dev/null
+++ b/static/reference/2.11.x/client/client-configuration-reader.md
@@ -0,0 +1,96 @@
+# Reader
+
+## Required
+### topicNames
+Topic name
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+## Optional
+### cryptoFailureAction
+Consumer should take action when it receives a message that can not be decrypted.
+* **FAIL**: this is the default option to fail messages until crypto succeeds.
+* **DISCARD**: silently acknowledge and not deliver message to an application.
+* **CONSUME**: deliver encrypted messages to applications. It is the application's responsibility to decrypt the message.
+
+The message decompression fails.
+
+If messages contain batch messages, a client is not be able to retrieve individual messages in batch.
+
+Delivered encrypted message contains {@link EncryptionContext} which contains encryption and compression information in it using which application can decrypt consumed message payload.
+
+**Type**: `org.apache.pulsar.client.api.ConsumerCryptoFailureAction`
+
+**Default**: `FAIL`
+
+### cryptoKeyReader
+Interface that abstracts the access to a key store.
+
+**Type**: `org.apache.pulsar.client.api.CryptoKeyReader`
+
+**Default**: `null`
+
+### readCompacted
+If enabling `readCompacted`, a consumer reads messages from a compacted topic rather than a full message backlog of a topic.
+
+A consumer only sees the latest value for each key in the compacted topic, up until reaching the point in the topic message when compacting backlog. Beyond that point, send messages as normal.
+
+`readCompacted` can only be enabled on subscriptions to persistent topics, which have a single active consumer (for example, failure or exclusive subscriptions).
+
+Attempting to enable it on subscriptions to non-persistent topics or on shared subscriptions leads to a subscription call throwing a `PulsarClientException`.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+### readerListener
+A listener that is called for message received.
+
+**Type**: `org.apache.pulsar.client.api.ReaderListener`
+
+**Default**: `null`
+
+### readerName
+Reader name
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+### receiverQueueSize
+Size of a consumer's receiver queue.
+
+For example, the number of messages that can be accumulated by a consumer before an application calls `Receive`.
+
+A value higher than the default value increases consumer throughput, though at the expense of more memory utilization.
+
+**Type**: `int`
+
+**Default**: `1000`
+
+### resetIncludeHead
+If set to true, the first message to be returned is the one specified by `messageId`.
+
+If set to false, the first message to be returned is the one next to the message specified by `messageId`.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+### subscriptionName
+Subscription name
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+### subscriptionRolePrefix
+Prefix of subscription role.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+
diff --git a/static/reference/2.11.x/config/README.md b/static/reference/2.11.x/config/README.md
new file mode 100644
index 00000000000..a8d9ec8ae84
--- /dev/null
+++ b/static/reference/2.11.x/config/README.md
@@ -0,0 +1,28 @@
+## Pulsar configurations
+
+Pulsar offers several command-line tools that you can use for managing Pulsar installations, performance testing, using command-line producers and consumers, and more.
+
+You can manage Pulsar configurations through configuration files in the [`conf`](https://github.com/apache/pulsar/tree/master/conf) directory of a Pulsar installation.
+
+- [BookKeeper](/next/config/reference-configuration-bookkeeper)
+- [Broker](/next/config/reference-configuration-broker)
+- [Client](/next/config/reference-configuration-client)
+- [Log4j](/next/config/reference-configuration-log4j)
+- [Log4j shell](/next/config/reference-configuration-log4j-shell)
+- [Standalone](/next/config/reference-configuration-standalone)
+- [WebSocket](/next/config/reference-configuration-websocket)
+- [Pulsar proxy](/next/config/reference-configuration-pulsar-proxy)
+- [ZooKeeper](/next/config/reference-configuration-zookeeper)
+
+### Override client configurations
+
+If you want to override the configurations of clients internal to brokers, websockets, and proxies, you can use the following prefix.
+
+| Prefix | Description |
+|---------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| brokerClient_ | Configure **all** the Pulsar Clients and Pulsar Admin Clients of brokers, websockets, and proxies. These configurations are applied after hard-coded configurations and before the client configurations named in this site. |
+| bookkeeper_ | Configure the broker's BookKeeper clients used by managed ledgers and the BookkeeperPackagesStorage bookkeeper client. Takes precedence over most other configuration values. |
+
+> Notes:
+> * This override feature only applies to Pulsar 2.10.1 and later versions.
+> * When running the function worker within the broker, you have to configure those clients by using the `functions_worker.yml` file. These prefixed configurations do not apply to any of those clients.
\ No newline at end of file
diff --git a/static/reference/2.11.x/config/reference-configuration-bookkeeper.md b/static/reference/2.11.x/config/reference-configuration-bookkeeper.md
new file mode 100644
index 00000000000..28e85dcaf6c
--- /dev/null
+++ b/static/reference/2.11.x/config/reference-configuration-bookkeeper.md
@@ -0,0 +1,583 @@
+# BookKeeper
+
+BookKeeper is a replicated log storage system that Pulsar uses for durable storage of all messages.
+
+### bookiePort
+
+The port on which the bookie server listens.
+
+**Default**: 3181
+
+### allowLoopback
+
+Whether the bookie is allowed to use a loopback interface as its primary interface (that is the interface used to establish its identity). By default, loopback interfaces are not allowed to work as the primary interface. Using a loopback interface as the primary interface usually indicates a configuration error. For example, it’s fairly common in some VPS setups to not configure a hostname or to have the hostname resolve to `127.0.0.1`. If this is the case, then all bookies in the cluste [...]
+
+**Default**: false
+
+### listeningInterface
+
+The network interface on which the bookie listens. By default, the bookie listens on all interfaces.
+
+**Default**: eth0
+
+### advertisedAddress
+
+Configure a specific hostname or IP address that the bookie should use to advertise itself to clients. By default, the bookie advertises either its own IP address or hostname according to the `listeningInterface` and `useHostNameAsBookieID` settings.
+
+**Default**: N/A
+
+### allowMultipleDirsUnderSameDiskPartition
+
+Configure the bookie to enable/disable multiple ledger/index/journal directories in the same filesystem disk partition.
+
+**Default**: false
+
+### minUsableSizeForIndexFileCreation
+
+The minimum safe usable size available in index directory for bookie to create index files while replaying journal at the time of bookie starts in Readonly Mode (in bytes).
+
+**Default**: 1073741824
+
+### journalDirectory
+
+The directory where BookKeeper outputs its write-ahead log (WAL).
+
+**Default**: data/bookkeeper/journal
+
+### journalDirectories
+
+Directories that BookKeeper outputs its write ahead log. Multiple directories are available, being separated by `,`. For example: `journalDirectories=/tmp/bk-journal1,/tmp/bk-journal2`. If `journalDirectories` is set, the bookies skip `journalDirectory` and use this setting directory.
+
+**Default**: /tmp/bk-journal
+
+### ledgerDirectories
+
+The directory where BookKeeper outputs ledger snapshots. This could define multiple directories to store snapshots separated by `,`, for example `ledgerDirectories=/tmp/bk1-data,/tmp/bk2-data`. Ideally, ledger dirs and the journal dir are each in a different device, which reduces the contention between random I/O and sequential write. It is possible to run with a single disk, but performance will be significantly lower.
+
+**Default**: data/bookkeeper/ledgers
+
+### ledgerManagerType
+
+The type of ledger manager used to manage how ledgers are stored, managed, and garbage collected. See [BookKeeper Internals](https://bookkeeper.apache.org/docs/next/getting-started/concepts) for more info.
+
+**Default**: hierarchical
+
+### zkLedgersRootPath
+
+The root ZooKeeper path used to store ledger metadata. This parameter is used by the ZooKeeper-based ledger manager as a root znode to store all ledgers.
+
+**Default**: /ledgers
+
+### ledgerStorageClass
+
+Ledger storage implementation class
+
+**Default**: org.apache.bookkeeper.bookie.storage.ldb.DbLedgerStorage
+
+### entryLogFilePreallocationEnabled
+
+Enable or disable entry logger preallocation
+
+**Default**: true
+
+### logSizeLimit
+
+Max file size of the entry logger, in bytes. A new entry log file will be created when the old one reaches the file size limitation.
+
+**Default**: 1073741824
+
+### minorCompactionThreshold
+
+Threshold of minor compaction. Entry log files whose remaining size percentage reaches below this threshold will be compacted in a minor compaction. If set to less than zero, the minor compaction is disabled.
+
+**Default**: 0.2
+
+### minorCompactionInterval
+
+Time interval to run minor compaction, in seconds. If set to less than zero, the minor compaction is disabled. Note: should be greater than gcWaitTime.
+
+**Default**: 3600
+
+### majorCompactionThreshold
+
+The threshold of major compaction. Entry log files whose remaining size percentage reaches below this threshold will be compacted in a major compaction. Those entry log files whose remaining size percentage is still higher than the threshold will never be compacted. If set to less than zero, the major compaction is disabled.
+
+**Default**: 0.5
+
+### majorCompactionInterval
+
+The time interval to run major compaction, in seconds. If set to less than zero, the major compaction is disabled. Note: should be greater than gcWaitTime.
+
+**Default**: 86400
+
+### readOnlyModeEnabled
+
+If `readOnlyModeEnabled=true`, then on all full ledger disks, bookie will be converted to read-only mode and serve only read requests. Otherwise the bookie will be shutdown.
+
+**Default**: true
+
+### forceReadOnlyBookie
+
+Whether the bookie is force started in read only mode.
+
+**Default**: false
+
+### persistBookieStatusEnabled
+
+Persist the bookie status locally on the disks. So the bookies can keep their status upon restarts.
+
+**Default**: false
+
+### compactionMaxOutstandingRequests
+
+Sets the maximum number of entries that can be compacted without flushing. When compacting, the entries are written to the entrylog and the new offsets are cached in memory. Once the entrylog is flushed the index is updated with the new offsets. This parameter controls the number of entries added to the entrylog before a flush is forced. A higher value for this parameter means more memory will be used for offsets. Each offset consists of 3 longs. This parameter should not be modified unl [...]
+
+**Default**: 100000
+
+### compactionRate
+
+The rate at which compaction will read entries, in adds per second.
+
+**Default**: 1000
+
+### isThrottleByBytes
+
+Throttle compaction by bytes or by entries.
+
+**Default**: false
+
+### compactionRateByEntries
+
+The rate at which compaction will read entries, in adds per second.
+
+**Default**: 1000
+
+### compactionRateByBytes
+
+Set the rate at which compaction reads entries. The unit is bytes added per second.
+
+**Default**: 1000000
+
+### journalMaxSizeMB
+
+Max file size of journal file, in megabytes. A new journal file will be created when the old one reaches the file size limitation.
+
+**Default**: 2048
+
+### journalMaxBackups
+
+The max number of old journal files to keep. Keeping a number of old journal files would help data recovery in special cases.
+
+**Default**: 5
+
+### journalPreAllocSizeMB
+
+How space to pre-allocate at a time in the journal.
+
+**Default**: 16
+
+### journalWriteBufferSizeKB
+
+The of the write buffers used for the journal.
+
+**Default**: 64
+
+### journalRemoveFromPageCache
+
+Whether pages should be removed from the page cache after force write.
+
+**Default**: true
+
+### journalAdaptiveGroupWrites
+
+Whether to group journal force writes, which optimizes group commit for higher throughput.
+
+**Default**: true
+
+### journalMaxGroupWaitMSec
+
+The maximum latency to impose on a journal write to achieve grouping.
+
+**Default**: 1
+
+### journalAlignmentSize
+
+All the journal writes and commits should be aligned to given size
+
+**Default**: 4096
+
+### journalBufferedWritesThreshold
+
+Maximum writes to buffer to achieve grouping
+
+**Default**: 524288
+
+### journalFlushWhenQueueEmpty
+
+If we should flush the journal when journal queue is empty
+
+**Default**: false
+
+### numJournalCallbackThreads
+
+The number of threads that should handle journal callbacks
+
+**Default**: 8
+
+### openLedgerRereplicationGracePeriod
+
+The grace period, in milliseconds, that the replication worker waits before fencing and replicating a ledger fragment that's still being written to upon bookie failure.
+
+**Default**: 30000
+
+### rereplicationEntryBatchSize
+
+The number of max entries to keep in fragment for re-replication
+
+**Default**: 100
+
+### autoRecoveryDaemonEnabled
+
+Whether the bookie itself can start auto-recovery service.
+
+**Default**: true
+
+### lostBookieRecoveryDelay
+
+How long to wait, in seconds, before starting auto recovery of a lost bookie.
+
+**Default**: 0
+
+### gcWaitTime
+
+How long the interval to trigger next garbage collection, in milliseconds. Since garbage collection is running in background, too frequent gc will heart performance. It is better to give a higher number of gc interval if there is enough disk capacity.
+
+**Default**: 900000
+
+### gcOverreplicatedLedgerWaitTime
+
+How long the interval to trigger next garbage collection of overreplicated ledgers, in milliseconds. This should not be run very frequently since we read the metadata for all the ledgers on the bookie from zk.
+
+**Default**: 86400000
+
+### flushInterval
+
+How long the interval to flush ledger index pages to disk, in milliseconds. Flushing index files will introduce much random disk I/O. If separating journal dir and ledger dirs each on different devices, flushing would not affect performance. But if putting journal dir and ledger dirs on same device, performance degrade significantly on too frequent flushing. You can consider increment flush interval to get better performance, but you need to pay more time on bookie server restart after failure.
+
+**Default**: 60000
+
+### bookieDeathWatchInterval
+
+Interval to watch whether bookie is dead or not, in milliseconds
+
+**Default**: 1000
+
+### allowStorageExpansion
+
+Allow the bookie storage to expand. Newly added ledger and index dirs must be empty.
+
+**Default**: false
+
+### zkServers
+
+A list of one of more servers on which zookeeper is running. The server list can be comma separated values, for example: zkServers=zk1:2181,zk2:2181,zk3:2181.
+
+**Default**: localhost:2181
+
+### zkTimeout
+
+ZooKeeper client session timeout in milliseconds Bookie server will exit if it received SESSION_EXPIRED because it was partitioned off from ZooKeeper for more than the session timeout JVM garbage collection, disk I/O will cause SESSION_EXPIRED. Increment this value could help avoiding this issue
+
+**Default**: 30000
+
+### zkRetryBackoffStartMs
+
+The start time that the Zookeeper client backoff retries in milliseconds.
+
+**Default**: 1000
+
+### zkRetryBackoffMaxMs
+
+The maximum time that the Zookeeper client backoff retries in milliseconds.
+
+**Default**: 10000
+
+### zkEnableSecurity
+
+Set ACLs on every node written on ZooKeeper, allowing users to read and write BookKeeper metadata stored on ZooKeeper. In order to make ACLs work you need to setup ZooKeeper JAAS authentication. All the bookies and Client need to share the same user, and this is usually done using Kerberos authentication. See ZooKeeper documentation.
+
+**Default**: false
+
+### httpServerEnabled
+
+The flag enables/disables starting the admin http server.
+
+**Default**: false
+
+### httpServerPort
+
+The HTTP server port to listen on. By default, the value is `8080`. If you want to keep it consistent with the Prometheus stats provider, you can set it to `8000`.
+
+**Default**: 8080
+
+### httpServerClass
+
+The http server class.
+
+**Default**: org.apache.bookkeeper.http.vertx.VertxHttpServer
+
+### serverTcpNoDelay
+
+This settings is used to enabled/disabled Nagle’s algorithm, which is a means of improving the efficiency of TCP/IP networks by reducing the number of packets that need to be sent over the network. If you are sending many small messages, such that more than one can fit in a single IP packet, setting server.tcpnodelay to false to enable Nagle algorithm can provide better performance.
+
+**Default**: true
+
+### serverSockKeepalive
+
+This setting is used to send keep-alive messages on connection-oriented sockets.
+
+**Default**: true
+
+### serverTcpLinger
+
+The socket linger timeout on close. When enabled, a close or shutdown will not return until all queued messages for the socket have been successfully sent or the linger timeout has been reached. Otherwise, the call returns immediately and the closing is done in the background.
+
+**Default**: 0
+
+### byteBufAllocatorSizeMax
+
+The maximum buf size of the received ByteBuf allocator.
+
+**Default**: 1048576
+
+### nettyMaxFrameSizeBytes
+
+The maximum netty frame size in bytes. Any message received larger than this will be rejected.
+
+**Default**: 5253120
+
+### openFileLimit
+
+Max number of ledger index files could be opened in bookie server If number of ledger index files reaches this limitation, bookie server started to swap some ledgers from memory to disk. Too frequent swap will affect performance. You can tune this number to gain performance according your requirements.
+
+**Default**: 0
+
+### pageSize
+
+Size of a index page in ledger cache, in bytes A larger index page can improve performance writing page to disk, which is efficient when you have small number of ledgers and these ledgers have similar number of entries. If you have large number of ledgers and each ledger has fewer entries, smaller index page would improve memory usage.
+
+**Default**: 8192
+
+### pageLimit
+
+How many index pages provided in ledger cache If number of index pages reaches this limitation, bookie server starts to swap some ledgers from memory to disk. You can increment this value when you found swap became more frequent. But make sure pageLimit\*pageSize should not more than JVM max memory limitation, otherwise you would got OutOfMemoryException. In general, incrementing pageLimit, using smaller index page would gain better performance in lager number of ledgers with fewer entri [...]
+
+**Default**: 0
+
+### readOnlyModeEnabled
+
+If all ledger directories configured are full, then support only read requests for clients. If "readOnlyModeEnabled=true" then on all ledger disks full, bookie will be converted to read-only mode and serve only read requests. Otherwise the bookie will be shutdown. By default this will be disabled.
+
+**Default**: true
+
+### diskUsageThreshold
+
+For each ledger dir, maximum disk space which can be used. Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will be written to that partition. If all ledger dir partitions are full, then bookie will turn to readonly mode if ‘readOnlyModeEnabled=true’ is set, else it will shutdown. Valid values should be in between 0 and 1 (exclusive).
+
+**Default**: 0.95
+
+### diskCheckInterval
+
+Disk check interval in milli seconds, interval to check the ledger dirs usage.
+
+**Default**: 10000
+
+### auditorPeriodicCheckInterval
+
+Interval at which the auditor will do a check of all ledgers in the cluster. By default this runs once a week. The interval is set in seconds. To disable the periodic check completely, set this to 0. Note that periodic checking will put extra load on the cluster, so it should not be run more frequently than once a day.
+
+**Default**: 604800
+
+### sortedLedgerStorageEnabled
+
+Whether sorted-ledger storage is enabled.
+
+**Default**: true
+
+### auditorPeriodicBookieCheckInterval
+
+The interval between auditor bookie checks. The auditor bookie check, checks ledger metadata to see which bookies should contain entries for each ledger. If a bookie which should contain entries is unavailable, thea the ledger containing that entry is marked for recovery. Setting this to 0 disabled the periodic check. Bookie checks will still run when a bookie fails. The interval is specified in seconds.
+
+**Default**: 86400
+
+### numAddWorkerThreads
+
+The number of threads that should handle write requests. if zero, the writes would be handled by netty threads directly.
+
+**Default**: 0
+
+### numReadWorkerThreads
+
+The number of threads that should handle read requests. if zero, the reads would be handled by netty threads directly.
+
+**Default**: 8
+
+### numHighPriorityWorkerThreads
+
+The umber of threads that should be used for high priority requests (i.e. recovery reads and adds, and fencing).
+
+**Default**: 8
+
+### maxPendingReadRequestsPerThread
+
+If read workers threads are enabled, limit the number of pending requests, to avoid the executor queue to grow indefinitely.
+
+**Default**: 2500
+
+### maxPendingAddRequestsPerThread
+
+The limited number of pending requests, which is used to avoid the executor queue to grow indefinitely when add workers threads are enabled.
+
+**Default**: 10000
+
+### isForceGCAllowWhenNoSpace
+
+Whether force compaction is allowed when the disk is full or almost full. Forcing GC could get some space back, but could also fill up the disk space more quickly. This is because new log files are created before GC, while old garbage log files are deleted after GC.
+
+**Default**: false
+
+### verifyMetadataOnGC
+
+True if the bookie should double check `readMetadata` prior to GC.
+
+**Default**: false
+
+### flushEntrylogBytes
+
+Entry log flush interval in bytes. Flushing in smaller chunks but more frequently reduces spikes in disk I/O. Flushing too frequently may also affect performance negatively.
+
+**Default**: 268435456
+
+### readBufferSizeBytes
+
+The number of bytes we should use as capacity for BufferedReadChannel.
+
+**Default**: 4096
+
+### writeBufferSizeBytes
+
+The number of bytes used as capacity for the write buffer
+
+**Default**: 65536
+
+### useHostNameAsBookieID
+
+Whether the bookie should use its hostname to register with the coordination service (e.g.: zookeeper service). When false, bookie will use its ip address for the registration.
+
+**Default**: false
+
+### bookieId
+
+If you want to custom a bookie ID or use a dynamic network address for the bookie, you can set the `bookieId`. <br /><br />Bookie advertises itself using the `bookieId` rather than the `BookieSocketAddress` (`hostname:port` or `IP:port`). If you set the `bookieId`, then the `useHostNameAsBookieID` does not take effect.<br /><br />The `bookieId` is a non-empty string that can contain ASCII digits and letters ([a-zA-Z9-0]), colons, dashes, and dots. <br /><br />For more information about ` [...]
+
+**Default**: N/A
+
+### allowEphemeralPorts
+
+Whether the bookie is allowed to use an ephemeral port (port 0) as its server port. By default, an ephemeral port is not allowed. Using an ephemeral port as the service port usually indicates a configuration error. However, in unit tests, using an ephemeral port will address port conflict problems and allow running tests in parallel.
+
+**Default**: false
+
+### enableLocalTransport
+
+Whether the bookie is allowed to listen for the BookKeeper clients executed on the local JVM.
+
+**Default**: false
+
+### disableServerSocketBind
+
+Whether the bookie is allowed to disable bind on network interfaces. This bookie will be available only to BookKeeper clients executed on the local JVM.
+
+**Default**: false
+
+### skipListArenaChunkSize
+
+The number of bytes that we should use as chunk allocation for `org.apache.bookkeeper.bookie.SkipListArena`.
+
+**Default**: 4194304
+
+### skipListArenaMaxAllocSize
+
+The maximum size that we should allocate from the skiplist arena. Allocations larger than this should be allocated directly by the VM to avoid fragmentation.
+
+**Default**: 131072
+
+### bookieAuthProviderFactoryClass
+
+The factory class name of the bookie authentication provider. If this is null, then there is no authentication.
+
+**Default**: null
+
+### statsProviderClass
+
+ [...]
+
+ [...]
+
+### prometheusStatsHttpPort
+
+ [...]
+
+ [...]
+
+### dbStorage_writeCacheMaxSizeMb
+
+Size of Write Cache. Memory is allocated from JVM direct memory. Write cache is used to buffer entries before flushing into the entry log. For good performance, it should be big enough to hold a substantial amount of entries in the flush interval.
+
+**Default**: 25% of direct memory
+
+### dbStorage_readAheadCacheMaxSizeMb
+
+Size of Read cache. Memory is allocated from JVM direct memory. This read cache is pre-filled doing read-ahead whenever a cache miss happens. By default, it is allocated to 25% of the available direct memory.
+
+**Default**: N/A
+
+### dbStorage_readAheadCacheBatchSize
+
+How many entries to pre-fill in cache after a read cache miss
+
+**Default**: 1000
+
+### dbStorage_rocksDB_blockCacheSize
+
+Size of RocksDB block-cache. For best performance, this cache should be big enough to hold a significant portion of the index database which can reach ~2GB in some cases. By default, it uses 10% of direct memory.
+
+**Default**: N/A
+
+### dbStorage_rocksDB_writeBufferSizeMB
+
+**Default**: 64
+
+### dbStorage_rocksDB_sstSizeInMB
+
+**Default**: 64
+
+### dbStorage_rocksDB_blockSize
+
+**Default**: 65536
+
+### dbStorage_rocksDB_bloomFilterBitsPerKey
+
+**Default**: 10
+
+### dbStorage_rocksDB_numLevels
+
+**Default**: -1
+
+### dbStorage_rocksDB_numFilesInLevel0
+
+**Default**: 4
+
+### dbStorage_rocksDB_maxSizeInLevel1MB
+
+**Default**: 256
diff --git a/static/reference/2.11.x/config/reference-configuration-broker.md b/static/reference/2.11.x/config/reference-configuration-broker.md
new file mode 100644
index 00000000000..750c9d8bbf4
--- /dev/null
+++ b/static/reference/2.11.x/config/reference-configuration-broker.md
@@ -0,0 +1,5209 @@
+# Broker
+
+## Required
+### clusterName
+Name of the cluster to which this broker belongs to
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+## Optional
+### topicFactoryClassName
+Factory class-name to create topic with custom workflow
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `true`
+
+**Category**:
+
+### zookeeperSessionExpiredPolicy
+There are two policies to apply when broker metadata session expires: session expired happens, "shutdown" or "reconnect".
+
+ With "shutdown", the broker will be restarted.
+
+ With "reconnect", the broker will keep serving the topics, while attempting to recreate a new session.
+
+**Type**: `org.apache.pulsar.broker.MetadataSessionExpiredPolicy`
+
+**Default**: `reconnect`
+
+**Dynamic**: `false`
+
+**Category**:
+
+### authenticationEnabled
+Enable authentication
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Authentication
+
+### authenticationProviders
+Authentication provider name list, which is a list of class names
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+**Dynamic**: `false`
+
+**Category**: Authentication
+
+### authenticationRefreshCheckSeconds
+Interval of time for checking for expired authentication credentials
+
+**Type**: `int`
+
+**Default**: `60`
+
+**Dynamic**: `false`
+
+**Category**: Authentication
+
+### brokerClientAuthenticationParameters
+Authentication parameters of the authentication plugin the broker is using to connect to other brokers
+
+**Type**: `java.lang.String`
+
+**Default**: ``
+
+**Dynamic**: `true`
+
+**Category**: Authentication
+
+### brokerClientAuthenticationPlugin
+Authentication settings of the broker itself.
+
+Used when the broker connects to other brokers, either in same or other clusters. Default uses plugin which disables authentication
+
+**Type**: `java.lang.String`
+
+**Default**: `org.apache.pulsar.client.impl.auth.AuthenticationDisabled`
+
+**Dynamic**: `true`
+
+**Category**: Authentication
+
+### brokerClientCertificateFilePath
+TLS certificate file for internal client, used by the internal client to authenticate with Pulsar brokers
+
+**Type**: `java.lang.String`
+
+**Default**: ``
+
+**Dynamic**: `false`
+
+**Category**: Authentication
+
+### brokerClientKeyFilePath
+TLS private key file for internal client, used by the internal client to authenticate with Pulsar brokers
+
+**Type**: `java.lang.String`
+
+**Default**: ``
+
+**Dynamic**: `false`
+
+**Category**: Authentication
+
+### brokerClientTrustCertsFilePath
+TLS trusted certificate file for internal client, used by the internal client to authenticate with Pulsar brokers
+
+**Type**: `java.lang.String`
+
+**Default**: ``
+
+**Dynamic**: `false`
+
+**Category**: Authentication
+
+### anonymousUserRole
+When this parameter is not empty, unauthenticated users perform as anonymousUserRole
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Authorization
+
+### authenticateOriginalAuthData
+If this flag is set then the broker authenticates the original Auth data else it just accepts the originalPrincipal and authorizes it (if required)
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Authorization
+
+### authorizationAllowWildcardsMatching
+Allow wildcard matching in authorization
+
+(wildcard matching only applicable if wildcard-char: * presents at first or last position eg: *.pulsar.service, pulsar.service.*)
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Authorization
+
+### authorizationEnabled
+Enforce authorization
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Authorization
+
+### authorizationProvider
+Authorization provider fully qualified class-name
+
+**Type**: `java.lang.String`
+
+**Default**: `org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider`
+
+**Dynamic**: `false`
+
+**Category**: Authorization
+
+### proxyRoles
+Role names that are treated as `proxy roles`.
+
+If the broker sees a request with role as proxyRoles - it will demand to see the original client role or certificate.
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+**Dynamic**: `false`
+
+**Category**: Authorization
+
+### superUserRoles
+Role names that are treated as `super-user`, meaning they will be able to do all admin operations and publish/consume from all topics
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+**Dynamic**: `true`
+
+**Category**: Authorization
+
+### additionalServletDirectory
+The directory to locate broker additional servlet
+
+**Type**: `java.lang.String`
+
+**Default**: `./brokerAdditionalServlet`
+
+**Dynamic**: `false`
+
+**Category**: Broker Plugin
+
+### additionalServlets
+List of broker additional servlet to load, which is a list of broker additional servlet names
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+**Dynamic**: `false`
+
+**Category**: Broker Plugin
+
+### functionsWorkerEnablePackageManagement
+Flag indicates enabling or disabling function worker using unified PackageManagement service.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Functions
+
+### functionsWorkerEnabled
+Flag indicates enabling or disabling function worker on brokers
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Functions
+
+### functionsWorkerServiceNarPackage
+The nar package for the function worker service
+
+**Type**: `java.lang.String`
+
+**Default**: ``
+
+**Dynamic**: `false`
+
+**Category**: Functions
+
+### disableHttpDebugMethods
+If true, the broker will reject all HTTP requests using the TRACE and TRACK verbs.
+ This setting may be necessary if the broker is deployed into an environment that uses http port
+ scanning and flags web servers allowing the TRACE method as insecure.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: HTTP
+
+### httpMaxRequestSize
+If \>0, it will reject all HTTP requests with bodies larged than the configured limit
+
+**Type**: `long`
+
+**Default**: `-1`
+
+**Dynamic**: `false`
+
+**Category**: HTTP
+
+### httpRequestsFailOnUnknownPropertiesEnabled
+Admin API fail on unknown request parameter in request-body. see PIP-179. Default false.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `true`
+
+**Category**: HTTP
+
+### httpRequestsLimitEnabled
+Enable the enforcement of limits on the incoming HTTP requests
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: HTTP
+
+### httpRequestsMaxPerSecond
+Max HTTP requests per seconds allowed. The excess of requests will be rejected with HTTP code 429 (Too many requests)
+
+**Type**: `double`
+
+**Default**: `100.0`
+
+**Dynamic**: `false`
+
+**Category**: HTTP
+
+### brokerClientSslProvider
+The TLS Provider used by internal client to authenticate with other Pulsar brokers
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### brokerClientTlsCiphers
+Specify the tls cipher the internal client will use to negotiate during TLS Handshake (a comma-separated list of ciphers).
+
+Examples:- [TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256].
+ used by the internal client to authenticate with Pulsar brokers
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### brokerClientTlsEnabledWithKeyStore
+Whether internal client use KeyStore type to authenticate with other Pulsar brokers
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### brokerClientTlsKeyStore
+TLS KeyStore path for internal client, used by the internal client to authenticate with Pulsar brokers
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### brokerClientTlsKeyStorePassword
+TLS KeyStore password for internal client, used by the internal client to authenticate with Pulsar brokers
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### brokerClientTlsKeyStoreType
+TLS KeyStore type configuration for internal client: JKS, PKCS12, used by the internal client to authenticate with Pulsar brokers
+
+**Type**: `java.lang.String`
+
+**Default**: `JKS`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### brokerClientTlsProtocols
+Specify the tls protocols the broker will use to negotiate during TLS handshake (a comma-separated list of protocol names).
+
+Examples:- [TLSv1.3, TLSv1.2]
+ used by the internal client to authenticate with Pulsar brokers
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### brokerClientTlsTrustStore
+TLS TrustStore path for internal client, used by the internal client to authenticate with Pulsar brokers
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### brokerClientTlsTrustStorePassword
+TLS TrustStore password for internal client, used by the internal client to authenticate with Pulsar brokers
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### brokerClientTlsTrustStoreType
+TLS TrustStore type configuration for internal client: JKS, PKCS12 used by the internal client to authenticate with Pulsar brokers
+
+**Type**: `java.lang.String`
+
+**Default**: `JKS`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### tlsEnabledWithKeyStore
+Enable TLS with KeyStore type configuration in broker
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### tlsKeyStore
+TLS KeyStore path in broker
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### tlsKeyStorePassword
+TLS KeyStore password for broker
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### tlsKeyStoreType
+TLS KeyStore type configuration in broker: JKS, PKCS12
+
+**Type**: `java.lang.String`
+
+**Default**: `JKS`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### tlsProvider
+Specify the TLS provider for the broker service:
+When using TLS authentication with CACert, the valid value is either OPENSSL or JDK.
+When using TLS authentication with KeyStore, available values can be SunJSSE, Conscrypt and etc.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### tlsTrustStore
+TLS TrustStore path in broker
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### tlsTrustStorePassword
+TLS TrustStore password for broker, null means empty password.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### tlsTrustStoreType
+TLS TrustStore type configuration in broker: JKS, PKCS12
+
+**Type**: `java.lang.String`
+
+**Default**: `JKS`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### defaultNamespaceBundleSplitAlgorithm
+Default algorithm name for namespace bundle split
+
+**Type**: `java.lang.String`
+
+**Default**: `range_equally_divide`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### flowOrQpsDifferenceThresholdPercentage
+In FlowOrQpsEquallyDivideBundleSplitAlgorithm, if msgRate \>= loadBalancerNamespaceBundleMaxMsgRate * (100 + flowOrQpsDifferenceThresholdPercentage)/100.0 or throughput \>= loadBalancerNamespaceBundleMaxBandwidthMbytes * (100 + flowOrQpsDifferenceThresholdPercentage)/100.0, execute split bundle
+
+**Type**: `int`
+
+**Default**: `10`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerAutoBundleSplitEnabled
+enable/disable automatic namespace bundle split
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerAutoUnloadSplitBundlesEnabled
+enable/disable automatic unloading of split bundles
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerAverageResourceUsageDifferenceThresholdPercentage
+Average resource usage difference threshold to determine a broker whether to be a best candidate in LeastResourceUsageWithWeight.(eg: broker1 with 10% resource usage with weight and broker2 with 30% and broker3 with 80% will have 40% average resource usage. The placement strategy can select broker1 and broker2 as best candidates.)
+
+**Type**: `int`
+
+**Default**: `10`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerBandwithInResourceWeight
+BandwithIn Resource Usage Weight
+
+**Type**: `double`
+
+**Default**: `1.0`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerBandwithOutResourceWeight
+BandwithOut Resource Usage Weight
+
+**Type**: `double`
+
+**Default**: `1.0`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerBrokerMaxTopics
+Usage threshold to allocate max number of topics to broker
+
+**Type**: `int`
+
+**Default**: `50000`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerBrokerOverloadedThresholdPercentage
+Usage threshold to determine a broker as over-loaded
+
+**Type**: `int`
+
+**Default**: `85`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerBrokerThresholdShedderPercentage
+Usage threshold to determine a broker whether to start threshold shedder
+
+**Type**: `int`
+
+**Default**: `10`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerBundleUnloadMinThroughputThreshold
+Bundle unload minimum throughput threshold (MB)
+
+**Type**: `double`
+
+**Default**: `10.0`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerCPUResourceWeight
+CPU Resource Usage Weight
+
+**Type**: `double`
+
+**Default**: `1.0`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerDirectMemoryResourceWeight
+Direct Memory Resource Usage Weight
+
+**Type**: `double`
+
+**Default**: `1.0`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerDistributeBundlesEvenlyEnabled
+enable/disable distribute bundles evenly
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerEnabled
+Enable load balancer
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `false`
+
+**Category**: Load Balancer
+
+### loadBalancerHistoryResourcePercentage
+Resource history Usage Percentage When adding new resource usage info
+
+**Type**: `double`
+
+**Default**: `0.9`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerHostUsageCheckIntervalMinutes
+Frequency of report to collect, in minutes
+
+**Type**: `int`
+
+**Default**: `1`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerLoadPlacementStrategy
+load balance placement strategy
+
+**Type**: `java.lang.String`
+
+**Default**: `org.apache.pulsar.broker.loadbalance.impl.LeastLongTermMessageRate`
+
+**Dynamic**: `false`
+
+**Category**: Load Balancer
+
+### loadBalancerLoadSheddingStrategy
+load balance load shedding strategy (It requires broker restart if value is changed using dynamic config). Default is ThresholdShedder since 2.10.0
+
+**Type**: `java.lang.String`
+
+**Default**: `org.apache.pulsar.broker.loadbalance.impl.ThresholdShedder`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerMemoryResourceWeight
+Memory Resource Usage Weight
+
+**Type**: `double`
+
+**Default**: `1.0`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerMsgRateDifferenceShedderThreshold
+Message-rate percentage threshold between highest and least loaded brokers for uniform load shedding. (eg: broker1 with 50K msgRate and broker2 with 30K msgRate will have 66% msgRate difference and load balancer can unload bundles from broker-1 to broker-2)
+
+**Type**: `double`
+
+**Default**: `50.0`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerMsgThroughputMultiplierDifferenceShedderThreshold
+Message-throughput threshold between highest and least loaded brokers for uniform load shedding. (eg: broker1 with 450MB msgRate and broker2 with 100MB msgRate will have 4.5 times msgThroughout difference and load balancer can unload bundles from broker-1 to broker-2)
+
+**Type**: `double`
+
+**Default**: `4.0`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerNamespaceBundleMaxBandwidthMbytes
+maximum bandwidth (in + out) in a bundle, otherwise bundle split will be triggered
+
+**Type**: `int`
+
+**Default**: `100`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerNamespaceBundleMaxMsgRate
+maximum msgRate (in + out) in a bundle, otherwise bundle split will be triggered
+
+**Type**: `int`
+
+**Default**: `30000`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerNamespaceBundleMaxSessions
+maximum sessions (producers + consumers) in a bundle, otherwise bundle split will be triggered(disable threshold check with value -1)
+
+**Type**: `int`
+
+**Default**: `1000`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerNamespaceBundleMaxTopics
+maximum topics in a bundle, otherwise bundle split will be triggered
+
+**Type**: `int`
+
+**Default**: `1000`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerNamespaceMaximumBundles
+maximum number of bundles in a namespace
+
+**Type**: `int`
+
+**Default**: `128`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerOverrideBrokerNicSpeedGbps
+Option to override the auto-detected network interfaces max speed
+
+**Type**: `java.util.Optional`
+
+**Default**: `Optional.empty`
+
+**Dynamic**: `false`
+
+**Category**: Load Balancer
+
+### loadBalancerReportUpdateMaxIntervalMinutes
+Min delay of load report to collect, in milli-seconds
+
+**Type**: `int`
+
+**Default**: `15`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerReportUpdateMinIntervalMillis
+maximum interval to update load report
+
+**Type**: `int`
+
+**Default**: `5000`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerReportUpdateThresholdPercentage
+Percentage of change to trigger load report update
+
+**Type**: `int`
+
+**Default**: `10`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerResourceQuotaUpdateIntervalMinutes
+Interval to flush dynamic resource quota to ZooKeeper
+
+**Type**: `int`
+
+**Default**: `15`
+
+**Dynamic**: `false`
+
+**Category**: Load Balancer
+
+### loadBalancerSheddingEnabled
+Enable/disable automatic bundle unloading for load-shedding
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerSheddingGracePeriodMinutes
+Prevent the same topics to be shed and moved to other broker more than once within this timeframe
+
+**Type**: `long`
+
+**Default**: `30`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerSheddingIntervalMinutes
+Load shedding interval.
+
+Broker periodically checks whether some traffic should be offload from some over-loaded broker to other under-loaded brokers
+
+**Type**: `int`
+
+**Default**: `1`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadManagerClassName
+Name of load manager to use
+
+**Type**: `java.lang.String`
+
+**Default**: `org.apache.pulsar.broker.loadbalance.impl.ModularLoadManagerImpl`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### lowerBoundarySheddingEnabled
+When [current usage < average usage - threshold], the broker with the highest load will be triggered to unload
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Load Balancer
+
+### maxUnloadBundleNumPerShedding
+For each uniform balanced unload, the maximum number of bundles that can be unloaded. The default value is -1, which means no limit
+
+**Type**: `int`
+
+**Default**: `-1`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### maxUnloadPercentage
+In the UniformLoadShedder strategy, the maximum unload ratio.
+
+**Type**: `double`
+
+**Default**: `0.2`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### minUnloadMessage
+In the UniformLoadShedder strategy, the minimum message that triggers unload.
+
+**Type**: `int`
+
+**Default**: `1000`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### minUnloadMessageThroughput
+In the UniformLoadShedder strategy, the minimum throughput that triggers unload.
+
+**Type**: `int`
+
+**Default**: `1048576`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### namespaceBundleUnloadingTimeoutMs
+Time to wait for the unloading of a namespace bundle
+
+**Type**: `long`
+
+**Default**: `60000`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### supportedNamespaceBundleSplitAlgorithms
+Supported algorithms name for namespace bundle split
+
+**Type**: `java.util.List`
+
+**Default**: `[range_equally_divide, topic_count_equally_divide, specified_positions_divide, flow_or_qps_equally_divide]`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### aggregatePublisherStatsByProducerName
+If true, aggregate publisher stats of PartitionedTopicStats by producerName
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Metrics
+
+### authenticateMetricsEndpoint
+Whether the '/metrics' endpoint requires authentication. Defaults to false.'authenticationEnabled' must also be set for this to take effect.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Metrics
+
+### exposeBundlesMetricsInPrometheus
+Enable expose the broker bundles metrics.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `true`
+
+**Category**: Metrics
+
+### exposeConsumerLevelMetricsInPrometheus
+If true, export consumer level metrics otherwise namespace level
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Metrics
+
+### exposeManagedCursorMetricsInPrometheus
+If true, export managed cursor metrics
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Metrics
+
+### exposeManagedLedgerMetricsInPrometheus
+If true, export managed ledger metrics (aggregated by namespace)
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `false`
+
+**Category**: Metrics
+
+### exposePreciseBacklogInPrometheus
+Enable expose the precise backlog stats.
+ Set false to use published counter and consumed counter to calculate,
+ this would be more efficient but may be inaccurate. Default is false.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Metrics
+
+### exposeProducerLevelMetricsInPrometheus
+If true, export producer level metrics otherwise namespace level
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Metrics
+
+### exposePublisherStats
+If true, export publisher stats when returning topics stats from the admin rest api
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `false`
+
+**Category**: Metrics
+
+### exposeSubscriptionBacklogSizeInPrometheus
+Enable expose the backlog size for each subscription when generating stats.
+ Locking is used for fetching the status so default to false.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Metrics
+
+### exposeTopicLevelMetricsInPrometheus
+If true, export topic level metrics otherwise namespace level
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `false`
+
+**Category**: Metrics
+
+### jvmGCMetricsLoggerClassName
+Classname of Pluggable JVM GC metrics logger that can log GC specific metrics
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Metrics
+
+### metricsBufferResponse
+If true, export buffered metrics
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Metrics
+
+### metricsServletTimeoutMs
+Time in milliseconds that metrics endpoint would time out. Default is 30s.
+ Increase it if there are a lot of topics to expose topic-level metrics.
+ Set it to 0 to disable timeout.
+
+**Type**: `long`
+
+**Default**: `30000`
+
+**Dynamic**: `false`
+
+**Category**: Metrics
+
+### splitTopicAndPartitionLabelInPrometheus
+Enable splitting topic and partition label in Prometheus.
+ If enabled, a topic name will split into 2 parts, one is topic name without partition index,
+ another one is partition index, e.g. (topic=xxx, partition=0).
+ If the topic is a non-partitioned topic, -1 will be used for the partition index.
+ If disabled, one label to represent the topic and partition, e.g. (topic=xxx-partition-0)
+ Default is false.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Metrics
+
+### statsUpdateFrequencyInSecs
+Stats update frequency in seconds
+
+**Type**: `int`
+
+**Default**: `60`
+
+**Dynamic**: `false`
+
+**Category**: Metrics
+
+### statsUpdateInitialDelayInSecs
+Stats update initial delay in seconds
+
+**Type**: `int`
+
+**Default**: `60`
+
+**Dynamic**: `false`
+
+**Category**: Metrics
+
+### enablePackagesManagement
+Enable the packages management service or not
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Packages Management
+
+### packagesManagementLedgerRootPath
+The bookkeeper ledger root path
+
+**Type**: `java.lang.String`
+
+**Default**: `/ledgers`
+
+**Dynamic**: `false`
+
+**Category**: Packages Management
+
+### packagesManagementStorageProvider
+The packages management service storage service provider
+
+**Type**: `java.lang.String`
+
+**Default**: `org.apache.pulsar.packages.management.storage.bookkeeper.BookKeeperPackagesStorageProvider`
+
+**Dynamic**: `false`
+
+**Category**: Packages Management
+
+### packagesReplicas
+When the packages storage provider is bookkeeper, you can use this configuration to
+control the number of replicas for storing the package
+
+**Type**: `int`
+
+**Default**: `1`
+
+**Dynamic**: `false`
+
+**Category**: Packages Management
+
+### activeConsumerFailoverDelayTimeMillis
+How long to delay rewinding cursor and dispatching messages when active consumer is changed
+
+**Type**: `int`
+
+**Default**: `1000`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### backlogQuotaCheckEnabled
+Enable backlog quota check. Enforces actions on topic when the quota is reached
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### backlogQuotaCheckIntervalInSeconds
+How often to check for topics that have reached the quota. It only takes effects when `backlogQuotaCheckEnabled` is true
+
+**Type**: `int`
+
+**Default**: `60`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### backlogQuotaDefaultLimitBytes
+Default per-topic backlog quota limit by size, less than 0 means no limitation. default is -1. Increase it if you want to allow larger msg backlog
+
+**Type**: `long`
+
+**Default**: `-1`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### backlogQuotaDefaultLimitGB
+@deprecated - Use backlogQuotaDefaultLimitByte instead.
+
+**Type**: `double`
+
+**Default**: `-1.0`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### backlogQuotaDefaultLimitSecond
+Default per-topic backlog quota limit by time in second, less than 0 means no limitation. default is -1. Increase it if you want to allow larger msg backlog
+
+**Type**: `int`
+
+**Default**: `-1`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### backlogQuotaDefaultRetentionPolicy
+Default backlog quota retention policy. Default is producer_request_hold
+
+'producer_request_hold' Policy which holds producer's send request until theresource becomes available (or holding times out)
+'producer_exception' Policy which throws javax.jms.ResourceAllocationException to the producer
+'consumer_backlog_eviction' Policy which evicts the oldest message from the slowest consumer's backlog
+
+**Type**: `org.apache.pulsar.common.policies.data.BacklogQuota.RetentionPolicy`
+
+**Default**: `producer_request_hold`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### brokerDeduplicationEnabled
+Set the default behavior for message deduplication in the broker.
+
+This can be overridden per-namespace. If enabled, broker will reject messages that were already stored in the topic
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### brokerDeduplicationEntriesInterval
+Number of entries after which a dedup info snapshot is taken.
+
+A bigger interval will lead to less snapshots being taken though it would increase the topic recovery time, when the entries published after the snapshot need to be replayed
+
+**Type**: `int`
+
+**Default**: `1000`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### brokerDeduplicationMaxNumberOfProducers
+Maximum number of producer information that it's going to be persisted for deduplication purposes
+
+**Type**: `int`
+
+**Default**: `10000`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### brokerDeduplicationProducerInactivityTimeoutMinutes
+Time of inactivity after which the broker will discard the deduplication information relative to a disconnected producer. Default is 6 hours.
+
+**Type**: `int`
+
+**Default**: `360`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### brokerDeduplicationSnapshotFrequencyInSeconds
+How often is the thread pool scheduled to check whether a snapshot needs to be taken.(disable with value 0)
+
+**Type**: `int`
+
+**Default**: `120`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### brokerDeduplicationSnapshotIntervalSeconds
+If this time interval is exceeded, a snapshot will be taken.It will run simultaneously with `brokerDeduplicationEntriesInterval`
+
+**Type**: `java.lang.Integer`
+
+**Default**: `120`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### brokerDeleteInactivePartitionedTopicMetadataEnabled
+Metadata of inactive partitioned topic will not be automatically cleaned up by default.
+Note: If `allowAutoTopicCreation` and this option are enabled at the same time,
+it may appear that a partitioned topic has just been deleted but is automatically created as a non-partitioned topic.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### brokerDeleteInactiveTopicsEnabled
+Enable the deletion of inactive topics.
+If only enable this option, will not clean the metadata of partitioned topic.
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### brokerDeleteInactiveTopicsFrequencySeconds
+How often to check for inactive topics
+
+**Type**: `int`
+
+**Default**: `60`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### brokerDeleteInactiveTopicsMaxInactiveDurationSeconds
+Max duration of topic inactivity in seconds, default is not present
+If not present, 'brokerDeleteInactiveTopicsFrequencySeconds' will be used
+Topics that are inactive for longer than this value will be deleted
+
+**Type**: `java.lang.Integer`
+
+**Default**: `null`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### brokerDeleteInactiveTopicsMode
+Set the inactive topic delete mode. Default is delete_when_no_subscriptions
+'delete_when_no_subscriptions' mode only delete the topic which has no subscriptions and no active producers
+'delete_when_subscriptions_caught_up' mode only delete the topic that all subscriptions has no backlogs(caught up) and no active producers/consumers
+
+**Type**: `org.apache.pulsar.common.policies.data.InactiveTopicDeleteMode`
+
+**Default**: `delete_when_no_subscriptions`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### brokerMaxConnections
+The maximum number of connections in the broker. If it exceeds, new connections are rejected.
+
+**Type**: `int`
+
+**Default**: `0`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### brokerMaxConnectionsPerIp
+The maximum number of connections per IP. If it exceeds, new connections are rejected.
+
+**Type**: `int`
+
+**Default**: `0`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### defaultNumberOfNamespaceBundles
+When a namespace is created without specifying the number of bundle, this value will be used as the default
+
+**Type**: `int`
+
+**Default**: `4`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### defaultRetentionSizeInMB
+Default retention size. 0 means retention is disabled. -1 means data is not removed by size quota
+
+**Type**: `int`
+
+**Default**: `0`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### defaultRetentionTimeInMinutes
+Default message retention time. 0 means retention is disabled. -1 means data is not removed by time quota
+
+**Type**: `int`
+
+**Default**: `0`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### dispatchThrottlingOnBatchMessageEnabled
+Apply dispatch rate limiting on batch message instead individual messages with in batch message. (Default is disabled)
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### dispatchThrottlingOnNonBacklogConsumerEnabled
+Default dispatch-throttling is disabled for consumers which already caught-up with published messages and don't have backlog. This enables dispatch-throttling for non-backlog consumers as well.
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### dispatchThrottlingRatePerReplicatorInByte
+Default number of message-bytes dispatching throttling-limit for every replicator in replication.
+
+Using a value of 0, is disabling replication message-byte dispatch-throttling
+
+**Type**: `long`
+
+**Default**: `0`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### dispatchThrottlingRatePerReplicatorInMsg
+Default number of message dispatching throttling-limit for every replicator in replication.
+
+Using a value of 0, is disabling replication message dispatch-throttling
+
+**Type**: `int`
+
+**Default**: `0`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### dispatchThrottlingRatePerSubscriptionInByte
+Default number of message-bytes dispatching throttling-limit for a subscription.
+
+Using a value of 0, is disabling default message-byte dispatch-throttling.
+
+**Type**: `long`
+
+**Default**: `0`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### dispatchThrottlingRatePerSubscriptionInMsg
+Default number of message dispatching throttling-limit for a subscription.
+
+Using a value of 0, is disabling default message dispatch-throttling.
+
+**Type**: `int`
+
+**Default**: `0`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### dispatchThrottlingRatePerTopicInByte
+Default number of message-bytes dispatching throttling-limit for every topic.
+
+Using a value of 0, is disabling default message-byte dispatch-throttling
+
+**Type**: `long`
+
+**Default**: `0`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### dispatchThrottlingRatePerTopicInMsg
+Default number of message dispatching throttling-limit for every topic.
+
+Using a value of 0, is disabling default message dispatch-throttling
+
+**Type**: `int`
+
+**Default**: `0`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### dispatchThrottlingRateRelativeToPublishRate
+Dispatch rate-limiting relative to publish rate. (Enabling flag will make broker to dynamically update dispatch-rate relatively to publish-rate: throttle-dispatch-rate = (publish-rate + configured dispatch-rate)
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### enableBrokerSideSubscriptionPatternEvaluation
+Enables evaluating subscription pattern on broker side.
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### forceDeleteNamespaceAllowed
+Allow forced deletion of namespaces. Default is false.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### forceDeleteTenantAllowed
+Allow forced deletion of tenants. Default is false.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### isAllowAutoUpdateSchemaEnabled
+Allow schema to be auto updated at broker level. User can override this by 'is_allow_auto_update_schema' of namespace policy. This is enabled by default.
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### maxConsumerMetadataSize
+Maximum size of Consumer metadata
+
+**Type**: `int`
+
+**Default**: `1024`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### maxNamespacesPerTenant
+The maximum number of namespaces that each tenant can create.This configuration is not precise control, in a concurrent scenario, the threshold will be exceeded
+
+**Type**: `int`
+
+**Default**: `0`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### maxPendingPublishRequestsPerConnection
+Max pending publish requests per connection to avoid keeping large number of pending requests in memory. Default: 1000
+
+**Type**: `int`
+
+**Default**: `1000`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### maxTopicsPerNamespace
+Max number of topics allowed to be created in the namespace. When the topics reach the max topics of the namespace, the broker should reject the new topic request(include topic auto-created by the producer or consumer) until the number of connected consumers decrease. Using a value of 0, is disabling maxTopicsPerNamespace-limit check.
+
+**Type**: `int`
+
+**Default**: `0`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### maxUnackedMessagesPerBroker
+Max number of unacknowledged messages allowed per broker.
+
+ Once this limit reaches, broker will stop dispatching messages to all shared subscription which has higher number of unack messages until subscriptions start acknowledging messages back and unack count reaches to `limit/2`. Using a value of 0, is disabling unackedMessage-limit check and broker doesn't block dispatchers
+
+**Type**: `int`
+
+**Default**: `0`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### maxUnackedMessagesPerConsumer
+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 and unack count reaches to `maxUnackedMessagesPerConsumer/2`. Using a value of 0, it is disabling unackedMessage-limit check and consumer can receive messages without any restriction
+
+**Type**: `int`
+
+**Default**: `50000`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### maxUnackedMessagesPerSubscription
+Max number of unacknowledged messages allowed per shared subscription.
+
+ Broker will stop dispatching messages to all consumers of the subscription once this limit reaches until consumer starts acknowledging messages back and unack count reaches to `limit/2`. Using a value of 0, is disabling unackedMessage-limit check and dispatcher can dispatch messages without any restriction
+
+**Type**: `int`
+
+**Default**: `200000`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### maxUnackedMessagesPerSubscriptionOnBrokerBlocked
+Once broker reaches maxUnackedMessagesPerBroker limit, it blocks subscriptions which has higher unacked messages than this percentage limit and subscription will not receive any new messages until that subscription acks back `limit/2` messages
+
+**Type**: `double`
+
+**Default**: `0.16`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### messageExpiryCheckIntervalInMinutes
+How frequently to proactively check and purge expired messages
+
+**Type**: `int`
+
+**Default**: `5`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### preciseTimeBasedBacklogQuotaCheck
+Whether to enable precise time based backlog quota check. Enabling precise time based backlog quota check will cause broker to read first entry in backlog of the slowest cursor on a ledger which will mostly result in reading entry from BookKeeper's disk which can have negative impact on overall performance. Disabling precise time based backlog quota check will just use the timestamp indicating when a ledger was closed, which is of coarser granularity.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### resourceUsageTransportClassName
+Default policy for publishing usage reports to system topic is disabled.This enables publishing of usage reports
+
+**Type**: `java.lang.String`
+
+**Default**: ``
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### resourceUsageTransportPublishIntervalInSecs
+Default interval to publish usage reports if resourceUsagePublishToTopic is enabled.
+
+**Type**: `int`
+
+**Default**: `60`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### subscribeRatePeriodPerConsumerInSecond
+Rate period for {subscribeThrottlingRatePerConsumer}. Default is 30s.
+
+**Type**: `int`
+
+**Default**: `30`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### subscribeThrottlingRatePerConsumer
+Too many subscribe requests from a consumer can cause broker rewinding consumer cursors and loading data from bookies, hence causing high network bandwidth usage When the positive value is set, broker will throttle the subscribe requests for one consumer. Otherwise, the throttling will be disabled. The default value of this setting is 0 - throttling is disabled.
+
+**Type**: `int`
+
+**Default**: `0`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### subscriptionBacklogScanMaxEntries
+Maximum number of entries to process while scanning a subscription to calculate the accurate backlog
+
+**Type**: `long`
+
+**Default**: `10000`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### subscriptionBacklogScanMaxTimeMs
+Maximum time to spend while scanning a subscription to calculate the accurate backlog
+
+**Type**: `long`
+
+**Default**: `120000`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### subscriptionExpirationTimeMinutes
+How long to delete inactive subscriptions from last consuming. When it is 0, inactive subscriptions are not deleted automatically
+
+**Type**: `int`
+
+**Default**: `0`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### subscriptionExpiryCheckIntervalInMinutes
+How frequently to proactively check and purge expired subscription
+
+**Type**: `int`
+
+**Default**: `5`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### subscriptionKeySharedConsistentHashingReplicaPoints
+On KeyShared subscriptions, number of points in the consistent-hashing ring. The higher the number, the more equal the assignment of keys to consumers
+
+**Type**: `int`
+
+**Default**: `100`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### subscriptionKeySharedEnable
+Enable Key_Shared subscription (default is enabled).
+@deprecated - use subscriptionTypesEnabled instead.
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### subscriptionKeySharedUseConsistentHashing
+On KeyShared subscriptions, with default AUTO_SPLIT mode, use splitting ranges or consistent hashing to reassign keys to new consumers (default is consistent hashing)
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### subscriptionPatternMaxLength
+Max length of subscription pattern
+
+**Type**: `int`
+
+**Default**: `50`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### subscriptionRedeliveryTrackerEnabled
+Enable subscription message redelivery tracker to send redelivery count to consumer (default is enabled)
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### subscriptionTypesEnabled
+Enable subscription types (default is all type enabled)
+
+**Type**: `java.util.Set`
+
+**Default**: `[Failover, Shared, Key_Shared, Exclusive]`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### topicPublisherThrottlingTickTimeMillis
+Tick time to schedule task that checks topic publish rate limiting across all topics Reducing to lower value can give more accuracy while throttling publish but it uses more CPU to perform frequent check. (Disable publish throttling with value 0)
+
+**Type**: `int`
+
+**Default**: `10`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### ttlDurationDefaultInSeconds
+Default ttl for namespaces if ttl is not already configured at namespace policies. (disable default-ttl with value 0)
+
+**Type**: `int`
+
+**Default**: `0`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### unblockStuckSubscriptionEnabled
+Broker periodically checks if subscription is stuck and unblock if flag is enabled. (Default is disabled)
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `true`
+
+**Category**: Policies
+
+### messagingProtocols
+List of messaging protocols to load, which is a list of protocol names
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+**Dynamic**: `false`
+
+**Category**: Protocols
+
+### protocolHandlerDirectory
+The directory to locate messaging protocol handlers
+
+**Type**: `java.lang.String`
+
+**Default**: `./protocols`
+
+**Dynamic**: `false`
+
+**Category**: Protocols
+
+### useSeparateThreadPoolForProtocolHandlers
+Use a separate ThreadPool for each Protocol Handler
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `false`
+
+**Category**: Protocols
+
+### brokerClientTlsEnabled
+Enable TLS when talking with other brokers in the same cluster (admin operation) or different clusters (replication)
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `true`
+
+**Category**: Replication
+
+### replicationConnectionsPerBroker
+Max number of connections to open for each broker in a remote cluster.
+
+More connections host-to-host lead to better throughput over high-latency links
+
+**Type**: `int`
+
+**Default**: `16`
+
+**Dynamic**: `false`
+
+**Category**: Replication
+
+### replicationMetricsEnabled
+Enable replication metrics
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `false`
+
+**Category**: Replication
+
+### replicationPolicyCheckDurationSeconds
+Duration to check replication policy to avoid replicator inconsistency due to missing ZooKeeper watch (disable with value 0)
+
+**Type**: `int`
+
+**Default**: `600`
+
+**Dynamic**: `false`
+
+**Category**: Replication
+
+### replicationProducerQueueSize
+Replicator producer queue size. When dynamically modified, it only takes effect for the newly added replicators
+
+**Type**: `int`
+
+**Default**: `1000`
+
+**Dynamic**: `true`
+
+**Category**: Replication
+
+### replicatorPrefix
+replicator prefix used for replicator producer name and cursor name
+
+**Type**: `java.lang.String`
+
+**Default**: `pulsar.repl`
+
+**Dynamic**: `false`
+
+**Category**: Replication
+
+### kinitCommand
+kerberos kinit command.
+
+**Type**: `java.lang.String`
+
+**Default**: `/usr/bin/kinit`
+
+**Dynamic**: `false`
+
+**Category**: SASL Authentication Provider
+
+### saslJaasClientAllowedIds
+This is a regexp, which limits the range of possible ids which can connect to the Broker using SASL.
+ Default value is: ".*pulsar.*", so only clients whose id contains 'pulsar' are allowed to connect.
+
+**Type**: `java.lang.String`
+
+**Default**: `.*pulsar.*`
+
+**Dynamic**: `false`
+
+**Category**: SASL Authentication Provider
+
+### saslJaasServerRoleTokenSignerSecretPath
+Path to file containing the secret to be used to SaslRoleTokenSigner
+The secret can be specified like:
+saslJaasServerRoleTokenSignerSecretPath=file:///my/saslRoleTokenSignerSecret.key.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: SASL Authentication Provider
+
+### saslJaasServerSectionName
+Service Principal, for login context name. Default value is "PulsarBroker".
+
+**Type**: `java.lang.String`
+
+**Default**: `PulsarBroker`
+
+**Dynamic**: `false`
+
+**Category**: SASL Authentication Provider
+
+### isSchemaValidationEnforced
+Enforce schema validation on following cases:
+
+ - if a producer without a schema attempts to produce to a topic with schema, the producer will be
+ failed to connect. PLEASE be carefully on using this, since non-java clients don't support schema.
+ if you enable this setting, it will cause non-java clients failed to produce.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Schema
+
+### schemaCompatibilityStrategy
+The schema compatibility strategy in broker level
+
+**Type**: `org.apache.pulsar.common.policies.data.SchemaCompatibilityStrategy`
+
+**Default**: `FULL`
+
+**Dynamic**: `false`
+
+**Category**: Schema
+
+### schemaRegistryCompatibilityCheckers
+The list compatibility checkers to be used in schema registry
+
+**Type**: `java.util.Set`
+
+**Default**: `[org.apache.pulsar.broker.service.schema.ProtobufNativeSchemaCompatibilityCheck, org.apache.pulsar.broker.service.schema.JsonSchemaCompatibilityCheck, org.apache.pulsar.broker.service.schema.AvroSchemaCompatibilityCheck]`
+
+**Dynamic**: `false`
+
+**Category**: Schema
+
+### schemaRegistryStorageClassName
+The schema storage implementation used by this broker
+
+**Type**: `java.lang.String`
+
+**Default**: `org.apache.pulsar.broker.service.schema.BookkeeperSchemaStorageFactory`
+
+**Dynamic**: `false`
+
+**Category**: Schema
+
+### systemTopicSchemaCompatibilityStrategy
+The schema compatibility strategy to use for system topics
+
+**Type**: `org.apache.pulsar.common.policies.data.SchemaCompatibilityStrategy`
+
+**Default**: `ALWAYS_COMPATIBLE`
+
+**Dynamic**: `false`
+
+**Category**: Schema
+
+### acknowledgmentAtBatchIndexLevelEnabled
+Whether to enable the acknowledge of batch local index
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### advertisedAddress
+Hostname or IP address the service advertises to the outside world. If not set, the value of `InetAddress.getLocalHost().getCanonicalHostName()` is used.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### advertisedListeners
+Used to specify multiple advertised listeners for the broker. The value must format as <listener_name\>:pulsar://<host\>:<port\>,multiple listeners should separate with commas.Do not use this configuration with advertisedAddress and brokerServicePort.The Default value is absent means use advertisedAddress and brokerServicePort.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### allowOverrideEntryFilters
+Whether allow topic level entry filters policies overrides broker configuration.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `true`
+
+**Category**: Server
+
+### autoShrinkForConsumerPendingAcksMap
+Whether to enable the automatic shrink of pendingAcks map, the default is false, which means it is not enabled. When there are a large number of share or key share consumers in the cluster, it can be enabled to reduce the memory consumption caused by pendingAcks.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### bindAddress
+Hostname or IP address the service binds on
+
+**Type**: `java.lang.String`
+
+**Default**: `0.0.0.0`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### bindAddresses
+Used to specify additional bind addresses for the broker. The value must format as <listener_name\>:<scheme\>://<host\>:<port\>, multiple bind addresses should be separated with commas. Associates each bind address with an advertised listener and protocol handler. Note that the brokerServicePort, brokerServicePortTls, webServicePort, and webServicePortTls properties define additional bindings.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### bootstrapNamespaces
+A comma-separated list of namespaces to bootstrap
+
+**Type**: `java.util.List`
+
+**Default**: `[]`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### brokerEntryMetadataInterceptors
+List of interceptors for entry metadata.
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### brokerEntryPayloadProcessors
+List of interceptors for payload processing.
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### brokerInterceptors
+List of broker interceptor to load, which is a list of broker interceptor names
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### brokerInterceptorsDirectory
+The directory to locate broker interceptors
+
+**Type**: `java.lang.String`
+
+**Default**: `./interceptors`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### brokerPublisherThrottlingMaxByteRate
+Max Rate(in 1 seconds) of Byte allowed to publish for a broker when broker publish rate limiting enabled. (Disable byte rate limit with value 0)
+
+**Type**: `long`
+
+**Default**: `0`
+
+**Dynamic**: `true`
+
+**Category**: Server
+
+### brokerPublisherThrottlingMaxMessageRate
+Max Rate(in 1 seconds) of Message allowed to publish for a broker when broker publish rate limiting enabled. (Disable message rate limit with value 0)
+
+**Type**: `int`
+
+**Default**: `0`
+
+**Dynamic**: `true`
+
+**Category**: Server
+
+### brokerPublisherThrottlingTickTimeMillis
+Tick time to schedule task that checks broker publish rate limiting across all topics Reducing to lower value can give more accuracy while throttling publish but it uses more CPU to perform frequent check. (Disable publish throttling with value 0)
+
+**Type**: `int`
+
+**Default**: `50`
+
+**Dynamic**: `true`
+
+**Category**: Server
+
+### brokerServiceCompactionMonitorIntervalInSeconds
+Interval between checks to see if topics with compaction policies need to be compacted
+
+**Type**: `int`
+
+**Default**: `60`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### brokerServiceCompactionPhaseOneLoopTimeInSeconds
+Timeout for the compaction phase one loop, If the execution time of the compaction phase one loop exceeds this time, the compaction will not proceed.
+
+**Type**: `long`
+
+**Default**: `30`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### brokerServiceCompactionThresholdInBytes
+The estimated backlog size is greater than this threshold, compression will be triggered.
+Using a value of 0, is disabling compression check.
+
+**Type**: `long`
+
+**Default**: `0`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### brokerServicePort
+The port for serving binary protobuf requests. If set, defines a server binding for bindAddress:brokerServicePort. The Default value is 6650.
+
+**Type**: `java.util.Optional`
+
+**Default**: `Optional[6650]`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### brokerServicePortTls
+The port for serving TLS-secured binary protobuf requests. If set, defines a server binding for bindAddress:brokerServicePortTls.
+
+**Type**: `java.util.Optional`
+
+**Default**: `Optional.empty`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### brokerShutdownTimeoutMs
+Time to wait for broker graceful shutdown. After this time elapses, the process will be killed
+
+**Type**: `long`
+
+**Default**: `60000`
+
+**Dynamic**: `true`
+
+**Category**: Server
+
+### clientLibraryVersionCheckEnabled
+Enable check for minimum allowed client library version
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `true`
+
+**Category**: Server
+
+### clusterMigrationCheckDurationSeconds
+Interval between checks to see if cluster is migrated and marks topic migrated if cluster is marked migrated. Disable with value 0. (Default disabled).
+
+**Type**: `int`
+
+**Default**: `0`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### configurationMetadataStoreUrl
+The metadata store URL for the configuration data. If empty, we fall back to use metadataStoreUrl
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### configurationMetadataSyncEventTopic
+Event topic to sync configuration-metadata between separate pulsar clusters on different cloud platforms.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `true`
+
+**Category**: Server
+
+### delayedDeliveryEnabled
+Whether to enable the delayed delivery for messages.
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### delayedDeliveryFixedDelayDetectionLookahead
+Size of the lookahead window to use when detecting if all the messages in the topic have a fixed delay. Default is 50,000. Setting the lookahead window to 0 will disable the logic to handle fixed delays in messages in a different way.
+
+**Type**: `long`
+
+**Default**: `50000`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### delayedDeliveryMaxNumBuckets
+The max number of delayed message index bucket, after reaching the max buckets limitation, the adjacent buckets will be merged.
+
+**Type**: `int`
+
+**Default**: `50`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### delayedDeliveryMaxTimeStepPerBucketSnapshotSegmentSeconds
+The delayed message index bucket time step(in seconds) in per bucket snapshot segment, after reaching the max time step limitation, the snapshot segment will be cut off.
+
+**Type**: `long`
+
+**Default**: `300`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### delayedDeliveryMinIndexCountPerBucket
+The delayed message index bucket min index count. When the index count of the current bucket is more than this value and all message indexes of current ledger have already been added to the tracker we will seal the bucket.
+
+**Type**: `long`
+
+**Default**: `50000`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### delayedDeliverySharedIndexEnabled
+Enable share the delayed message index across subscriptions
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### delayedDeliveryTickTimeMillis
+Control the tick time for when retrying on delayed delivery, affecting the accuracy of the delivery time compared to the scheduled time. Default is 1 second. Note that this time is used to configure the HashedWheelTimer's tick time for the InMemoryDelayedDeliveryTrackerFactory.
+
+**Type**: `long`
+
+**Default**: `1000`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### delayedDeliveryTrackerFactoryClassName
+Class name of the factory that implements the delayed deliver tracker.
+If value is "org.apache.pulsar.broker.delayed.BucketDelayedDeliveryTrackerFactory", will create bucket based delayed message index tracker.
+
+
+**Type**: `java.lang.String`
+
+**Default**: `org.apache.pulsar.broker.delayed.InMemoryDelayedDeliveryTrackerFactory`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### disableBrokerInterceptors
+Enable or disable the broker interceptor, which is only used for testing for now
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### dispatchThrottlingForFilteredEntriesEnabled
+Whether the broker should count filtered entries in dispatch rate limit calculations. When disabled, only messages sent to a consumer count towards a dispatch rate limit at the broker, topic, and subscription level. When enabled, messages filtered out due to entry filter logic are counted towards each relevant rate limit.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### dispatchThrottlingRateInByte
+Default bytes per second dispatch throttling-limit for whole broker. Using a value of 0, is disabling default message-byte dispatch-throttling
+
+**Type**: `long`
+
+**Default**: `0`
+
+**Dynamic**: `true`
+
+**Category**: Server
+
+### dispatchThrottlingRateInMsg
+Default messages per second dispatch throttling-limit for whole broker. Using a value of 0, is disabling default message-byte dispatch-throttling
+
+**Type**: `int`
+
+**Default**: `0`
+
+**Dynamic**: `true`
+
+**Category**: Server
+
+### dispatcherDispatchMessagesInSubscriptionThread
+Dispatch messages and execute broker side filters in a per-subscription thread
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `true`
+
+**Category**: Server
+
+### dispatcherEntryFilterRescheduledMessageDelay
+Time in milliseconds to delay the new delivery of a message when an EntryFilter returns RESCHEDULE.
+
+**Type**: `int`
+
+**Default**: `1000`
+
+**Dynamic**: `true`
+
+**Category**: Server
+
+### dispatcherMaxReadBatchSize
+Max number of entries to read from bookkeeper. By default it is 100 entries.
+
+**Type**: `int`
+
+**Default**: `100`
+
+**Dynamic**: `true`
+
+**Category**: Server
+
+### dispatcherMaxReadSizeBytes
+Max size in bytes of entries to read from bookkeeper. By default it is 5MB.
+
+**Type**: `int`
+
+**Default**: `5242880`
+
+**Dynamic**: `true`
+
+**Category**: Server
+
+### dispatcherMaxRoundRobinBatchSize
+Max number of entries to dispatch for a shared subscription. By default it is 20 entries.
+
+**Type**: `int`
+
+**Default**: `20`
+
+**Dynamic**: `true`
+
+**Category**: Server
+
+### dispatcherMinReadBatchSize
+Min number of entries to read from bookkeeper. By default it is 1 entries.When there is an error occurred on reading entries from bookkeeper, the broker will backoff the batch size to this minimum number.
+
+**Type**: `int`
+
+**Default**: `1`
+
+**Dynamic**: `true`
+
+**Category**: Server
+
+### dispatcherReadFailureBackoffInitialTimeInMs
+The read failure backoff initial time in milliseconds. By default it is 15s.
+
+**Type**: `int`
+
+**Default**: `15000`
+
+**Dynamic**: `true`
+
+**Category**: Server
+
+### dispatcherReadFailureBackoffMandatoryStopTimeInMs
+The read failure backoff mandatory stop time in milliseconds. By default it is 0s.
+
+**Type**: `int`
+
+**Default**: `0`
+
+**Dynamic**: `true`
+
+**Category**: Server
+
+### dispatcherReadFailureBackoffMaxTimeInMs
+The read failure backoff max time in milliseconds. By default it is 60s.
+
+**Type**: `int`
+
+**Default**: `60000`
+
+**Dynamic**: `true`
+
+**Category**: Server
+
+### enableBusyWait
+Option to enable busy-wait settings. Default is false. WARNING: This option will enable spin-waiting on executors and IO threads in order to reduce latency during context switches. The spinning will consume 100% CPU even when the broker is not doing any work. It is recommended to reduce the number of IO threads and BK client threads to only have few CPU cores busy.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### enableNamespaceIsolationUpdateOnTime
+Enable namespaceIsolation policy update take effect ontime or not, if set to ture, then the related namespaces will be unloaded after reset policy to make it take effect.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### enableNonPersistentTopics
+Enable broker to load non-persistent topics
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### enablePersistentTopics
+Enable broker to load persistent topics
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### enableReplicatedSubscriptions
+Enable tracking of replicated subscriptions state across clusters.
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### enableRunBookieAutoRecoveryTogether
+Enable to run bookie autorecovery along with broker
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### enableRunBookieTogether
+Enable to run bookie along with broker
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### encryptionRequireOnProducer
+Enforce producer to publish encrypted messages.(default disable).
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### entryFilterNames
+ Class name of pluggable entry filter that decides whether the entry needs to be filtered.You can use this class to decide which entries can be sent to consumers.Multiple names need to be separated by commas.
+
+**Type**: `java.util.List`
+
+**Default**: `[]`
+
+**Dynamic**: `true`
+
+**Category**: Server
+
+### entryFiltersDirectory
+ The directory for all the entry filter implementations.
+
+**Type**: `java.lang.String`
+
+**Default**: ``
+
+**Dynamic**: `true`
+
+**Category**: Server
+
+### exposingBrokerEntryMetadataToClientEnabled
+Enable or disable exposing broker entry metadata to client.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### failureDomainsEnabled
+Enable cluster's failure-domain which can distribute brokers into logical region
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `true`
+
+**Category**: Server
+
+### haProxyProtocolEnabled
+Enable or disable the proxy protocol.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### httpServerAcceptQueueSize
+Capacity for accept queue in the HTTP server Default is set to 8192.
+
+**Type**: `int`
+
+**Default**: `8192`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### httpServerThreadPoolQueueSize
+Capacity for thread pool queue in the HTTP server Default is set to 8192.
+
+**Type**: `int`
+
+**Default**: `8192`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### internalListenerName
+Used to specify the internal listener name for the broker.The listener name must contain in the advertisedListeners.The Default value is absent, the broker uses the first listener as the internal listener.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### isDelayedDeliveryDeliverAtTimeStrict
+When using the InMemoryDelayedDeliveryTrackerFactory (the default DelayedDeliverTrackerFactory), whether the deliverAt time is strictly followed. When false (default), messages may be sent to consumers before the deliverAt time by as much as the tickTimeMillis. This can reduce the overhead on the broker of maintaining the delayed index for a potentially very short time period. When true, messages will not be sent to consumer until the deliverAt time has passed, and they may be as late as [...]
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### keepAliveIntervalSeconds
+How often to check pulsar connection is still alive
+
+**Type**: `int`
+
+**Default**: `30`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### lazyCursorRecovery
+Whether to recover cursors lazily when trying to recover a managed ledger backing a persistent topic. It can improve write availability of topics.
+The caveat is now when recovered ledger is ready to write we're not sure if all old consumers last mark delete position can be recovered or not.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### maxConcurrentHttpRequests
+Max concurrent web requests
+
+**Type**: `int`
+
+**Default**: `1024`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### maxConcurrentLookupRequest
+Max number of concurrent lookup request broker allows to throttle heavy incoming lookup traffic
+
+**Type**: `int`
+
+**Default**: `50000`
+
+**Dynamic**: `true`
+
+**Category**: Server
+
+### maxConcurrentNonPersistentMessagePerConnection
+Max concurrent non-persistent message can be processed per connection
+
+**Type**: `int`
+
+**Default**: `1000`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### maxConcurrentTopicLoadRequest
+Max number of concurrent topic loading request broker allows to control number of zk-operations
+
+**Type**: `int`
+
+**Default**: `5000`
+
+**Dynamic**: `true`
+
+**Category**: Server
+
+### maxConsumersPerSubscription
+Max number of consumers allowed to connect to subscription.
+
+Once this limit reaches, Broker will reject new consumers until the number of connected consumers decrease. Using a value of 0, is disabling maxConsumersPerSubscription-limit check.
+
+**Type**: `int`
+
+**Default**: `0`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### maxConsumersPerTopic
+Max number of consumers allowed to connect to topic.
+
+Once this limit reaches, Broker will reject new consumers until the number of connected consumers decrease. Using a value of 0, is disabling maxConsumersPerTopic-limit check.
+
+**Type**: `int`
+
+**Default**: `0`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### maxHttpServerConnections
+Maximum number of inbound http connections. (0 to disable limiting)
+
+**Type**: `int`
+
+**Default**: `2048`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### maxMessagePublishBufferSizeInMB
+Max memory size for broker handling messages sending from producers.
+
+ If the processing message size exceed this value, broker will stop read data from the connection. The processing messages means messages are sends to broker but broker have not send response to client, usually waiting to write to bookies.
+
+ It's shared across all the topics running in the same broker.
+
+ Use -1 to disable the memory limitation. Default is 1/2 of direct memory.
+
+
+
+**Type**: `int`
+
+**Default**: `868`
+
+**Dynamic**: `true`
+
+**Category**: Server
+
+### maxMessageSize
+Max size of messages.
+
+**Type**: `int`
+
+**Default**: `5242880`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### maxNumPartitionsPerPartitionedTopic
+The number of partitions per partitioned topic.
+If try to create or update partitioned topics by exceeded number of partitions, then fail.
+
+**Type**: `int`
+
+**Default**: `0`
+
+**Dynamic**: `true`
+
+**Category**: Server
+
+### maxProducersPerTopic
+Max number of producers allowed to connect to topic.
+
+Once this limit reaches, Broker will reject new producers until the number of connected producers decrease. Using a value of 0, is disabling maxProducersPerTopic-limit check.
+
+**Type**: `int`
+
+**Default**: `0`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### maxPublishRatePerTopicInBytes
+Max Rate(in 1 seconds) of Byte allowed to publish for a topic when topic publish rate limiting enabled. (Disable byte rate limit with value 0)
+
+**Type**: `long`
+
+**Default**: `0`
+
+**Dynamic**: `true`
+
+**Category**: Server
+
+### maxPublishRatePerTopicInMessages
+Max Rate(in 1 seconds) of Message allowed to publish for a topic when topic publish rate limiting enabled. (Disable byte rate limit with value 0)
+
+**Type**: `int`
+
+**Default**: `0`
+
+**Dynamic**: `true`
+
+**Category**: Server
+
+### maxSameAddressConsumersPerTopic
+Max number of consumers with the same IP address allowed to connect to topic.
+
+Once this limit reaches, Broker will reject new consumers until the number of connected consumers with the same IP address decrease. Using a value of 0, is disabling maxSameAddressConsumersPerTopic-limit check.
+
+**Type**: `int`
+
+**Default**: `0`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### maxSameAddressProducersPerTopic
+Max number of producers with the same IP address allowed to connect to topic.
+
+Once this limit reaches, Broker will reject new producers until the number of connected producers with the same IP address decrease. Using a value of 0, is disabling maxSameAddressProducersPerTopic-limit check.
+
+**Type**: `int`
+
+**Default**: `0`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### maxSubscriptionsPerTopic
+Max number of subscriptions allowed to subscribe to topic.
+
+Once this limit reaches, broker will reject new subscription until the number of subscribed subscriptions decrease.
+ Using a value of 0, is disabling maxSubscriptionsPerTopic limit check.
+
+**Type**: `int`
+
+**Default**: `0`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### maxTenants
+The maximum number of tenants that each pulsar cluster can create.This configuration is not precise control, in a concurrent scenario, the threshold will be exceeded.
+
+**Type**: `int`
+
+**Default**: `0`
+
+**Dynamic**: `true`
+
+**Category**: Server
+
+### messagePublishBufferCheckIntervalInMillis
+Interval between checks to see if message publish buffer size is exceed the max message publish buffer size
+
+**Type**: `int`
+
+**Default**: `100`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### metadataStoreBatchingEnabled
+Whether we should enable metadata operations batching
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### metadataStoreBatchingMaxDelayMillis
+Maximum delay to impose on batching grouping
+
+**Type**: `int`
+
+**Default**: `5`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### metadataStoreBatchingMaxOperations
+Maximum number of operations to include in a singular batch
+
+**Type**: `int`
+
+**Default**: `1000`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### metadataStoreBatchingMaxSizeKb
+Maximum size of a batch
+
+**Type**: `int`
+
+**Default**: `128`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### metadataStoreCacheExpirySeconds
+Metadata store cache expiry time in seconds.
+
+**Type**: `int`
+
+**Default**: `300`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### metadataStoreConfigPath
+Configuration file path for local metadata store. It's supported by RocksdbMetadataStore for now.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### metadataStoreOperationTimeoutSeconds
+Metadata store operation timeout in seconds.
+
+**Type**: `int`
+
+**Default**: `30`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### metadataStoreSessionTimeoutMillis
+Metadata store session timeout in milliseconds.
+
+**Type**: `long`
+
+**Default**: `30000`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### metadataStoreUrl
+The metadata store URL.
+ Examples:
+ * zk:my-zk-1:2181,my-zk-2:2181,my-zk-3:2181
+ * my-zk-1:2181,my-zk-2:2181,my-zk-3:2181 (will default to ZooKeeper when the schema is not specified)
+ * zk:my-zk-1:2181,my-zk-2:2181,my-zk-3:2181/my-chroot-path (to add a ZK chroot path)
+
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### metadataSyncEventTopic
+Event topic to sync metadata between separate pulsar clusters on different cloud platforms.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `true`
+
+**Category**: Server
+
+### numAcceptorThreads
+Number of threads to use for Netty Acceptor. Default is set to `1`
+
+**Type**: `int`
+
+**Default**: `1`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### numCacheExecutorThreadPoolSize
+Number of thread pool size to use for pulsar zookeeper callback service.The cache executor thread pool is used for restarting global zookeeper session. Default is 10
+
+**Type**: `int`
+
+**Default**: `10`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### numExecutorThreadPoolSize
+Number of threads to use for pulsar broker service. The executor in thread pool will do basic broker operation like load/unload bundle, update managedLedgerConfig, update topic/subscription/replicator message dispatch rate, do leader election etc. Default is set to 20
+
+**Type**: `int`
+
+**Default**: `2`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### numHttpServerThreads
+Number of threads to use for HTTP requests processing Default is set to `2 * Runtime.getRuntime().availableProcessors()`
+
+**Type**: `int`
+
+**Default**: `8`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### numIOThreads
+Number of threads to use for Netty IO. Default is set to `2 * Runtime.getRuntime().availableProcessors()`
+
+**Type**: `int`
+
+**Default**: `4`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### numOrderedExecutorThreads
+Number of threads to use for orderedExecutor. The ordered executor is used to operate with zookeeper, such as init zookeeper client, get namespace policies from zookeeper etc. It also used to split bundle. Default is 8
+
+**Type**: `int`
+
+**Default**: `8`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### numWorkerThreadsForNonPersistentTopic
+Number of worker threads to serve non-persistent topic
+
+**Type**: `int`
+
+**Default**: `2`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### preciseDispatcherFlowControl
+Precise dispatcher flow control according to history message number of each entry
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `true`
+
+**Category**: Server
+
+### preciseTopicPublishRateLimiterEnable
+Enable precise rate limit for topic publish
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### preferLaterVersions
+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)
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `true`
+
+**Category**: Server
+
+### replicatedSubscriptionsSnapshotFrequencyMillis
+Frequency of snapshots for replicated subscriptions tracking.
+
+**Type**: `int`
+
+**Default**: `1000`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### replicatedSubscriptionsSnapshotMaxCachedPerSubscription
+Max number of snapshot to be cached per subscription.
+
+**Type**: `int`
+
+**Default**: `10`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### replicatedSubscriptionsSnapshotTimeoutSeconds
+Timeout for building a consistent snapshot for tracking replicated subscriptions state.
+
+**Type**: `int`
+
+**Default**: `30`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### retentionCheckIntervalInSeconds
+Check between intervals to see if consumed ledgers need to be trimmed
+
+**Type**: `int`
+
+**Default**: `120`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### skipBrokerShutdownOnOOM
+Flag to skip broker shutdown when broker handles Out of memory error
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `true`
+
+**Category**: Server
+
+### statusFilePath
+Path for the file used to determine the rotation status for the broker when responding to service discovery health checks
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### streamingDispatch
+Whether to use streaming read dispatcher. Currently is in preview and can be changed in subsequent release.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### strictBookieAffinityEnabled
+Enable or disable strict bookie affinity.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### systemTopicEnabled
+Enable or disable system topic.
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### topicFencingTimeoutSeconds
+If a topic remains fenced for this number of seconds, it will be closed forcefully.
+ If it is set to 0 or a negative number, the fenced topic will not be closed.
+
+**Type**: `int`
+
+**Default**: `0`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### topicLevelPoliciesEnabled
+Enable or disable topic level policies, topic level policies depends on the system topic, please enable the system topic first.
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### topicLoadTimeoutSeconds
+Amount of seconds to timeout when loading a topic. In situations with many geo-replicated clusters, this may need raised.
+
+**Type**: `long`
+
+**Default**: `60`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### transactionLogBatchedWriteEnabled
+Provide a mechanism allowing the Transaction Log Store to aggregate multiple records into a batched record and persist into a single BK entry. This will make Pulsar transactions work more efficiently, aka batched log. see: https://github.com/apache/pulsar/issues/15370. Default false
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `true`
+
+**Category**: Server
+
+### transactionLogBatchedWriteMaxDelayInMillis
+If enabled the feature that transaction log batch, this attribute means maximum wait time(in millis) for the first record in a batch, default 1 millisecond.
+
+**Type**: `int`
+
+**Default**: `1`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### transactionLogBatchedWriteMaxRecords
+If enabled the feature that transaction log batch, this attribute means maximum log records count in a batch, default 512.
+
+**Type**: `int`
+
+**Default**: `512`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### transactionLogBatchedWriteMaxSize
+If enabled the feature that transaction log batch, this attribute means bytes size in a batch, default 4m.
+
+**Type**: `int`
+
+**Default**: `4194304`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### transactionPendingAckBatchedWriteEnabled
+Provide a mechanism allowing the transaction pending ack Log Store to aggregate multiple records into a batched record and persist into a single BK entry. This will make Pulsar transactions work more efficiently, aka batched log. see: https://github.com/apache/pulsar/issues/15370. Default false.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `true`
+
+**Category**: Server
+
+### transactionPendingAckBatchedWriteMaxDelayInMillis
+If enabled the feature that transaction pending ack log batch, this attribute means maximum wait time(in millis) for the first record in a batch, default 1 millisecond.
+
+**Type**: `int`
+
+**Default**: `1`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### transactionPendingAckBatchedWriteMaxRecords
+If enabled the feature that transaction log batch, this attribute means maximum log records count in a batch, default 512.
+
+**Type**: `int`
+
+**Default**: `512`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### transactionPendingAckBatchedWriteMaxSize
+If enabled the feature that transaction pending ack log batch, this attribute means bytes size in a batch, default 4m.
+
+**Type**: `int`
+
+**Default**: `4194304`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### webServicePort
+The port for serving http requests
+
+**Type**: `java.util.Optional`
+
+**Default**: `Optional[8080]`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### webServicePortTls
+The port for serving https requests
+
+**Type**: `java.util.Optional`
+
+**Default**: `Optional.empty`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### webServiceTlsProvider
+Specify the TLS provider for the web service: SunJSSE, Conscrypt and etc.
+
+**Type**: `java.lang.String`
+
+**Default**: `Conscrypt`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### bookkeeperClientAuthenticationParameters
+Parameters for bookkeeper auth plugin
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperClientAuthenticationParametersName
+BookKeeper auth plugin implementation specifics parameters name and values
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperClientAuthenticationPlugin
+Authentication plugin to use when connecting to bookies
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperClientEnforceMinNumRacksPerWriteQuorum
+Enforces rack-aware bookie selection policy to pick bookies from 'bookkeeperClientMinNumRacksPerWriteQuorum' racks for a writeQuorum.
+
+If BK can't find bookie then it would throw BKNotEnoughBookiesException instead of picking random one.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperClientExposeStatsToPrometheus
+whether expose managed ledger client stats to prometheus
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperClientGetBookieInfoIntervalSeconds
+Set the interval to periodically check bookie info
+
+**Type**: `int`
+
+**Default**: `86400`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperClientGetBookieInfoRetryIntervalSeconds
+Set the interval to retry a failed bookie info lookup
+
+**Type**: `int`
+
+**Default**: `60`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperClientHealthCheckEnabled
+Enable bookies health check.
+
+ Bookies that have more than the configured number of failure within the interval will be quarantined for some time. During this period, new ledgers won't be created on these bookies
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperClientHealthCheckErrorThresholdPerInterval
+Bookies health check error threshold per check interval
+
+**Type**: `long`
+
+**Default**: `5`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperClientHealthCheckIntervalSeconds
+Bookies health check interval in seconds
+
+**Type**: `long`
+
+**Default**: `60`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperClientHealthCheckQuarantineTimeInSeconds
+Bookie health check quarantined time in seconds
+
+**Type**: `long`
+
+**Default**: `1800`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperClientIsolationGroups
+Enable bookie isolation by specifying a list of bookie groups to choose from.
+
+Any bookie outside the specified groups will not be used by the broker
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperClientLimitStatsLogging
+whether limit per_channel_bookie_client metrics of bookkeeper client stats
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperClientMinNumRacksPerWriteQuorum
+Minimum number of racks per write quorum.
+
+BK rack-aware bookie selection policy will try to get bookies from at least 'bookkeeperClientMinNumRacksPerWriteQuorum' racks for a write quorum.
+
+**Type**: `int`
+
+**Default**: `2`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperClientNumIoThreads
+Number of BookKeeper client IO threads. Default is Runtime.getRuntime().availableProcessors() * 2
+
+**Type**: `int`
+
+**Default**: `4`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperClientNumWorkerThreads
+Number of BookKeeper client worker threads. Default is Runtime.getRuntime().availableProcessors()
+
+**Type**: `int`
+
+**Default**: `2`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperClientQuarantineRatio
+bookie quarantine ratio to avoid all clients quarantine the high pressure bookie servers at the same time
+
+**Type**: `double`
+
+**Default**: `1.0`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperClientRackawarePolicyEnabled
+Enable rack-aware bookie selection policy.
+
+BK will chose bookies from different racks when forming a new bookie ensemble
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperClientRegionawarePolicyEnabled
+Enable region-aware bookie selection policy.
+
+BK will chose bookies from different regions and racks when forming a new bookie ensemble
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperClientReorderReadSequenceEnabled
+Enable/disable reordering read sequence on reading entries
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperClientSecondaryIsolationGroups
+Enable bookie secondary-isolation group if bookkeeperClientIsolationGroups doesn't have enough bookie available.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperClientSeparatedIoThreadsEnabled
+Use separated IO threads for BookKeeper client. Default is false, which will use Pulsar IO threads
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperClientSpeculativeReadTimeoutInMillis
+Speculative reads are initiated if a read request doesn't complete within a certain time Using a value of 0, is disabling the speculative reads
+
+**Type**: `int`
+
+**Default**: `0`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperClientThrottleValue
+Throttle value for bookkeeper client
+
+**Type**: `int`
+
+**Default**: `0`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperClientTimeoutInSeconds
+Timeout for BK add / read operations
+
+**Type**: `long`
+
+**Default**: `30`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperDiskWeightBasedPlacementEnabled
+Enable/disable disk weight based placement. Default is false
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperEnableStickyReads
+Enable/disable having read operations for a ledger to be sticky to a single bookie.
+If this flag is enabled, the client will use one single bookie (by preference) to read all entries for a ledger.
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperExplicitLacIntervalInMills
+Set the interval to check the need for sending an explicit LAC
+
+**Type**: `int`
+
+**Default**: `0`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperMetadataServiceUri
+Metadata service uri that bookkeeper is used for loading corresponding metadata driver and resolving its metadata service location
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperNumberOfChannelsPerBookie
+Number of channels per bookie
+
+**Type**: `int`
+
+**Default**: `16`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperTLSCertificateFilePath
+Path for the TLS certificate file
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperTLSClientAuthentication
+Enable tls authentication with bookie
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperTLSKeyFilePath
+Path for the TLS private key file
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperTLSKeyFileType
+Supported type: PEM, JKS, PKCS12. Default value: PEM
+
+**Type**: `java.lang.String`
+
+**Default**: `PEM`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperTLSKeyStorePasswordPath
+Path to file containing keystore password, if the client keystore is password protected.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperTLSProviderFactoryClass
+Set the client security provider factory class name. Default: org.apache.bookkeeper.tls.TLSContextFactory
+
+**Type**: `java.lang.String`
+
+**Default**: `org.apache.bookkeeper.tls.TLSContextFactory`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperTLSTrustCertTypes
+Supported type: PEM, JKS, PKCS12. Default value: PEM
+
+**Type**: `java.lang.String`
+
+**Default**: `PEM`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperTLSTrustCertsFilePath
+Path for the trusted TLS certificate file
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperTLSTrustStorePasswordPath
+Path to file containing truststore password, if the client truststore is password protected.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperTlsCertFilesRefreshDurationSeconds
+Tls cert refresh duration at bookKeeper-client in seconds (0 to disable check)
+
+**Type**: `int`
+
+**Default**: `300`
+
+**Dynamic**: `false`
+
+**Category**: Storage (BookKeeper)
+
+### bookkeeperUseV2WireProtocol
+Use older Bookkeeper wire protocol with bookie
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `true`
+
+**Category**: Storage (BookKeeper)
+
+### managedLedgerOffloadAutoTriggerSizeThresholdBytes
+The number of bytes before triggering automatic offload to long term storage
+
+**Type**: `long`
+
+**Default**: `-1`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Ledger Offloading)
+
+### managedLedgerOffloadDeletionLagMs
+Delay between a ledger being successfully offloaded to long term storage, and the ledger being deleted from bookkeeper
+
+**Type**: `long`
+
+**Default**: `14400000`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Ledger Offloading)
+
+### managedLedgerOffloadDriver
+Driver to use to offload old data to long term storage
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Ledger Offloading)
+
+### managedLedgerOffloadMaxThreads
+Maximum number of thread pool threads for ledger offloading
+
+**Type**: `int`
+
+**Default**: `2`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Ledger Offloading)
+
+### managedLedgerOffloadPrefetchRounds
+Maximum prefetch rounds for ledger reading for offloading
+
+**Type**: `int`
+
+**Default**: `1`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Ledger Offloading)
+
+### managedLedgerOffloadThresholdInSeconds
+The threshold to triggering automatic offload to long term storage
+
+**Type**: `long`
+
+**Default**: `-1`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Ledger Offloading)
+
+### managedLedgerUnackedRangesOpenCacheSetEnabled
+Use Open Range-Set to cache unacked messages (it is memory efficient but it can take more cpu)
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Ledger Offloading)
+
+### narExtractionDirectory
+The directory where nar Extraction of offloaders happens
+
+**Type**: `java.lang.String`
+
+**Default**: `/tmp`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Ledger Offloading)
+
+### offloadersDirectory
+The directory to locate offloaders
+
+**Type**: `java.lang.String`
+
+**Default**: `./offloaders`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Ledger Offloading)
+
+### allowAutoSubscriptionCreation
+Allow automated creation of subscriptions if set to true (default value).
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `true`
+
+**Category**: Storage (Managed Ledger)
+
+### allowAutoTopicCreation
+Allow automated creation of topics if set to true (default value).
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `true`
+
+**Category**: Storage (Managed Ledger)
+
+### allowAutoTopicCreationType
+The type of topic that is allowed to be automatically created.(partitioned/non-partitioned)
+
+**Type**: `org.apache.pulsar.common.policies.data.TopicType`
+
+**Default**: `non-partitioned`
+
+**Dynamic**: `true`
+
+**Category**: Storage (Managed Ledger)
+
+### autoSkipNonRecoverableData
+Skip reading non-recoverable/unreadable data-ledger under managed-ledger's list.
+
+ It helps when data-ledgers gets corrupted at bookkeeper and managed-cursor is stuck at that ledger.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `true`
+
+**Category**: Storage (Managed Ledger)
+
+### cacheEvictionByMarkDeletedPosition
+Evicting cache data by the slowest markDeletedPosition or readPosition. The default is to evict through readPosition.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Managed Ledger)
+
+### defaultNumPartitions
+The number of partitioned topics that is allowed to be automatically createdif allowAutoTopicCreationType is partitioned.
+
+**Type**: `int`
+
+**Default**: `1`
+
+**Dynamic**: `true`
+
+**Category**: Storage (Managed Ledger)
+
+### managedCursorInfoCompressionType
+ManagedCursorInfo compression type, option values (NONE, LZ4, ZLIB, ZSTD, SNAPPY).
+If value is NONE, then save the ManagedCursorInfo bytes data directly.
+
+**Type**: `java.lang.String`
+
+**Default**: `NONE`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerAddEntryTimeoutSeconds
+Add entry timeout when broker tries to publish message to bookkeeper.(0 to disable it)
+
+**Type**: `long`
+
+**Default**: `0`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerCacheCopyEntries
+Whether we should make a copy of the entry payloads when inserting in cache
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerCacheEvictionFrequency
+Configure the cache eviction frequency for the managed ledger cache.
+
+**Type**: `double`
+
+**Default**: `0.0`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerCacheEvictionIntervalMs
+Configure the cache eviction interval in milliseconds for the managed ledger cache, default is 10ms
+
+**Type**: `long`
+
+**Default**: `10`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerCacheEvictionTimeThresholdMillis
+All entries that have stayed in cache for more than the configured time, will be evicted
+
+**Type**: `long`
+
+**Default**: `1000`
+
+**Dynamic**: `true`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerCacheEvictionWatermark
+Threshold to which bring down the cache level when eviction is triggered
+
+**Type**: `double`
+
+**Default**: `0.9`
+
+**Dynamic**: `true`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerCacheSizeMB
+Amount of memory to use for caching data payload in managed ledger.
+
+This memory is allocated from JVM direct memory and it's shared across all the topics running in the same broker. By default, uses 1/5th of available direct memory
+
+**Type**: `int`
+
+**Default**: `347`
+
+**Dynamic**: `true`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerCursorBackloggedThreshold
+Configure the threshold (in number of entries) from where a cursor should be considered 'backlogged' and thus should be set as inactive.
+
+**Type**: `long`
+
+**Default**: `1000`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerCursorMaxEntriesPerLedger
+Max number of entries to append to a cursor ledger
+
+**Type**: `int`
+
+**Default**: `50000`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerCursorPositionFlushSeconds
+How frequently to flush the cursor positions that were accumulated due to rate limiting. (seconds). Default is 60 seconds
+
+**Type**: `int`
+
+**Default**: `60`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerCursorRolloverTimeInSeconds
+Max time before triggering a rollover on a cursor ledger
+
+**Type**: `int`
+
+**Default**: `14400`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerDataReadPriority
+Read priority when ledgers exists in both bookkeeper and the second layer storage.
+
+**Type**: `java.lang.String`
+
+**Default**: `tiered-storage-first`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerDefaultAckQuorum
+Ack quorum (Qa) size, Number of guaranteed copies (acks to wait for before a write is considered completed)
+
+**Type**: `int`
+
+**Default**: `2`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerDefaultEnsembleSize
+Ensemble (E) size, Number of bookies to use for storing entries in a ledger.
+Please notice that sticky reads enabled by bookkeeperEnableStickyReads=true aren’t used unless ensemble size (E) equals write quorum (Qw) size.
+
+**Type**: `int`
+
+**Default**: `2`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerDefaultMarkDeleteRateLimit
+Rate limit the amount of writes per second generated by consumer acking the messages
+
+**Type**: `double`
+
+**Default**: `1.0`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerDefaultWriteQuorum
+Write quorum (Qw) size, Replication factor for storing entries (messages) in a ledger.
+
+**Type**: `int`
+
+**Default**: `2`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerDigestType
+Default type of checksum to use when writing to BookKeeper.
+
+Default is `CRC32C`. Other possible options are `CRC32`, `MAC` or `DUMMY` (no checksum).
+
+**Type**: `org.apache.bookkeeper.client.api.DigestType`
+
+**Default**: `CRC32C`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerInactiveLedgerRolloverTimeSeconds
+Time to rollover ledger for inactive topic (duration without any publish on that topic). Disable rollover with value 0 (Default value 0)
+
+**Type**: `int`
+
+**Default**: `0`
+
+**Dynamic**: `true`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerInfoCompressionType
+ManagedLedgerInfo compression type, option values (NONE, LZ4, ZLIB, ZSTD, SNAPPY).
+If value is invalid or NONE, then save the ManagedLedgerInfo bytes data directly.
+
+**Type**: `java.lang.String`
+
+**Default**: `NONE`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerMaxAckQuorum
+Max number of guaranteed copies (acks to wait before write is complete)
+
+**Type**: `int`
+
+**Default**: `5`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerMaxBacklogBetweenCursorsForCaching
+Maximum backlog entry difference to prevent caching entries that can't be reused
+
+**Type**: `int`
+
+**Default**: `1000`
+
+**Dynamic**: `true`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerMaxEnsembleSize
+Max number of bookies to use when creating a ledger
+
+**Type**: `int`
+
+**Default**: `5`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerMaxEntriesPerLedger
+Max number of entries to append to a ledger before triggering a rollover.
+
+A ledger rollover is triggered after the min rollover time has passed and one of the following conditions is true: the max rollover time has been reached, the max entries have been written to the ledger, or the max ledger size has been written to the ledger
+
+**Type**: `int`
+
+**Default**: `50000`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerMaxLedgerRolloverTimeMinutes
+Maximum time before forcing a ledger rollover for a topic
+
+**Type**: `int`
+
+**Default**: `240`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerMaxReadsInFlightSizeInMB
+Maximum buffer size for bytes read from storage. This is the memory retained by data read from storage (or cache) until it has been delivered to the Consumer Netty channel. Use O to disable
+
+**Type**: `long`
+
+**Default**: `0`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerMaxSizePerLedgerMbytes
+Maximum ledger size before triggering a rollover for a topic (MB)
+
+**Type**: `int`
+
+**Default**: `2048`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerMaxUnackedRangesToPersist
+Max number of `acknowledgment holes` that are going to be persistently stored.
+
+When acknowledging out of order, a consumer will leave holes that are supposed to be quickly filled by acking all the messages. The information of which messages are acknowledged is persisted by compressing in `ranges` of messages that were acknowledged. After the max number of ranges is reached, the information will only be tracked in memory and messages will be redelivered in case of crashes.
+
+**Type**: `int`
+
+**Default**: `10000`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerMaxUnackedRangesToPersistInMetadataStore
+Max number of `acknowledgment holes` that can be stored in MetadataStore.
+
+If number of unack message range is higher than this limit then broker will persist unacked ranges into bookkeeper to avoid additional data overhead into MetadataStore.
+
+**Type**: `int`
+
+**Default**: `1000`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerMaxWriteQuorum
+Max number of copies to store for each message
+
+**Type**: `int`
+
+**Default**: `5`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerMetadataOperationsTimeoutSeconds
+operation timeout while updating managed-ledger metadata.
+
+**Type**: `long`
+
+**Default**: `60`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerMinLedgerRolloverTimeMinutes
+Minimum time between ledger rollover for a topic
+
+**Type**: `int`
+
+**Default**: `10`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerMinimumBacklogCursorsForCaching
+Minimum cursors that must be in backlog state to cache and reuse the read entries.(Default =0 to disable backlog reach cache)
+
+**Type**: `int`
+
+**Default**: `0`
+
+**Dynamic**: `true`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerMinimumBacklogEntriesForCaching
+Minimum backlog entries for any cursor before start caching reads
+
+**Type**: `int`
+
+**Default**: `1000`
+
+**Dynamic**: `true`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerNewEntriesCheckDelayInMillis
+New entries check delay for the cursor under the managed ledger.
+If no new messages in the topic, the cursor will try to check again after the delay time.
+For consumption latency sensitive scenario, can set to a smaller value or set to 0.
+Of course, this may degrade consumption throughput. Default is 10ms.
+
+**Type**: `int`
+
+**Default**: `10`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerNumSchedulerThreads
+Number of threads to be used for managed ledger scheduled tasks
+
+**Type**: `int`
+
+**Default**: `2`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerPassword
+Default password to use when writing to BookKeeper.
+
+Default is ``.
+
+**Type**: `java.lang.String`
+
+**Default**: ``
+
+**Dynamic**: `false`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerPrometheusStatsLatencyRolloverSeconds
+Managed ledger prometheus stats latency rollover seconds
+
+**Type**: `int`
+
+**Default**: `60`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerReadEntryTimeoutSeconds
+Read entries timeout when broker tries to read messages from bookkeeper (0 to disable it)
+
+**Type**: `long`
+
+**Default**: `0`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerStatsPeriodSeconds
+How frequently to refresh the stats. (seconds). Default is 60 seconds
+
+**Type**: `int`
+
+**Default**: `60`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerStorageClassName
+The class of the managed ledger storage
+
+**Type**: `java.lang.String`
+
+**Default**: `org.apache.pulsar.broker.ManagedLedgerClientFactory`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Managed Ledger)
+
+### managedLedgerTraceTaskExecution
+Whether trace managed ledger task execution time
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `true`
+
+**Category**: Storage (Managed Ledger)
+
+### persistentUnackedRangesWithMultipleEntriesEnabled
+If enabled, the maximum "acknowledgment holes" will not be limited and "acknowledgment holes" are stored in multiple entries.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Managed Ledger)
+
+### tlsAllowInsecureConnection
+Accept untrusted TLS certificate from client
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: TLS
+
+### tlsCertRefreshCheckDurationSec
+Tls cert refresh duration in seconds (set 0 to check on every new connection)
+
+**Type**: `long`
+
+**Default**: `300`
+
+**Dynamic**: `false`
+
+**Category**: TLS
+
+### tlsCertificateFilePath
+Path for the TLS certificate file
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: TLS
+
+### tlsCiphers
+Specify the tls cipher the broker will use to negotiate during TLS Handshake.
+
+Example:- [TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256]
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+**Dynamic**: `false`
+
+**Category**: TLS
+
+### tlsEnabled
+Enable TLS
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: TLS
+
+### tlsKeyFilePath
+Path for the TLS private key file
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: TLS
+
+### tlsProtocols
+Specify the tls protocols the broker will use to negotiate during TLS Handshake.
+
+Example:- [TLSv1.3, TLSv1.2]
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+**Dynamic**: `false`
+
+**Category**: TLS
+
+### tlsRequireTrustedClientCertOnConnect
+Specify whether Client certificates are required for TLS Reject.
+the Connection if the Client Certificate is not trusted
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: TLS
+
+### tlsTrustCertsFilePath
+Path for the trusted TLS certificate file
+
+**Type**: `java.lang.String`
+
+**Default**: ``
+
+**Dynamic**: `false`
+
+**Category**: TLS
+
+### webServiceTlsCiphers
+Specify the tls cipher the proxy's web service will use to negotiate during TLS Handshake.
+
+Example:- [TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256]
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+**Dynamic**: `false`
+
+**Category**: TLS
+
+### webServiceTlsProtocols
+Specify the tls protocols the proxy's web service will use to negotiate during TLS Handshake.
+
+Example:- [TLSv1.3, TLSv1.2]
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+**Dynamic**: `false`
+
+**Category**: TLS
+
+### maxActiveTransactionsPerCoordinator
+The max active transactions per transaction coordinator, default value 0 indicates no limit.
+
+**Type**: `long`
+
+**Default**: `0`
+
+**Dynamic**: `false`
+
+**Category**: Transaction
+
+### numTransactionReplayThreadPoolSize
+Number of threads to use for pulsar transaction replay PendingAckStore or TransactionBuffer.Default is 5
+
+**Type**: `int`
+
+**Default**: `2`
+
+**Dynamic**: `false`
+
+**Category**: Transaction
+
+### transactionBufferClientMaxConcurrentRequests
+The max concurrent requests for transaction buffer client.
+
+**Type**: `int`
+
+**Default**: `1000`
+
+**Dynamic**: `false`
+
+**Category**: Transaction
+
+### transactionBufferClientOperationTimeoutInMills
+The transaction buffer client's operation timeout in milliseconds.
+
+**Type**: `long`
+
+**Default**: `3000`
+
+**Dynamic**: `false`
+
+**Category**: Transaction
+
+### transactionBufferProviderClassName
+Class name for transaction buffer provider
+
+**Type**: `java.lang.String`
+
+**Default**: `org.apache.pulsar.broker.transaction.buffer.impl.TopicTransactionBufferProvider`
+
+**Dynamic**: `false`
+
+**Category**: Transaction
+
+### transactionBufferSegmentedSnapshotEnabled
+Whether to enable segmented transaction buffer snapshot to handle a large number of aborted transactions.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Transaction
+
+### transactionBufferSnapshotMaxTransactionCount
+Transaction buffer take snapshot transaction countIf transaction buffer enables snapshot segment, transaction buffer updates snapshot metadataafter the number of transaction operations reaches this value.
+
+**Type**: `int`
+
+**Default**: `1000`
+
+**Dynamic**: `false`
+
+**Category**: Transaction
+
+### transactionBufferSnapshotMinTimeInMillis
+The interval time for transaction buffer to take snapshots.If transaction buffer enables snapshot segment, it is the interval time for transaction buffer to update snapshot metadata.
+
+**Type**: `int`
+
+**Default**: `5000`
+
+**Dynamic**: `false`
+
+**Category**: Transaction
+
+### transactionBufferSnapshotSegmentSize
+Transaction buffer stores the transaction ID of aborted transactions and takes snapshots.This configuration determines the size of the snapshot segment. The default value is 256 KB (262144 bytes).
+
+**Type**: `int`
+
+**Default**: `262144`
+
+**Dynamic**: `false`
+
+**Category**: Transaction
+
+### transactionCoordinatorEnabled
+Enable transaction coordinator in broker
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Transaction
+
+### transactionMetadataStoreProviderClassName
+Class name for transaction metadata store provider
+
+**Type**: `java.lang.String`
+
+**Default**: `org.apache.pulsar.transaction.coordinator.impl.MLTransactionMetadataStoreProvider`
+
+**Dynamic**: `false`
+
+**Category**: Transaction
+
+### transactionPendingAckLogIndexMinLag
+MLPendingAckStore maintain a ConcurrentSkipListMap pendingAckLogIndex`,it store the position in pendingAckStore as value and save a position used to determinewhether the previous data can be cleaned up as a key.transactionPendingAckLogIndexMinLag is used to configure the minimum lag between indexes
+
+**Type**: `long`
+
+**Default**: `500`
+
+**Dynamic**: `false`
+
+**Category**: Transaction
+
+### transactionPendingAckStoreProviderClassName
+Class name for transaction pending ack store provider
+
+**Type**: `java.lang.String`
+
+**Default**: `org.apache.pulsar.broker.transaction.pendingack.impl.MLPendingAckStoreProvider`
+
+**Dynamic**: `false`
+
+**Category**: Transaction
+
+### isRunningStandalone
+Flag indicates whether to run broker in standalone mode
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: WebSocket
+
+### webSocketConnectionsPerBroker
+Number of connections per Broker in Pulsar Client used in WebSocket proxy
+
+**Type**: `int`
+
+**Default**: `2`
+
+**Dynamic**: `false`
+
+**Category**: WebSocket
+
+### webSocketMaxTextFrameSize
+The maximum size of a text message during parsing in WebSocket proxy.
+
+**Type**: `int`
+
+**Default**: `1048576`
+
+**Dynamic**: `false`
+
+**Category**: WebSocket
+
+### webSocketNumIoThreads
+Number of IO threads in Pulsar Client used in WebSocket proxy
+
+**Type**: `int`
+
+**Default**: `2`
+
+**Dynamic**: `false`
+
+**Category**: WebSocket
+
+### webSocketNumServiceThreads
+Number of threads used by Websocket service
+
+**Type**: `int`
+
+**Default**: `20`
+
+**Dynamic**: `false`
+
+**Category**: WebSocket
+
+### webSocketServiceEnabled
+Enable the WebSocket API service in broker
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: WebSocket
+
+### webSocketSessionIdleTimeoutMillis
+Time in milliseconds that idle WebSocket session times out
+
+**Type**: `int`
+
+**Default**: `300000`
+
+**Dynamic**: `false`
+
+**Category**: WebSocket
+
+## Deprecated
+### loadBalancerBrokerComfortLoadLevelPercentage
+Usage threshold to determine a broker is having just right level of load (only used by SimpleLoadManagerImpl)
+
+**Type**: `int`
+
+**Default**: `65`
+
+**Dynamic**: `false`
+
+**Category**: Load Balancer
+
+### loadBalancerBrokerUnderloadedThresholdPercentage
+Usage threshold to determine a broker as under-loaded (only used by SimpleLoadManagerImpl)
+
+**Type**: `int`
+
+**Default**: `50`
+
+**Dynamic**: `false`
+
+**Category**: Load Balancer
+
+### loadBalancerPlacementStrategy
+load placement strategy[weightedRandomSelection/leastLoadedServer] (only used by SimpleLoadManagerImpl)
+
+**Type**: `java.lang.String`
+
+**Default**: `leastLoadedServer`
+
+**Dynamic**: `false`
+
+**Category**: Load Balancer
+
+### brokerServicePurgeInactiveFrequencyInSeconds
+How often broker checks for inactive topics to be deleted (topics with no subscriptions and no one connected) Deprecated in favor of using `brokerDeleteInactiveTopicsFrequencySeconds`
+@deprecated - unused.
+
+**Type**: `int`
+
+**Default**: `60`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### replicationTlsEnabled
+@deprecated - Use brokerClientTlsEnabled instead.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Replication
+
+### configurationStoreServers
+Configuration store connection string (as a comma-separated list). Deprecated in favor of `configurationMetadataStoreUrl`
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### globalZookeeperServers
+Global Zookeeper quorum connection string (as a comma-separated list). Deprecated in favor of using `configurationStoreServers`
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### zooKeeperCacheExpirySeconds
+ZooKeeper cache expiry time in seconds. @deprecated - Use metadataStoreCacheExpirySeconds instead.
+
+**Type**: `int`
+
+**Default**: `-1`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### zooKeeperOperationTimeoutSeconds
+ZooKeeper operation timeout in seconds. @deprecated - Use metadataStoreOperationTimeoutSeconds instead.
+
+**Type**: `int`
+
+**Default**: `-1`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### zooKeeperSessionTimeoutMillis
+ZooKeeper session timeout in milliseconds. @deprecated - Use metadataStoreSessionTimeoutMillis instead.
+
+**Type**: `long`
+
+**Default**: `-1`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### zookeeperServers
+The Zookeeper quorum connection string (as a comma-separated list). Deprecated in favour of metadataStoreUrl
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### managedLedgerMaxUnackedRangesToPersistInZooKeeper
+Max number of `acknowledgment holes` that can be stored in Zookeeper.
+
+If number of unack message range is higher than this limit then broker will persist unacked ranges into bookkeeper to avoid additional data overhead into zookeeper.
+@deprecated - use managedLedgerMaxUnackedRangesToPersistInMetadataStore.
+
+**Type**: `int`
+
+**Default**: `-1`
+
+**Dynamic**: `false`
+
+**Category**: Storage (Managed Ledger)
+
+
diff --git a/static/reference/2.11.x/config/reference-configuration-client.md b/static/reference/2.11.x/config/reference-configuration-client.md
new file mode 100644
index 00000000000..a28d15a26ef
--- /dev/null
+++ b/static/reference/2.11.x/config/reference-configuration-client.md
@@ -0,0 +1,369 @@
+# Client
+
+## Required
+### serviceUrl
+Pulsar cluster HTTP URL to connect to a broker.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+## Optional
+### authParamMap
+Authentication map of the client.
+
+**Type**: `java.util.Map`
+
+**Default**: `null`
+
+### authParams
+Authentication parameter of the client.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+### authPluginClassName
+Class name of authentication plugin of the client.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+### authentication
+Authentication settings of the client.
+
+**Type**: `org.apache.pulsar.client.api.Authentication`
+
+**Default**: `null`
+
+### autoCertRefreshSeconds
+Seconds of auto refreshing certificate.
+
+**Type**: `int`
+
+**Default**: `300`
+
+### concurrentLookupRequest
+The number of concurrent lookup requests that can be sent on each broker connection. Setting a maximum prevents overloading a broker.
+
+**Type**: `int`
+
+**Default**: `5000`
+
+### connectionMaxIdleSeconds
+Release the connection if it is not used for more than [connectionMaxIdleSeconds] seconds. If [connectionMaxIdleSeconds] < 0, disabled the feature that auto release the idle connections
+
+**Type**: `int`
+
+**Default**: `180`
+
+### connectionTimeoutMs
+Duration of waiting for a connection to a broker to be established.If the duration passes without a response from a broker, the connection attempt is dropped.
+
+**Type**: `int`
+
+**Default**: `10000`
+
+### connectionsPerBroker
+Number of connections established between the client and each Broker. A value of 0 means to disable connection pooling.
+
+**Type**: `int`
+
+**Default**: `1`
+
+### dnsLookupBindAddress
+The Pulsar client dns lookup bind address, default behavior is bind on 0.0.0.0
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+### dnsLookupBindPort
+The Pulsar client dns lookup bind port, takes effect when dnsLookupBindAddress is configured, default value is 0.
+
+**Type**: `int`
+
+**Default**: `0`
+
+### enableBusyWait
+Whether to enable BusyWait for EpollEventLoopGroup.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+### enableTransaction
+Whether to enable transaction.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+### initialBackoffIntervalNanos
+Initial backoff interval (in nanosecond).
+
+**Type**: `long`
+
+**Default**: `100000000`
+
+### keepAliveIntervalSeconds
+Seconds of keeping alive interval for each client broker connection.
+
+**Type**: `int`
+
+**Default**: `30`
+
+### listenerName
+Listener name for lookup. Clients can use listenerName to choose one of the listeners as the service URL to create a connection to the broker as long as the network is accessible."advertisedListeners" must enabled in broker side.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+### lookupTimeoutMs
+Client lookup timeout (in milliseconds).
+
+**Type**: `long`
+
+**Default**: `-1`
+
+### maxBackoffIntervalNanos
+Max backoff interval (in nanosecond).
+
+**Type**: `long`
+
+**Default**: `60000000000`
+
+### maxLookupRedirects
+Maximum times of redirected lookup requests.
+
+**Type**: `int`
+
+**Default**: `20`
+
+### maxLookupRequest
+Maximum number of lookup requests allowed on each broker connection to prevent overloading a broker.
+
+**Type**: `int`
+
+**Default**: `50000`
+
+### maxNumberOfRejectedRequestPerConnection
+Maximum number of rejected requests of a broker in a certain time frame (60 seconds) after the current connection is closed and the client creating a new connection to connect to a different broker.
+
+**Type**: `int`
+
+**Default**: `50`
+
+### memoryLimitBytes
+Limit of client memory usage (in byte). The 64M default can guarantee a high producer throughput.
+
+**Type**: `long`
+
+**Default**: `67108864`
+
+### numIoThreads
+Number of IO threads.
+
+**Type**: `int`
+
+**Default**: `2`
+
+### numListenerThreads
+Number of consumer listener threads.
+
+**Type**: `int`
+
+**Default**: `2`
+
+### operationTimeoutMs
+Client operation timeout (in milliseconds).
+
+**Type**: `long`
+
+**Default**: `30000`
+
+### proxyProtocol
+Protocol of proxy service. proxyServiceUrl and proxyProtocol must be mutually inclusive.
+
+**Type**: `org.apache.pulsar.client.api.ProxyProtocol`
+
+**Default**: `null`
+
+### proxyServiceUrl
+URL of proxy service. proxyServiceUrl and proxyProtocol must be mutually inclusive.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+### readTimeoutMs
+Maximum read time of a request.
+
+**Type**: `int`
+
+**Default**: `60000`
+
+### requestTimeoutMs
+Maximum duration for completing a request.
+
+**Type**: `int`
+
+**Default**: `60000`
+
+### serviceUrlProvider
+The implementation class of ServiceUrlProvider used to generate ServiceUrl.
+
+**Type**: `org.apache.pulsar.client.api.ServiceUrlProvider`
+
+**Default**: `null`
+
+### socks5ProxyAddress
+Address of SOCKS5 proxy.
+
+**Type**: `java.net.InetSocketAddress`
+
+**Default**: `null`
+
+### socks5ProxyPassword
+Password of SOCKS5 proxy.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+### socks5ProxyUsername
+User name of SOCKS5 proxy.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+### sslProvider
+The TLS provider used by an internal client to authenticate with other Pulsar brokers.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+### statsIntervalSeconds
+Interval to print client stats (in seconds).
+
+**Type**: `long`
+
+**Default**: `60`
+
+### tlsAllowInsecureConnection
+Whether the client accepts untrusted TLS certificates from the broker.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+### tlsCertificateFilePath
+Path to the TLS certificate file.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+### tlsCiphers
+Set of TLS Ciphers.
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+### tlsHostnameVerificationEnable
+Whether the hostname is validated when the proxy creates a TLS connection with brokers.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+### tlsKeyFilePath
+Path to the TLS key file.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+### tlsKeyStorePassword
+Password of TLS KeyStore.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+### tlsKeyStorePath
+Path of TLS KeyStore.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+### tlsKeyStoreType
+TLS KeyStore type configuration.
+
+**Type**: `java.lang.String`
+
+**Default**: `JKS`
+
+### tlsProtocols
+Protocols of TLS.
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+### tlsTrustCertsFilePath
+Path to the trusted TLS certificate file.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+### tlsTrustStorePassword
+Password of TLS TrustStore.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+### tlsTrustStorePath
+Path of TLS TrustStore.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+### tlsTrustStoreType
+TLS TrustStore type configuration. You need to set this configuration when client authentication is required.
+
+**Type**: `java.lang.String`
+
+**Default**: `JKS`
+
+### useKeyStoreTls
+Set TLS using KeyStore way.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+### useTcpNoDelay
+Whether to use TCP NoDelay option.
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+### useTls
+Whether to use TLS.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+
diff --git a/static/reference/2.11.x/config/reference-configuration-log4j-shell.md b/static/reference/2.11.x/config/reference-configuration-log4j-shell.md
new file mode 100644
index 00000000000..43fca015c0d
--- /dev/null
+++ b/static/reference/2.11.x/config/reference-configuration-log4j-shell.md
@@ -0,0 +1,37 @@
+# Log4j shell
+
+### bookkeeper.root.logger
+
+**Default**: ERROR,CONSOLE
+
+### log4j.rootLogger
+
+**Default**: ${bookkeeper.root.logger}
+
+### log4j.appender.CONSOLE
+
+**Default**: org.apache.log4j.ConsoleAppender
+
+### log4j.appender.CONSOLE.Threshold
+
+**Default**: DEBUG
+
+### log4j.appender.CONSOLE.layout
+
+**Default**: org.apache.log4j.PatternLayout
+
+### log4j.appender.CONSOLE.layout.ConversionPattern
+
+**Default**: %d{ABSOLUTE} %-5p %m%n
+
+### log4j.logger.org.apache.zookeeper
+
+**Default**: ERROR
+
+### log4j.logger.org.apache.bookkeeper
+
+**Default**: ERROR
+
+### log4j.logger.org.apache.bookkeeper.bookie.BookieShell
+
+**Default**: INFO
diff --git a/static/reference/2.11.x/config/reference-configuration-log4j.md b/static/reference/2.11.x/config/reference-configuration-log4j.md
new file mode 100644
index 00000000000..6aa18e03a23
--- /dev/null
+++ b/static/reference/2.11.x/config/reference-configuration-log4j.md
@@ -0,0 +1,80 @@
+# Log4j
+
+You can set the log level and configuration in the [log4j2.yaml](https://github.com/apache/pulsar/blob/d557e0aa286866363bc6261dec87790c055db1b0/conf/log4j2.yaml#L155) file. The following logging configuration parameters are available.
+
+### pulsar.root.logger
+
+**Default**: WARN,CONSOLE
+
+### pulsar.log.dir
+
+**Default**: logs
+
+### pulsar.log.file
+
+**Default**: pulsar.log
+
+### log4j.rootLogger
+
+**Default**: ${pulsar.root.logger}
+
+### log4j.appender.CONSOLE
+
+**Default**: org.apache.log4j.ConsoleAppender
+
+### log4j.appender.CONSOLE.Threshold
+
+**Default**: DEBUG
+
+### log4j.appender.CONSOLE.layout
+
+**Default**: org.apache.log4j.PatternLayout
+
+### log4j.appender.CONSOLE.layout.ConversionPattern
+
+**Default**: %d{ISO8601} - %-5p - [%t:%C{1}@%L] - %m%n
+
+### log4j.appender.ROLLINGFILE
+
+**Default**: org.apache.log4j.DailyRollingFileAppender
+
+### log4j.appender.ROLLINGFILE.Threshold
+
+**Default**: DEBUG
+
+### log4j.appender.ROLLINGFILE.File
+
+**Default**: ${pulsar.log.dir}/${pulsar.log.file}
+
+### log4j.appender.ROLLINGFILE.layout
+
+**Default**: org.apache.log4j.PatternLayout
+
+### log4j.appender.ROLLINGFILE.layout.ConversionPattern
+
+**Default**: %d{ISO8601} - %-5p [%t:%C{1}@%L] - %m%n
+
+### log4j.appender.TRACEFILE
+
+**Default**: org.apache.log4j.FileAppender
+
+### log4j.appender.TRACEFILE.Threshold
+
+**Default**: TRACE
+
+### log4j.appender.TRACEFILE.File
+
+**Default**: pulsar-trace.log
+
+### log4j.appender.TRACEFILE.layout
+
+**Default**: org.apache.log4j.PatternLayout
+
+### log4j.appender.TRACEFILE.layout.ConversionPattern
+
+**Default**: %d{ISO8601} - %-5p [%t:%C{1}@%L][%x] - %m%n
+
+> Note: 'topic' in log4j2.appender is configurable.
+>
+> - If you want to append all logs to a single topic, set the same topic name.
+> - If you want to append logs to different topics, you can set different topic names.
diff --git a/static/reference/2.11.x/config/reference-configuration-pulsar-proxy.md b/static/reference/2.11.x/config/reference-configuration-pulsar-proxy.md
new file mode 100644
index 00000000000..8d04c6795e9
--- /dev/null
+++ b/static/reference/2.11.x/config/reference-configuration-pulsar-proxy.md
@@ -0,0 +1,1210 @@
+# Pulsar proxy
+
+## Required
+## Optional
+### brokerClientAuthenticationParameters
+The authentication parameters used by the Pulsar proxy to authenticate with Pulsar brokers
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Broker Client Authorization
+
+### brokerClientAuthenticationPlugin
+The authentication plugin used by the Pulsar proxy to authenticate with Pulsar brokers
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Broker Client Authorization
+
+### brokerClientCertificateFilePath
+The path to the TLS certificate used by the Pulsar proxy to authenticate with Pulsar brokers
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Broker Client Authorization
+
+### brokerClientKeyFilePath
+The path to TLS private key used by the Pulsar proxy to authenticate with Pulsar brokers
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Broker Client Authorization
+
+### brokerClientTrustCertsFilePath
+The path to trusted certificates used by the Pulsar proxy to authenticate with Pulsar brokers
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Broker Client Authorization
+
+### tlsEnabledWithBroker
+Whether TLS is enabled when communicating with Pulsar brokers
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Broker Client Authorization
+
+### brokerServiceURL
+The service url points to the broker cluster. URL must have the pulsar:// prefix.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Broker Discovery
+
+### brokerServiceURLTLS
+The tls service url points to the broker cluster. URL must have the pulsar+ssl:// prefix.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Broker Discovery
+
+### brokerWebServiceURL
+The web service url points to the broker cluster
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Broker Discovery
+
+### brokerWebServiceURLTLS
+The tls web service url points to the broker cluster
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Broker Discovery
+
+### configurationMetadataStoreUrl
+The metadata store URL for the configuration data. If empty, we fall back to use metadataStoreUrl
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Broker Discovery
+
+### functionWorkerWebServiceURL
+The web service url points to the function worker cluster. Only configure it when you setup function workers in a separate cluster
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Broker Discovery
+
+### functionWorkerWebServiceURLTLS
+The tls web service url points to the function worker cluster. Only configure it when you setup function workers in a separate cluster
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Broker Discovery
+
+### metadataStoreUrl
+The metadata store URL.
+ Examples:
+ * zk:my-zk-1:2181,my-zk-2:2181,my-zk-3:2181
+ * my-zk-1:2181,my-zk-2:2181,my-zk-3:2181 (will default to ZooKeeper when the schema is not specified)
+ * zk:my-zk-1:2181,my-zk-2:2181,my-zk-3:2181/my-chroot-path (to add a ZK chroot path)
+
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Broker Discovery
+
+### brokerProxyAllowedHostNames
+Allowed broker target host names. Supports multiple comma separated entries and a wildcard.
+
+**Type**: `java.lang.String`
+
+**Default**: `*`
+
+**Dynamic**: `false`
+
+**Category**: Broker Proxy
+
+### brokerProxyAllowedIPAddresses
+Allowed broker target ip addresses or ip networks / netmasks. Supports multiple comma separated entries.
+
+**Type**: `java.lang.String`
+
+**Default**: `*`
+
+**Dynamic**: `false`
+
+**Category**: Broker Proxy
+
+### brokerProxyAllowedTargetPorts
+Allowed broker target ports
+
+**Type**: `java.lang.String`
+
+**Default**: `6650,6651`
+
+**Dynamic**: `false`
+
+**Category**: Broker Proxy
+
+### brokerProxyConnectTimeoutMs
+Broker proxy connect timeout.
+The timeout value for Broker proxy connect timeout is in millisecond. Set to 0 to disable.
+
+**Type**: `int`
+
+**Default**: `10000`
+
+**Dynamic**: `false`
+
+**Category**: Broker Proxy
+
+### brokerProxyReadTimeoutMs
+Broker proxy read timeout.
+The timeout value for Broker proxy read timeout is in millisecond. Set to 0 to disable.
+
+**Type**: `int`
+
+**Default**: `75000`
+
+**Dynamic**: `false`
+
+**Category**: Broker Proxy
+
+### checkActiveBrokers
+When enabled, checks that the target broker is active before connecting. zookeeperServers and configurationStoreServers must be configured in proxy configuration for retrieving the active brokers.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Broker Proxy
+
+### httpInputMaxReplayBufferSize
+Http input buffer max size.
+
+The maximum amount of data that will be buffered for incoming http requests so that the request body can be replayed when the backend broker issues a redirect response.
+
+**Type**: `int`
+
+**Default**: `5242880`
+
+**Dynamic**: `false`
+
+**Category**: HTTP
+
+### httpNumThreads
+Number of threads to use for HTTP requests processing
+
+**Type**: `int`
+
+**Default**: `8`
+
+**Dynamic**: `false`
+
+**Category**: HTTP
+
+### httpOutputBufferSize
+Http output buffer size.
+
+The amount of data that will be buffered for http requests before it is flushed to the channel. A larger buffer size may result in higher http throughput though it may take longer for the client to see data. If using HTTP streaming via the reverse proxy, this should be set to the minimum value, 1, so that clients see the data as soon as possible.
+
+**Type**: `int`
+
+**Default**: `32768`
+
+**Dynamic**: `false`
+
+**Category**: HTTP
+
+### httpProxyTimeout
+Http proxy timeout.
+
+The timeout value for HTTP proxy is in millisecond.
+
+**Type**: `int`
+
+**Default**: `300000`
+
+**Dynamic**: `false`
+
+**Category**: HTTP
+
+### httpRequestsLimitEnabled
+Enable the enforcement of limits on the incoming HTTP requests
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: HTTP
+
+### httpRequestsMaxPerSecond
+Max HTTP requests per seconds allowed. The excess of requests will be rejected with HTTP code 429 (Too many requests)
+
+**Type**: `double`
+
+**Default**: `100.0`
+
+**Dynamic**: `false`
+
+**Category**: HTTP
+
+### httpReverseProxyConfigs
+Http directs to redirect to non-pulsar services
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+**Dynamic**: `false`
+
+**Category**: HTTP
+
+### brokerClientSslProvider
+The TLS Provider used by the Pulsar proxy to authenticate with Pulsar brokers
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### brokerClientTlsCiphers
+Specify the tls cipher the proxy will use to negotiate during TLS Handshake (a comma-separated list of ciphers).
+
+Examples:- [TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256].
+ used by the Pulsar proxy to authenticate with Pulsar brokers
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### brokerClientTlsEnabledWithKeyStore
+Whether the Pulsar proxy use KeyStore type to authenticate with Pulsar brokers
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### brokerClientTlsKeyStore
+TLS KeyStore path for internal client, used by the Pulsar proxy to authenticate with Pulsar brokers
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### brokerClientTlsKeyStorePassword
+TLS KeyStore password for proxy, used by the Pulsar proxy to authenticate with Pulsar brokers
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### brokerClientTlsKeyStoreType
+TLS KeyStore type configuration for proxy: JKS, PKCS12 used by the Pulsar proxy to authenticate with Pulsar brokers
+
+**Type**: `java.lang.String`
+
+**Default**: `JKS`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### brokerClientTlsProtocols
+Specify the tls protocols the broker will use to negotiate during TLS handshake (a comma-separated list of protocol names).
+
+Examples:- [TLSv1.3, TLSv1.2]
+ used by the Pulsar proxy to authenticate with Pulsar brokers
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### brokerClientTlsTrustStore
+TLS TrustStore path for proxy, used by the Pulsar proxy to authenticate with Pulsar brokers
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### brokerClientTlsTrustStorePassword
+TLS TrustStore password for proxy, used by the Pulsar proxy to authenticate with Pulsar brokers
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### brokerClientTlsTrustStoreType
+TLS TrustStore type configuration for proxy: JKS, PKCS12 used by the Pulsar proxy to authenticate with Pulsar brokers
+
+**Type**: `java.lang.String`
+
+**Default**: `JKS`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### tlsEnabledWithKeyStore
+Enable TLS with KeyStore type configuration for proxy
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### tlsKeyStore
+TLS KeyStore path for proxy
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### tlsKeyStorePassword
+TLS KeyStore password for proxy
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### tlsKeyStoreType
+TLS KeyStore type configuration for proxy: JKS, PKCS12
+
+**Type**: `java.lang.String`
+
+**Default**: `JKS`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### tlsProvider
+Specify the TLS provider for the broker service:
+When using TLS authentication with CACert, the valid value is either OPENSSL or JDK.
+When using TLS authentication with KeyStore, available values can be SunJSSE, Conscrypt and etc.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### tlsTrustStore
+TLS TrustStore path for proxy
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### tlsTrustStorePassword
+TLS TrustStore password for proxy, null means empty password.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### tlsTrustStoreType
+TLS TrustStore type configuration for proxy: JKS, PKCS12
+
+**Type**: `java.lang.String`
+
+**Default**: `JKS`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### webServiceTlsProvider
+Specify the TLS provider for the web service, available values can be SunJSSE, Conscrypt and etc.
+
+**Type**: `java.lang.String`
+
+**Default**: `Conscrypt`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### authenticateMetricsEndpoint
+Whether the '/metrics' endpoint requires authentication. Defaults to true.'authenticationEnabled' must also be set for this to take effect.
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `false`
+
+**Category**: Proxy Authentication
+
+### authenticationEnabled
+Whether authentication is enabled for the Pulsar proxy
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Proxy Authentication
+
+### authenticationProviders
+Authentication provider name list (a comma-separated list of class names
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+**Dynamic**: `false`
+
+**Category**: Proxy Authentication
+
+### anonymousUserRole
+When this parameter is not empty, unauthenticated users perform as anonymousUserRole
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Proxy Authorization
+
+### authorizationEnabled
+Whether authorization is enforced by the Pulsar proxy
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Proxy Authorization
+
+### authorizationProvider
+Authorization provider as a fully qualified class name
+
+**Type**: `java.lang.String`
+
+**Default**: `org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider`
+
+**Dynamic**: `false`
+
+**Category**: Proxy Authorization
+
+### forwardAuthorizationCredentials
+Whether client authorization credentials are forwarded to the broker for re-authorization.Authentication must be enabled via configuring `authenticationEnabled` to be true for thisto take effect
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Proxy Authorization
+
+### superUserRoles
+A list of role names (a comma-separated list of strings) that are treated as `super-user`, meaning they will be able to do all admin operations and publish & consume from all topics
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+**Dynamic**: `false`
+
+**Category**: Proxy Authorization
+
+### maxConcurrentInboundConnections
+Max concurrent inbound connections. The proxy will reject requests beyond that
+
+**Type**: `int`
+
+**Default**: `10000`
+
+**Dynamic**: `false`
+
+**Category**: RateLimiting
+
+### maxConcurrentInboundConnectionsPerIp
+The maximum number of connections per IP. If it exceeds, new connections are rejected.
+
+**Type**: `int`
+
+**Default**: `0`
+
+**Dynamic**: `false`
+
+**Category**: RateLimiting
+
+### maxConcurrentLookupRequests
+Max concurrent lookup requests. The proxy will reject requests beyond that
+
+**Type**: `int`
+
+**Default**: `50000`
+
+**Dynamic**: `false`
+
+**Category**: RateLimiting
+
+### kinitCommand
+kerberos kinit command.
+
+**Type**: `java.lang.String`
+
+**Default**: `/usr/bin/kinit`
+
+**Dynamic**: `false`
+
+**Category**: SASL Authentication Provider
+
+### saslJaasClientAllowedIds
+This is a regexp, which limits the range of possible ids which can connect to the Broker using SASL.
+ Default value is: ".*pulsar.*", so only clients whose id contains 'pulsar' are allowed to connect.
+
+**Type**: `java.lang.String`
+
+**Default**: `.*pulsar.*`
+
+**Dynamic**: `false`
+
+**Category**: SASL Authentication Provider
+
+### saslJaasServerRoleTokenSignerSecretPath
+Path to file containing the secret to be used to SaslRoleTokenSigner
+The secret can be specified like:
+saslJaasServerRoleTokenSignerSecretPath=file:///my/saslRoleTokenSignerSecret.key.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: SASL Authentication Provider
+
+### saslJaasServerSectionName
+Service Principal, for login context name. Default value is "PulsarProxy".
+
+**Type**: `java.lang.String`
+
+**Default**: `PulsarProxy`
+
+**Dynamic**: `false`
+
+**Category**: SASL Authentication Provider
+
+### advertisedAddress
+Hostname or IP address the service advertises to the outside world. If not set, the value of `InetAddress.getLocalHost().getCanonicalHostName()` is used.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### bindAddress
+Hostname or IP address the service binds on
+
+**Type**: `java.lang.String`
+
+**Default**: `0.0.0.0`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### haProxyProtocolEnabled
+Enable or disable the proxy protocol.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### httpServerAcceptQueueSize
+Capacity for accept queue in the HTTP server Default is set to 8192.
+
+**Type**: `int`
+
+**Default**: `8192`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### httpServerThreadPoolQueueSize
+Capacity for thread pool queue in the HTTP server Default is set to 8192.
+
+**Type**: `int`
+
+**Default**: `8192`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### maxConcurrentHttpRequests
+Max concurrent web requests
+
+**Type**: `int`
+
+**Default**: `1024`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### maxHttpServerConnections
+Maximum number of inbound http connections. (0 to disable limiting)
+
+**Type**: `int`
+
+**Default**: `2048`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### maxMessageSize
+Max size of messages.
+
+**Type**: `int`
+
+**Default**: `5242880`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### metadataStoreCacheExpirySeconds
+Metadata store cache expiry time in seconds.
+
+**Type**: `int`
+
+**Default**: `300`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### metadataStoreSessionTimeoutMillis
+Metadata store session timeout in milliseconds.
+
+**Type**: `int`
+
+**Default**: `30000`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### narExtractionDirectory
+The directory where nar Extraction happens
+
+**Type**: `java.lang.String`
+
+**Default**: `/tmp`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### numAcceptorThreads
+Number of threads used for Netty Acceptor. Default is set to `1`
+
+**Type**: `int`
+
+**Default**: `1`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### numIOThreads
+Number of threads used for Netty IO. Default is set to `2 * Runtime.getRuntime().availableProcessors()`
+
+**Type**: `int`
+
+**Default**: `4`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### proxyLogLevel
+Proxy log level, default is 0. 0: Do not log any tcp channel info 1: Parse and log any tcp channel info and command info without message body 2: Parse and log channel info, command info and message body
+
+**Type**: `java.util.Optional`
+
+**Default**: `Optional[0]`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### proxyZeroCopyModeEnabled
+Enables zero-copy transport of data across network interfaces using the spice. Zero copy mode cannot be used when TLS is enabled or when proxyLogLevel is \> 0.
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### servicePort
+The port for serving binary protobuf request
+
+**Type**: `java.util.Optional`
+
+**Default**: `Optional[6650]`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### servicePortTls
+The port for serving tls secured binary protobuf request
+
+**Type**: `java.util.Optional`
+
+**Default**: `Optional.empty`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### statusFilePath
+Path for the file used to determine the rotation status for the proxy instance when responding to service discovery health checks
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### webServicePort
+The port for serving http requests
+
+**Type**: `java.util.Optional`
+
+**Default**: `Optional[8080]`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### webServicePortTls
+The port for serving https requests
+
+**Type**: `java.util.Optional`
+
+**Default**: `Optional.empty`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+### tlsAllowInsecureConnection
+Accept untrusted TLS certificate from client.
+
+If true, a client with a cert which cannot be verified with the `tlsTrustCertsFilePath` cert will be allowed to connect to the server, though the cert will not be used for client authentication
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: TLS
+
+### tlsCertRefreshCheckDurationSec
+Tls cert refresh duration in seconds (set 0 to check on every new connection)
+
+**Type**: `long`
+
+**Default**: `300`
+
+**Dynamic**: `false`
+
+**Category**: TLS
+
+### tlsCertificateFilePath
+Path for the TLS certificate file
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: TLS
+
+### tlsCiphers
+Specify the tls cipher the proxy will use to negotiate during TLS Handshake (a comma-separated list of ciphers).
+
+Examples:- [TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256]
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+**Dynamic**: `false`
+
+**Category**: TLS
+
+### tlsHostnameVerificationEnabled
+Whether the hostname is validated when the proxy creates a TLS connection with brokers
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: TLS
+
+### tlsKeyFilePath
+Path for the TLS private key file
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: TLS
+
+### tlsProtocols
+Specify the tls protocols the broker will use to negotiate during TLS handshake (a comma-separated list of protocol names).
+
+Examples:- [TLSv1.3, TLSv1.2]
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+**Dynamic**: `false`
+
+**Category**: TLS
+
+### tlsRequireTrustedClientCertOnConnect
+Whether client certificates are required for TLS.
+
+ Connections are rejected if the client certificate isn't trusted
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: TLS
+
+### tlsTrustCertsFilePath
+Path for the trusted TLS certificate file.
+
+This cert is used to verify that any certs presented by connecting clients are signed by a certificate authority. If this verification fails, then the certs are untrusted and the connections are dropped
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: TLS
+
+### webServiceTlsCiphers
+Specify the tls cipher the proxy's web service will use to negotiate during TLS Handshake.
+
+Example:- [TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256]
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+**Dynamic**: `false`
+
+**Category**: TLS
+
+### webServiceTlsProtocols
+Specify the tls protocols the proxy's web service will use to negotiate during TLS Handshake.
+
+Example:- [TLSv1.3, TLSv1.2]
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+**Dynamic**: `false`
+
+**Category**: TLS
+
+### clusterName
+Name of the cluster to which this broker belongs to
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: WebSocket
+
+### webSocketServiceEnabled
+Enable or disable the WebSocket servlet
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: WebSocket
+
+### additionalServletDirectory
+The directory to locate proxy additional servlet
+
+**Type**: `java.lang.String`
+
+**Default**: `./proxyAdditionalServlet`
+
+**Dynamic**: `false`
+
+**Category**: proxy plugin
+
+### additionalServlets
+List of proxy additional servlet to load, which is a list of proxy additional servlet names
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+**Dynamic**: `false`
+
+**Category**: proxy plugin
+
+### proxyAdditionalServletDirectory
+The directory to locate proxy additional servlet
+
+**Type**: `java.lang.String`
+
+**Default**: `./proxyAdditionalServlet`
+
+**Dynamic**: `false`
+
+**Category**: proxy plugin
+
+### proxyAdditionalServlets
+List of proxy additional servlet to load, which is a list of proxy additional servlet names
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+**Dynamic**: `false`
+
+**Category**: proxy plugin
+
+### proxyExtensions
+List of messaging protocols to load, which is a list of extension names
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+**Dynamic**: `false`
+
+**Category**: proxy plugin
+
+### proxyExtensionsDirectory
+The directory to locate proxy extensions
+
+**Type**: `java.lang.String`
+
+**Default**: `./proxyextensions`
+
+**Dynamic**: `false`
+
+**Category**: proxy plugin
+
+### useSeparateThreadPoolForProxyExtensions
+Use a separate ThreadPool for each Proxy Extension
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `false`
+
+**Category**: proxy plugin
+
+## Deprecated
+### configurationStoreServers
+Configuration store connection string (as a comma-separated list). Deprecated in favor of `configurationMetadataStoreUrl`
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Broker Discovery
+
+### globalZookeeperServers
+Global ZooKeeper quorum connection string (as a comma-separated list)
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Broker Discovery
+
+### zooKeeperCacheExpirySeconds
+ZooKeeper cache expiry time in seconds. @deprecated - Use metadataStoreCacheExpirySeconds instead.
+
+**Type**: `int`
+
+**Default**: `-1`
+
+**Dynamic**: `false`
+
+**Category**: Broker Discovery
+
+### zookeeperServers
+The ZooKeeper quorum connection string (as a comma-separated list)
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Broker Discovery
+
+### zookeeperSessionTimeoutMs
+ZooKeeper session timeout in milliseconds. @deprecated - Use metadataStoreSessionTimeoutMillis instead.
+
+**Type**: `int`
+
+**Default**: `-1`
+
+**Dynamic**: `false`
+
+**Category**: Broker Discovery
+
+
diff --git a/static/reference/2.11.x/config/reference-configuration-standalone.md b/static/reference/2.11.x/config/reference-configuration-standalone.md
new file mode 100644
index 00000000000..750c9d8bbf4
--- /dev/null
+++ b/static/reference/2.11.x/config/reference-configuration-standalone.md
@@ -0,0 +1,5209 @@
+# Broker
+
+## Required
+### clusterName
+Name of the cluster to which this broker belongs to
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Server
+
+## Optional
+### topicFactoryClassName
+Factory class-name to create topic with custom workflow
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `true`
+
+**Category**:
+
+### zookeeperSessionExpiredPolicy
+There are two policies to apply when broker metadata session expires: session expired happens, "shutdown" or "reconnect".
+
+ With "shutdown", the broker will be restarted.
+
+ With "reconnect", the broker will keep serving the topics, while attempting to recreate a new session.
+
+**Type**: `org.apache.pulsar.broker.MetadataSessionExpiredPolicy`
+
+**Default**: `reconnect`
+
+**Dynamic**: `false`
+
+**Category**:
+
+### authenticationEnabled
+Enable authentication
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Authentication
+
+### authenticationProviders
+Authentication provider name list, which is a list of class names
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+**Dynamic**: `false`
+
+**Category**: Authentication
+
+### authenticationRefreshCheckSeconds
+Interval of time for checking for expired authentication credentials
+
+**Type**: `int`
+
+**Default**: `60`
+
+**Dynamic**: `false`
+
+**Category**: Authentication
+
+### brokerClientAuthenticationParameters
+Authentication parameters of the authentication plugin the broker is using to connect to other brokers
+
+**Type**: `java.lang.String`
+
+**Default**: ``
+
+**Dynamic**: `true`
+
+**Category**: Authentication
+
+### brokerClientAuthenticationPlugin
+Authentication settings of the broker itself.
+
+Used when the broker connects to other brokers, either in same or other clusters. Default uses plugin which disables authentication
+
+**Type**: `java.lang.String`
+
+**Default**: `org.apache.pulsar.client.impl.auth.AuthenticationDisabled`
+
+**Dynamic**: `true`
+
+**Category**: Authentication
+
+### brokerClientCertificateFilePath
+TLS certificate file for internal client, used by the internal client to authenticate with Pulsar brokers
+
+**Type**: `java.lang.String`
+
+**Default**: ``
+
+**Dynamic**: `false`
+
+**Category**: Authentication
+
+### brokerClientKeyFilePath
+TLS private key file for internal client, used by the internal client to authenticate with Pulsar brokers
+
+**Type**: `java.lang.String`
+
+**Default**: ``
+
+**Dynamic**: `false`
+
+**Category**: Authentication
+
+### brokerClientTrustCertsFilePath
+TLS trusted certificate file for internal client, used by the internal client to authenticate with Pulsar brokers
+
+**Type**: `java.lang.String`
+
+**Default**: ``
+
+**Dynamic**: `false`
+
+**Category**: Authentication
+
+### anonymousUserRole
+When this parameter is not empty, unauthenticated users perform as anonymousUserRole
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Authorization
+
+### authenticateOriginalAuthData
+If this flag is set then the broker authenticates the original Auth data else it just accepts the originalPrincipal and authorizes it (if required)
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Authorization
+
+### authorizationAllowWildcardsMatching
+Allow wildcard matching in authorization
+
+(wildcard matching only applicable if wildcard-char: * presents at first or last position eg: *.pulsar.service, pulsar.service.*)
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Authorization
+
+### authorizationEnabled
+Enforce authorization
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Authorization
+
+### authorizationProvider
+Authorization provider fully qualified class-name
+
+**Type**: `java.lang.String`
+
+**Default**: `org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider`
+
+**Dynamic**: `false`
+
+**Category**: Authorization
+
+### proxyRoles
+Role names that are treated as `proxy roles`.
+
+If the broker sees a request with role as proxyRoles - it will demand to see the original client role or certificate.
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+**Dynamic**: `false`
+
+**Category**: Authorization
+
+### superUserRoles
+Role names that are treated as `super-user`, meaning they will be able to do all admin operations and publish/consume from all topics
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+**Dynamic**: `true`
+
+**Category**: Authorization
+
+### additionalServletDirectory
+The directory to locate broker additional servlet
+
+**Type**: `java.lang.String`
+
+**Default**: `./brokerAdditionalServlet`
+
+**Dynamic**: `false`
+
+**Category**: Broker Plugin
+
+### additionalServlets
+List of broker additional servlet to load, which is a list of broker additional servlet names
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+**Dynamic**: `false`
+
+**Category**: Broker Plugin
+
+### functionsWorkerEnablePackageManagement
+Flag indicates enabling or disabling function worker using unified PackageManagement service.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Functions
+
+### functionsWorkerEnabled
+Flag indicates enabling or disabling function worker on brokers
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Functions
+
+### functionsWorkerServiceNarPackage
+The nar package for the function worker service
+
+**Type**: `java.lang.String`
+
+**Default**: ``
+
+**Dynamic**: `false`
+
+**Category**: Functions
+
+### disableHttpDebugMethods
+If true, the broker will reject all HTTP requests using the TRACE and TRACK verbs.
+ This setting may be necessary if the broker is deployed into an environment that uses http port
+ scanning and flags web servers allowing the TRACE method as insecure.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: HTTP
+
+### httpMaxRequestSize
+If \>0, it will reject all HTTP requests with bodies larged than the configured limit
+
+**Type**: `long`
+
+**Default**: `-1`
+
+**Dynamic**: `false`
+
+**Category**: HTTP
+
+### httpRequestsFailOnUnknownPropertiesEnabled
+Admin API fail on unknown request parameter in request-body. see PIP-179. Default false.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `true`
+
+**Category**: HTTP
+
+### httpRequestsLimitEnabled
+Enable the enforcement of limits on the incoming HTTP requests
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: HTTP
+
+### httpRequestsMaxPerSecond
+Max HTTP requests per seconds allowed. The excess of requests will be rejected with HTTP code 429 (Too many requests)
+
+**Type**: `double`
+
+**Default**: `100.0`
+
+**Dynamic**: `false`
+
+**Category**: HTTP
+
+### brokerClientSslProvider
+The TLS Provider used by internal client to authenticate with other Pulsar brokers
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### brokerClientTlsCiphers
+Specify the tls cipher the internal client will use to negotiate during TLS Handshake (a comma-separated list of ciphers).
+
+Examples:- [TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256].
+ used by the internal client to authenticate with Pulsar brokers
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### brokerClientTlsEnabledWithKeyStore
+Whether internal client use KeyStore type to authenticate with other Pulsar brokers
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### brokerClientTlsKeyStore
+TLS KeyStore path for internal client, used by the internal client to authenticate with Pulsar brokers
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### brokerClientTlsKeyStorePassword
+TLS KeyStore password for internal client, used by the internal client to authenticate with Pulsar brokers
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### brokerClientTlsKeyStoreType
+TLS KeyStore type configuration for internal client: JKS, PKCS12, used by the internal client to authenticate with Pulsar brokers
+
+**Type**: `java.lang.String`
+
+**Default**: `JKS`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### brokerClientTlsProtocols
+Specify the tls protocols the broker will use to negotiate during TLS handshake (a comma-separated list of protocol names).
+
+Examples:- [TLSv1.3, TLSv1.2]
+ used by the internal client to authenticate with Pulsar brokers
+
+**Type**: `java.util.Set`
+
+**Default**: `[]`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### brokerClientTlsTrustStore
+TLS TrustStore path for internal client, used by the internal client to authenticate with Pulsar brokers
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### brokerClientTlsTrustStorePassword
+TLS TrustStore password for internal client, used by the internal client to authenticate with Pulsar brokers
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### brokerClientTlsTrustStoreType
+TLS TrustStore type configuration for internal client: JKS, PKCS12 used by the internal client to authenticate with Pulsar brokers
+
+**Type**: `java.lang.String`
+
+**Default**: `JKS`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### tlsEnabledWithKeyStore
+Enable TLS with KeyStore type configuration in broker
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### tlsKeyStore
+TLS KeyStore path in broker
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### tlsKeyStorePassword
+TLS KeyStore password for broker
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### tlsKeyStoreType
+TLS KeyStore type configuration in broker: JKS, PKCS12
+
+**Type**: `java.lang.String`
+
+**Default**: `JKS`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### tlsProvider
+Specify the TLS provider for the broker service:
+When using TLS authentication with CACert, the valid value is either OPENSSL or JDK.
+When using TLS authentication with KeyStore, available values can be SunJSSE, Conscrypt and etc.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### tlsTrustStore
+TLS TrustStore path in broker
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### tlsTrustStorePassword
+TLS TrustStore password for broker, null means empty password.
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### tlsTrustStoreType
+TLS TrustStore type configuration in broker: JKS, PKCS12
+
+**Type**: `java.lang.String`
+
+**Default**: `JKS`
+
+**Dynamic**: `false`
+
+**Category**: KeyStoreTLS
+
+### defaultNamespaceBundleSplitAlgorithm
+Default algorithm name for namespace bundle split
+
+**Type**: `java.lang.String`
+
+**Default**: `range_equally_divide`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### flowOrQpsDifferenceThresholdPercentage
+In FlowOrQpsEquallyDivideBundleSplitAlgorithm, if msgRate \>= loadBalancerNamespaceBundleMaxMsgRate * (100 + flowOrQpsDifferenceThresholdPercentage)/100.0 or throughput \>= loadBalancerNamespaceBundleMaxBandwidthMbytes * (100 + flowOrQpsDifferenceThresholdPercentage)/100.0, execute split bundle
+
+**Type**: `int`
+
+**Default**: `10`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerAutoBundleSplitEnabled
+enable/disable automatic namespace bundle split
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerAutoUnloadSplitBundlesEnabled
+enable/disable automatic unloading of split bundles
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerAverageResourceUsageDifferenceThresholdPercentage
+Average resource usage difference threshold to determine a broker whether to be a best candidate in LeastResourceUsageWithWeight.(eg: broker1 with 10% resource usage with weight and broker2 with 30% and broker3 with 80% will have 40% average resource usage. The placement strategy can select broker1 and broker2 as best candidates.)
+
+**Type**: `int`
+
+**Default**: `10`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerBandwithInResourceWeight
+BandwithIn Resource Usage Weight
+
+**Type**: `double`
+
+**Default**: `1.0`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerBandwithOutResourceWeight
+BandwithOut Resource Usage Weight
+
+**Type**: `double`
+
+**Default**: `1.0`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerBrokerMaxTopics
+Usage threshold to allocate max number of topics to broker
+
+**Type**: `int`
+
+**Default**: `50000`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerBrokerOverloadedThresholdPercentage
+Usage threshold to determine a broker as over-loaded
+
+**Type**: `int`
+
+**Default**: `85`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerBrokerThresholdShedderPercentage
+Usage threshold to determine a broker whether to start threshold shedder
+
+**Type**: `int`
+
+**Default**: `10`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerBundleUnloadMinThroughputThreshold
+Bundle unload minimum throughput threshold (MB)
+
+**Type**: `double`
+
+**Default**: `10.0`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerCPUResourceWeight
+CPU Resource Usage Weight
+
+**Type**: `double`
+
+**Default**: `1.0`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerDirectMemoryResourceWeight
+Direct Memory Resource Usage Weight
+
+**Type**: `double`
+
+**Default**: `1.0`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerDistributeBundlesEvenlyEnabled
+enable/disable distribute bundles evenly
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerEnabled
+Enable load balancer
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `false`
+
+**Category**: Load Balancer
+
+### loadBalancerHistoryResourcePercentage
+Resource history Usage Percentage When adding new resource usage info
+
+**Type**: `double`
+
+**Default**: `0.9`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerHostUsageCheckIntervalMinutes
+Frequency of report to collect, in minutes
+
+**Type**: `int`
+
+**Default**: `1`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerLoadPlacementStrategy
+load balance placement strategy
+
+**Type**: `java.lang.String`
+
+**Default**: `org.apache.pulsar.broker.loadbalance.impl.LeastLongTermMessageRate`
+
+**Dynamic**: `false`
+
+**Category**: Load Balancer
+
+### loadBalancerLoadSheddingStrategy
+load balance load shedding strategy (It requires broker restart if value is changed using dynamic config). Default is ThresholdShedder since 2.10.0
+
+**Type**: `java.lang.String`
+
+**Default**: `org.apache.pulsar.broker.loadbalance.impl.ThresholdShedder`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerMemoryResourceWeight
+Memory Resource Usage Weight
+
+**Type**: `double`
+
+**Default**: `1.0`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerMsgRateDifferenceShedderThreshold
+Message-rate percentage threshold between highest and least loaded brokers for uniform load shedding. (eg: broker1 with 50K msgRate and broker2 with 30K msgRate will have 66% msgRate difference and load balancer can unload bundles from broker-1 to broker-2)
+
+**Type**: `double`
+
+**Default**: `50.0`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerMsgThroughputMultiplierDifferenceShedderThreshold
+Message-throughput threshold between highest and least loaded brokers for uniform load shedding. (eg: broker1 with 450MB msgRate and broker2 with 100MB msgRate will have 4.5 times msgThroughout difference and load balancer can unload bundles from broker-1 to broker-2)
+
+**Type**: `double`
+
+**Default**: `4.0`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerNamespaceBundleMaxBandwidthMbytes
+maximum bandwidth (in + out) in a bundle, otherwise bundle split will be triggered
+
+**Type**: `int`
+
+**Default**: `100`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerNamespaceBundleMaxMsgRate
+maximum msgRate (in + out) in a bundle, otherwise bundle split will be triggered
+
+**Type**: `int`
+
+**Default**: `30000`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerNamespaceBundleMaxSessions
+maximum sessions (producers + consumers) in a bundle, otherwise bundle split will be triggered(disable threshold check with value -1)
+
+**Type**: `int`
+
+**Default**: `1000`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerNamespaceBundleMaxTopics
+maximum topics in a bundle, otherwise bundle split will be triggered
+
+**Type**: `int`
+
+**Default**: `1000`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerNamespaceMaximumBundles
+maximum number of bundles in a namespace
+
+**Type**: `int`
+
+**Default**: `128`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerOverrideBrokerNicSpeedGbps
+Option to override the auto-detected network interfaces max speed
+
+**Type**: `java.util.Optional`
+
+**Default**: `Optional.empty`
+
+**Dynamic**: `false`
+
+**Category**: Load Balancer
+
+### loadBalancerReportUpdateMaxIntervalMinutes
+Min delay of load report to collect, in milli-seconds
+
+**Type**: `int`
+
+**Default**: `15`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerReportUpdateMinIntervalMillis
+maximum interval to update load report
+
+**Type**: `int`
+
+**Default**: `5000`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerReportUpdateThresholdPercentage
+Percentage of change to trigger load report update
+
+**Type**: `int`
+
+**Default**: `10`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerResourceQuotaUpdateIntervalMinutes
+Interval to flush dynamic resource quota to ZooKeeper
+
+**Type**: `int`
+
+**Default**: `15`
+
+**Dynamic**: `false`
+
+**Category**: Load Balancer
+
+### loadBalancerSheddingEnabled
+Enable/disable automatic bundle unloading for load-shedding
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerSheddingGracePeriodMinutes
+Prevent the same topics to be shed and moved to other broker more than once within this timeframe
+
+**Type**: `long`
+
+**Default**: `30`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadBalancerSheddingIntervalMinutes
+Load shedding interval.
+
+Broker periodically checks whether some traffic should be offload from some over-loaded broker to other under-loaded brokers
+
+**Type**: `int`
+
+**Default**: `1`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### loadManagerClassName
+Name of load manager to use
+
+**Type**: `java.lang.String`
+
+**Default**: `org.apache.pulsar.broker.loadbalance.impl.ModularLoadManagerImpl`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### lowerBoundarySheddingEnabled
+When [current usage < average usage - threshold], the broker with the highest load will be triggered to unload
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Load Balancer
+
+### maxUnloadBundleNumPerShedding
+For each uniform balanced unload, the maximum number of bundles that can be unloaded. The default value is -1, which means no limit
+
+**Type**: `int`
+
+**Default**: `-1`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### maxUnloadPercentage
+In the UniformLoadShedder strategy, the maximum unload ratio.
+
+**Type**: `double`
+
+**Default**: `0.2`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### minUnloadMessage
+In the UniformLoadShedder strategy, the minimum message that triggers unload.
+
+**Type**: `int`
+
+**Default**: `1000`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### minUnloadMessageThroughput
+In the UniformLoadShedder strategy, the minimum throughput that triggers unload.
+
+**Type**: `int`
+
+**Default**: `1048576`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### namespaceBundleUnloadingTimeoutMs
+Time to wait for the unloading of a namespace bundle
+
+**Type**: `long`
+
+**Default**: `60000`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### supportedNamespaceBundleSplitAlgorithms
+Supported algorithms name for namespace bundle split
+
+**Type**: `java.util.List`
+
+**Default**: `[range_equally_divide, topic_count_equally_divide, specified_positions_divide, flow_or_qps_equally_divide]`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
+### aggregatePublisherStatsByProducerName
+If true, aggregate publisher stats of PartitionedTopicStats by producerName
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Metrics
+
+### authenticateMetricsEndpoint
+Whether the '/metrics' endpoint requires authentication. Defaults to false.'authenticationEnabled' must also be set for this to take effect.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Metrics
+
+### exposeBundlesMetricsInPrometheus
+Enable expose the broker bundles metrics.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `true`
+
+**Category**: Metrics
+
+### exposeConsumerLevelMetricsInPrometheus
+If true, export consumer level metrics otherwise namespace level
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Metrics
+
+### exposeManagedCursorMetricsInPrometheus
+If true, export managed cursor metrics
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Metrics
+
+### exposeManagedLedgerMetricsInPrometheus
+If true, export managed ledger metrics (aggregated by namespace)
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `false`
+
+**Category**: Metrics
+
+### exposePreciseBacklogInPrometheus
+Enable expose the precise backlog stats.
+ Set false to use published counter and consumed counter to calculate,
+ this would be more efficient but may be inaccurate. Default is false.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Metrics
+
+### exposeProducerLevelMetricsInPrometheus
+If true, export producer level metrics otherwise namespace level
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Metrics
+
+### exposePublisherStats
+If true, export publisher stats when returning topics stats from the admin rest api
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `false`
+
+**Category**: Metrics
+
+### exposeSubscriptionBacklogSizeInPrometheus
+Enable expose the backlog size for each subscription when generating stats.
+ Locking is used for fetching the status so default to false.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Metrics
+
+### exposeTopicLevelMetricsInPrometheus
+If true, export topic level metrics otherwise namespace level
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `false`
+
+**Category**: Metrics
+
+### jvmGCMetricsLoggerClassName
+Classname of Pluggable JVM GC metrics logger that can log GC specific metrics
+
+**Type**: `java.lang.String`
+
+**Default**: `null`
+
+**Dynamic**: `false`
+
+**Category**: Metrics
+
+### metricsBufferResponse
+If true, export buffered metrics
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Metrics
+
+### metricsServletTimeoutMs
+Time in milliseconds that metrics endpoint would time out. Default is 30s.
+ Increase it if there are a lot of topics to expose topic-level metrics.
+ Set it to 0 to disable timeout.
+
+**Type**: `long`
+
+**Default**: `30000`
+
+**Dynamic**: `false`
+
+**Category**: Metrics
+
+### splitTopicAndPartitionLabelInPrometheus
+Enable splitting topic and partition label in Prometheus.
+ If enabled, a topic name will split into 2 parts, one is topic name without partition index,
+ another one is partition index, e.g. (topic=xxx, partition=0).
+ If the topic is a non-partitioned topic, -1 will be used for the partition index.
+ If disabled, one label to represent the topic and partition, e.g. (topic=xxx-partition-0)
+ Default is false.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Metrics
+
+### statsUpdateFrequencyInSecs
+Stats update frequency in seconds
+
+**Type**: `int`
+
+**Default**: `60`
+
+**Dynamic**: `false`
+
+**Category**: Metrics
+
+### statsUpdateInitialDelayInSecs
+Stats update initial delay in seconds
+
+**Type**: `int`
+
+**Default**: `60`
+
+**Dynamic**: `false`
+
+**Category**: Metrics
+
+### enablePackagesManagement
+Enable the packages management service or not
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `false`
+
+**Category**: Packages Management
+
+### packagesManagementLedgerRootPath
+The bookkeeper ledger root path
+
+**Type**: `java.lang.String`
+
+**Default**: `/ledgers`
+
+**Dynamic**: `false`
+
+**Category**: Packages Management
+
+### packagesManagementStorageProvider
+The packages management service storage service provider
+
+**Type**: `java.lang.String`
+
+**Default**: `org.apache.pulsar.packages.management.storage.bookkeeper.BookKeeperPackagesStorageProvider`
+
+**Dynamic**: `false`
+
+**Category**: Packages Management
+
+### packagesReplicas
+When the packages storage provider is bookkeeper, you can use this configuration to
+control the number of replicas for storing the package
+
+**Type**: `int`
+
+**Default**: `1`
+
+**Dynamic**: `false`
+
+**Category**: Packages Management
+
+### activeConsumerFailoverDelayTimeMillis
+How long to delay rewinding cursor and dispatching messages when active consumer is changed
+
+**Type**: `int`
+
+**Default**: `1000`
+
+**Dynamic**: `false`
+
+**Category**: Policies
... 14692 lines suppressed ...
[pulsar-site] 02/02: fix site-updater branch names
Posted by ti...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
tison pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pulsar-site.git
commit adbe8fdb722385551d4dd669ceaf96d666ce2013
Author: tison <wa...@gmail.com>
AuthorDate: Sun Jan 15 11:25:40 2023 +0800
fix site-updater branch names
Signed-off-by: tison <wa...@gmail.com>
---
tools/pytools/bin/site-updater.py | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/tools/pytools/bin/site-updater.py b/tools/pytools/bin/site-updater.py
index 354e6df3a29..98f4d4462b9 100755
--- a/tools/pytools/bin/site-updater.py
+++ b/tools/pytools/bin/site-updater.py
@@ -33,11 +33,10 @@ if __name__ == '__main__':
args = parser.parse_args()
git = find_command('git', msg="git is required")
- branch = 'master'
with tempfile.TemporaryDirectory() as cwd:
if args.master_path is None:
- run(git, 'clone', '-b', branch, '--depth', '1', 'https://github.com/apache/pulsar', cwd=cwd)
+ run(git, 'clone', '-b', 'master', '--depth', '1', 'https://github.com/apache/pulsar', cwd=cwd)
master = Path(cwd) / 'pulsar'
else:
master = Path(args.master_path)
@@ -45,4 +44,4 @@ if __name__ == '__main__':
commit = run_pipe(git, 'rev-parse', '--short', 'HEAD', cwd=master).read().strip()
msg = f'Docs sync done from apache/pulsar (#{commit})'
- site_uploader.execute(args.push, msg, root_path(), branch)
+ site_uploader.execute(args.push, msg, root_path(), 'main')