This is an automated email from the ASF dual-hosted git repository.
github-actions[bot] pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pulsar-site.git
The following commit(s) were added to refs/heads/main by this push:
new 559bf8b8124 Docs sync done from apache/pulsar (#1eb08ed)
559bf8b8124 is described below
commit 559bf8b812408a33e2314e3021cc315e1477e46c
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Tue Jun 9 01:42:54 2026 +0000
Docs sync done from apache/pulsar (#1eb08ed)
---
.../next/client/client-configuration-client.md | 19 ++-
.../next/client/client-configuration-consumer.md | 14 +-
.../next/client/client-configuration-producer.md | 2 +-
.../next/client/client-configuration-reader.md | 6 +-
.../next/config/reference-configuration-broker.md | 162 ++++++++++++++++++---
.../next/config/reference-configuration-client.md | 19 ++-
.../config/reference-configuration-standalone.md | 162 ++++++++++++++++++---
.../reference/next/pulsar-client/pulsar-client.md | 4 +-
static/reference/next/pulsar-perf/pulsar-perf.md | 50 ++-----
.../next/pulsar/initialize-cluster-metadata.md | 1 +
static/reference/next/pulsar/standalone.md | 1 -
11 files changed, 338 insertions(+), 102 deletions(-)
diff --git a/static/reference/next/client/client-configuration-client.md
b/static/reference/next/client/client-configuration-client.md
index 3940423e3d2..12d00b8c014 100644
--- a/static/reference/next/client/client-configuration-client.md
+++ b/static/reference/next/client/client-configuration-client.md
@@ -52,14 +52,14 @@ The number of concurrent lookup requests that can be sent
on each broker connect
**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
+Release the connection if it is not used for more than
[connectionMaxIdleSeconds] seconds. If [connectionMaxIdleSeconds] < 0, disables
the feature that auto-releases the idle connections
**Type**: `int`
**Default**: `60`
### 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.
+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`
@@ -129,7 +129,7 @@ Seconds of keeping alive interval for each client broker
connection.
**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.
+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 be enabled on the broker
side.
**Type**: `java.lang.String`
@@ -241,14 +241,14 @@ The implementation class of ServiceUrlProvider used to
generate ServiceUrl.
**Default**: `null`
### serviceUrlQuarantineInitDurationMs
-The initial duration (in milliseconds) to quarantine endpoints that fail to
connect.A value of 0 means don't quarantine any endpoints even if they fail.
+The initial duration (in milliseconds) to quarantine endpoints that fail to
connect. A value of 0 means don't quarantine any endpoints even if they fail.
**Type**: `long`
**Default**: `60000`
### serviceUrlQuarantineMaxDurationMs
-The max duration (in milliseconds) to quarantine endpoints that fail to
connect.A value of 0 means don't quarantine any endpoints even if they fail.
+The max duration (in milliseconds) to quarantine endpoints that fail to
connect. A value of 0 means don't quarantine any endpoints even if they fail.
**Type**: `long`
@@ -268,6 +268,13 @@ Password of SOCKS5 proxy.
**Default**: `null`
+### socks5ProxyScope
+Selector that controls which connections go through the SOCKS5 proxy.
BINARY_ONLY (default for PulsarClient) only routes Pulsar binary protocol
connections; HTTP_ONLY only routes HTTP/HTTPS traffic (HTTP lookups, failover
HTTP clients, admin REST); BOTH routes both. This preserves backward
compatibility with the pre-existing behavior where the SOCKS5 proxy on
PulsarClient only applied to the binary protocol.
+
+**Type**: `org.apache.pulsar.client.api.Socks5ProxyScope`
+
+**Default**: `BINARY_ONLY`
+
### socks5ProxyUsername
User name of SOCKS5 proxy.
@@ -276,7 +283,7 @@ User name of SOCKS5 proxy.
**Default**: `null`
### sslFactoryPlugin
-SSL Factory Plugin class to provide SSLEngine and SSLContext objects. The
default class used is DefaultPulsarSslFactory.
+SSL Factory Plugin class to provide SSLEngine and SSLContext objects. The
default class used is DefaultPulsarSslFactory.
**Type**: `java.lang.String`
diff --git a/static/reference/next/client/client-configuration-consumer.md
b/static/reference/next/client/client-configuration-consumer.md
index 794341c5bd4..d8153acf06d 100644
--- a/static/reference/next/client/client-configuration-consumer.md
+++ b/static/reference/next/client/client-configuration-consumer.md
@@ -17,7 +17,7 @@ Timeout of unacked messages
**Default**: `0`
### ackTimeoutRedeliveryBackoff
-Interface for custom message is ackTimeout policy. You can specify
`RedeliveryBackoff` for a consumer.
+Interface for the custom message ack-timeout policy. You can specify
`RedeliveryBackoff` for a consumer.
**Type**: `org.apache.pulsar.client.api.RedeliveryBackoff`
@@ -62,12 +62,12 @@ Consumer name
### 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.
+* **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.
+If messages contain batch messages, a client is not 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.
@@ -136,9 +136,9 @@ This setting reduces the receiver queue size for individual
partitions if the to
**Default**: `50000`
### negativeAckPrecisionBitCnt
-The redelivery time precision bit count. The lower bits of the redelivery time
will betrimmed to reduce the memory occupation.
-The default value is 8, which means theredelivery time will be bucketed by
256ms, the redelivery time could be earlier(no later)than the expected time,
but no more than 256ms.
-If set to k, the redelivery time will bebucketed by 2^k ms.
+The redelivery time precision bit count. The lower bits of the redelivery time
will be trimmed to reduce the memory occupation.
+The default value is 8, which means the redelivery time will be bucketed by
256ms, the redelivery time could be earlier (no later) than the expected time,
but no more than 256ms.
+If set to k, the redelivery time will be bucketed by 2^k ms.
If the value is 0, the redelivery time will be accurate to ms.
**Type**: `int`
@@ -146,7 +146,7 @@ If the value is 0, the redelivery time will be accurate to
ms.
**Default**: `8`
### negativeAckRedeliveryBackoff
-Interface for custom message is negativeAcked policy. You can specify
`RedeliveryBackoff` for a consumer.
+Interface for the custom message negative-acknowledgment policy. You can
specify `RedeliveryBackoff` for a consumer.
**Type**: `org.apache.pulsar.client.api.RedeliveryBackoff`
diff --git a/static/reference/next/client/client-configuration-producer.md
b/static/reference/next/client/client-configuration-producer.md
index d8cbfd5c8c3..f302dd80902 100644
--- a/static/reference/next/client/client-configuration-producer.md
+++ b/static/reference/next/client/client-configuration-producer.md
@@ -73,7 +73,7 @@ Hashing function determining the partition where you publish
a particular messag
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
+* `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`
diff --git a/static/reference/next/client/client-configuration-reader.md
b/static/reference/next/client/client-configuration-reader.md
index b37e9edc73b..422a3374ac3 100644
--- a/static/reference/next/client/client-configuration-reader.md
+++ b/static/reference/next/client/client-configuration-reader.md
@@ -17,10 +17,10 @@ Consumer should take action when it receives a message that
can not be decrypted
The message decompression fails.
-If messages contain batch messages, a client is not be able to retrieve
individual messages in batch.
+If messages contain batch messages, a client is not 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.cannot set with {@link
ReaderDecryptFailListener}, and if ReaderDecryptFailListener are set,
-application should responsible for handling decryption failure.
+Delivered encrypted message contains {@link EncryptionContext} which contains
encryption and compression information in it using which application can
decrypt consumed message payload. It cannot be set together with a {@link
ReaderDecryptFailListener}, and if a ReaderDecryptFailListener is set,
+the application is responsible for handling decryption failures.
**Type**: `org.apache.pulsar.client.api.ConsumerCryptoFailureAction`
diff --git a/static/reference/next/config/reference-configuration-broker.md
b/static/reference/next/config/reference-configuration-broker.md
index 0effe14dda8..2144dfec527 100644
--- a/static/reference/next/config/reference-configuration-broker.md
+++ b/static/reference/next/config/reference-configuration-broker.md
@@ -1238,6 +1238,17 @@ Name of load manager to use
**Category**: Load Balancer
+### loadManagerMigrationEnabled
+When load manager migration is enabled, the broker will redirect requests to
another broker if the load manager on the current broker is not using the load
manager of the latest service lookup data available in the metadata store.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
### loadManagerServiceUnitStateTableViewClassName
Name of ServiceUnitStateTableView implementation class to use
@@ -1578,6 +1589,28 @@ Enable the packages management service or not
**Category**: Packages Management
+### packagesManagementAllowLegacyJavaSerialization
+Whether to accept reading legacy Java-serialized package metadata written by
older brokers. A strict ObjectInputFilter allowlist is applied unconditionally
whenever the legacy path runs. Defaults to true for upgrade compatibility;
disable once all existing packages have been re-uploaded or rewritten via
updateMeta. This default is scheduled to flip to false in a future release.
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `false`
+
+**Category**: Packages Management
+
+### packagesManagementJsonSerializationEnabled
+Whether new package metadata writes use JSON (safe) or the legacy Java
serialization format. Defaults to true. Set to false only as a temporary
rollback path; the legacy format will be removed in a future release.
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `false`
+
+**Category**: Packages Management
+
### packagesManagementLedgerRootPath
The bookkeeper ledger root path
@@ -2346,6 +2379,28 @@ Interval (in seconds) for ResourceGroupService periodic
tasks while resource gro
**Category**: Policies
+### scalableTopicConsumerSessionGracePeriodSeconds
+Grace period (seconds) the controller leader waits for a disconnected
scalable-topic consumer to reconnect with the same consumer name before
evicting its session and reassigning its segments to remaining consumers.
+
+**Type**: `int`
+
+**Default**: `60`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### scalableTopicsEnabled
+Enables the scalable-topics V5 API on this broker. When disabled, the broker
advertises supports_scalable_topics=false in CommandConnected feature flags and
rejects scalable-topic commands from clients.
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
### subscribeRatePeriodPerConsumerInSecond
Rate period for {subscribeThrottlingRatePerConsumer}. Default is 30s.
@@ -2808,7 +2863,7 @@ Whether to enable the acknowledge of batch local index
**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.
+Hostname or IP advertised to clients for the internal listener. Combined with
the *Port properties it forms the internal listener's advertised URLs (e.g.
`pulsar://<advertisedAddress\>:<brokerServicePort\>`). If not set, defaults to
`InetAddress.getLocalHost().getCanonicalHostName()`.
**Type**: `java.lang.String`
@@ -2819,7 +2874,10 @@ Hostname or IP address the service advertises to the
outside world. If not set,
**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.
+Declares additional advertised listeners — typically external listeners that
complement the internal one.
+ Format: comma-separated `<listener_name\>:<scheme\>://<host\>:<port\>`
entries. Supported schemes: `pulsar`, `pulsar+ssl`, `http`, `https`. A listener
name may be repeated to declare multiple schemes for the same listener.
+ The internal listener is auto-configured from `advertisedAddress` plus the
*Port properties (`brokerServicePort` / `brokerServicePortTls` /
`webServicePort` / `webServicePortTls`) so it does not need an entry here. URLs
declared here under `internalListenerName` do override that auto-configured
listener, but this is not recommended because it can route cluster-internal
traffic through an external endpoint (for example, an external load balancer).
+ Legacy fallback: when `internalListenerName` is left blank, the first
listener parsed from this property is used as the internal listener (so in that
case its entry here is required).
**Type**: `java.lang.String`
@@ -2863,7 +2921,7 @@ Defines how the broker will anonymize the role and
originalAuthRole before loggi
**Category**: Server
### bindAddress
-Hostname or IP address the service binds on
+Local network interface IP for the internal listener's port bindings. Use a
specific local IP to bind to a single interface, or `0.0.0.0` to bind on all
interfaces. Default is `0.0.0.0`.
**Type**: `java.lang.String`
@@ -2874,7 +2932,12 @@ Hostname or IP address the service binds on
**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.
+Per-listener socket bindings.
+ The internal listener's bindings are derived automatically from `bindAddress`
plus the port properties (`brokerServicePort` / `brokerServicePortTls` /
`webServicePort` / `webServicePortTls`) and do not need to be repeated here.
+ PIP-95 smart listener selection routes a connection to the listener whose
port it arrived on. For the Pulsar binary protocol (`pulsar` / `pulsar+ssl`)
this is optional — clients can also pass an explicit `listenerName`. For the
HTTP/HTTPS Admin API (`http` / `https`) it is the only routing mechanism, so
every HTTP/HTTPS advertised listener reachable from outside the cluster needs a
dedicated entry here on a unique port. This lets a layer-4 TCP load balancer
serve the Admin API directly [...]
+ Format: comma-separated `<listener_name\>:<scheme\>://<ip\>:<port\>` entries.
Supported schemes: `pulsar`, `pulsar+ssl`, `http`, `https`. The `<ip\>` part
selects which local network interface the port binds to: use a specific local
IP, or `0.0.0.0` to bind on all interfaces. A local hostname is also accepted
but not recommended.
+ Each `ip:port` may be bound by exactly one (listener, scheme) pair. An entry
that exactly matches the auto-derived internal-listener binding is tolerated;
assigning the same `ip:port` to a different listener or scheme fails validation.
+ Port `0` (OS-assigned ephemeral port) is supported only for the internal
listener.
**Type**: `java.lang.String`
@@ -3007,7 +3070,7 @@ Using a value of 0, is disabling compression check.
**Category**: Server
### brokerServicePort
-The port for serving binary protobuf requests. If set, defines a server
binding for bindAddress:brokerServicePort. The Default value is 6650.
+Port for the Pulsar binary protocol of the internal listener. The same port
number is used both for the local socket binding (with `bindAddress`) and for
the advertised URL (with `advertisedAddress`), so no entry in
`advertisedListeners` or `bindAddresses` is required for the internal listener.
Default is 6650.
**Type**: `java.util.Optional`
@@ -3018,7 +3081,7 @@ The port for serving binary protobuf requests. If set,
defines a server binding
**Category**: Server
### brokerServicePortTls
-The port for serving TLS-secured binary protobuf requests. If set, defines a
server binding for bindAddress:brokerServicePortTls.
+Port for the Pulsar binary protocol TLS endpoint of the internal listener.
Used both for the local socket binding and the advertised URL. By default TLS
is disabled.
**Type**: `java.util.Optional`
@@ -3554,11 +3617,13 @@ Capacity for thread pool queue in the HTTP server
Default is set to 8192.
**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.
+Name of the listener used for cluster-internal broker-to-broker communication
(lookup redirects, admin forwarding to owner or leader broker). Defaults to
`internal`.
+ When set (the default), the internal listener is auto-configured from
`advertisedAddress` plus the *Port properties. The internal listener must
advertise addresses reachable from other brokers in the same cluster; avoid
overriding its URLs in `advertisedListeners` to point at an external load
balancer because that would route cluster-internal traffic outside the cluster.
For external clients, declare a separate non-internal listener in
`advertisedListeners` instead. The default name `in [...]
+ Setting this to an empty string restores the legacy fallback: the first
listener parsed from `advertisedListeners` is used as the internal listener.
**Type**: `java.lang.String`
-**Default**: `null`
+**Default**: `internal`
**Dynamic**: `false`
@@ -3703,7 +3768,7 @@ Max memory size for broker handling messages sending from
producers.
**Type**: `int`
-**Default**: `2000`
+**Default**: `1999`
**Dynamic**: `true`
@@ -4323,7 +4388,15 @@ Number of worker threads to serve topic ordered executor
**Category**: Server
### topicPoliciesServiceClassName
-The class name of the topic policies service. The default config only takes
affect when the systemTopicEnable config is true
+The class name of the topic policies service. There are 2 built-in
implementations:
+1. "org.apache.pulsar.broker.service.SystemTopicBasedTopicPoliciesService"
(default)
+ It stores a topic's policies in the `__change_events` topic. If
`systemTopicEnabled` is false,
+ the topic policies will just be disabled
+2. "org.apache.pulsar.broker.service.MetadataStoreTopicPoliciesService"
+ It stores a topic's policies in the metadata store. If `systemTopicEnabled`
is true and the
+ topic's namespace has a `__change_events` topic, the policies will still be
stored in the
+ `__change_events` topic for backward compatibility.
+
**Type**: `java.lang.String`
@@ -4460,7 +4533,7 @@ Defaults to true when either
webServiceHaProxyProtocolEnabled or webServiceTrust
**Category**: Server
### webServicePort
-The port for serving http requests
+Port for the HTTP admin/REST endpoint of the internal listener. Used both for
the local socket binding and the advertised URL.
**Type**: `java.util.Optional`
@@ -4471,7 +4544,7 @@ The port for serving http requests
**Category**: Server
### webServicePortTls
-The port for serving https requests
+Port for the HTTPS admin/REST endpoint of the internal listener. Used both for
the local socket binding and the advertised URL. By default TLS is disabled.
**Type**: `java.util.Optional`
@@ -5327,7 +5400,7 @@ This memory is allocated from JVM direct memory and it's
shared across all the t
**Type**: `int`
-**Default**: `800`
+**Default**: `799`
**Dynamic**: `true`
@@ -6095,11 +6168,11 @@ The transaction buffer client's operation timeout in
milliseconds.
**Category**: Transaction
### transactionBufferProviderClassName
-Class name for transaction buffer provider
+Class name for transaction buffer provider. The default
DispatchingTransactionBufferProvider routes segment:// topics to the
metadata-driven MetadataTransactionBuffer (PIP-473) and persistent:// /
topic:// topics to the legacy TopicTransactionBuffer. Set this to
org.apache.pulsar.broker.transaction.buffer.impl.TopicTransactionBufferProvider
to force the legacy buffer for all topics.
**Type**: `java.lang.String`
-**Default**:
`org.apache.pulsar.broker.transaction.buffer.impl.TopicTransactionBufferProvider`
+**Default**:
`org.apache.pulsar.broker.transaction.buffer.impl.DispatchingTransactionBufferProvider`
**Dynamic**: `false`
@@ -6160,6 +6233,61 @@ Enable transaction coordinator in broker
**Category**: Transaction
+### transactionCoordinatorScalableTopicsEnabled
+Enable the metadata-driven transaction coordinator used by scalable topics.
When true, transaction wire commands flagged as scalable (sent by v5 SDK
clients) are served by the metadata-store-backed coordinator, while legacy (v4)
clients continue to be served by TransactionMetadataStoreService — the two
coexist on the same cluster. Requires transactionCoordinatorEnabled = true.
Enabled by default together with the dispatching transaction buffer and
pending-ack store providers.
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `false`
+
+**Category**: Transaction
+
+### transactionCoordinatorScalableTopicsGcIntervalSeconds
+Interval, in seconds, at which the scalable-topics transaction coordinator
sweeps for finalized transactions whose retention has elapsed and
garbage-collects their metadata. Only relevant when
transactionCoordinatorScalableTopicsEnabled = true.
+
+**Type**: `int`
+
+**Default**: `300`
+
+**Dynamic**: `false`
+
+**Category**: Transaction
+
+### transactionCoordinatorScalableTopicsGcRetentionSeconds
+How long, in seconds, a finalized (committed/aborted) transaction's metadata
is retained before the scalable-topics transaction coordinator's GC sweep is
allowed to delete it. Gives participants time to observe the outcome via the
durable per-segment visibility state. Only relevant when
transactionCoordinatorScalableTopicsEnabled = true.
+
+**Type**: `int`
+
+**Default**: `900`
+
+**Dynamic**: `false`
+
+**Category**: Transaction
+
+### transactionCoordinatorScalableTopicsParallelism
+Degree of parallelism for the scalable-topics transaction coordinator: how
many independent coordinator instances run across the cluster. Each is
leader-elected independently in the metadata store and coordinates the
transactions whose id maps to it. Fixed at cluster bring-up — changing it later
would strand the coordinator id encoded in existing transaction ids (and,
because an aborted transaction's records are retained as long as its messages
are, the value can only be reduced once all [...]
+
+**Type**: `int`
+
+**Default**: `16`
+
+**Dynamic**: `false`
+
+**Category**: Transaction
+
+### transactionCoordinatorScalableTopicsTimeoutSweepIntervalSeconds
+Interval, in seconds, at which the scalable-topics transaction coordinator
sweeps for timed-out open transactions and aborts them. Only the broker that
owns partition 0 of the transaction-coordinator-assign topic runs the sweep.
Only relevant when transactionCoordinatorScalableTopicsEnabled = true.
+
+**Type**: `int`
+
+**Default**: `60`
+
+**Dynamic**: `false`
+
+**Category**: Transaction
+
### transactionMetadataStoreProviderClassName
Class name for transaction metadata store provider
@@ -6183,11 +6311,11 @@ MLPendingAckStore maintain a ConcurrentSkipListMap
pendingAckLogIndex`,it store
**Category**: Transaction
### transactionPendingAckStoreProviderClassName
-Class name for transaction pending ack store provider
+Class name for transaction pending ack store provider. The default
DispatchingTransactionPendingAckStoreProvider routes subscriptions on
segment:// topics to the metadata-driven MetadataPendingAckStore (PIP-473) and
others to the legacy MLPendingAckStore. Set this to
org.apache.pulsar.broker.transaction.pendingack.impl.MLPendingAckStoreProvider
to force the legacy store for all subscriptions.
**Type**: `java.lang.String`
-**Default**:
`org.apache.pulsar.broker.transaction.pendingack.impl.MLPendingAckStoreProvider`
+**Default**:
`org.apache.pulsar.broker.transaction.pendingack.impl.DispatchingTransactionPendingAckStoreProvider`
**Dynamic**: `false`
diff --git a/static/reference/next/config/reference-configuration-client.md
b/static/reference/next/config/reference-configuration-client.md
index 3940423e3d2..12d00b8c014 100644
--- a/static/reference/next/config/reference-configuration-client.md
+++ b/static/reference/next/config/reference-configuration-client.md
@@ -52,14 +52,14 @@ The number of concurrent lookup requests that can be sent
on each broker connect
**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
+Release the connection if it is not used for more than
[connectionMaxIdleSeconds] seconds. If [connectionMaxIdleSeconds] < 0, disables
the feature that auto-releases the idle connections
**Type**: `int`
**Default**: `60`
### 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.
+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`
@@ -129,7 +129,7 @@ Seconds of keeping alive interval for each client broker
connection.
**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.
+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 be enabled on the broker
side.
**Type**: `java.lang.String`
@@ -241,14 +241,14 @@ The implementation class of ServiceUrlProvider used to
generate ServiceUrl.
**Default**: `null`
### serviceUrlQuarantineInitDurationMs
-The initial duration (in milliseconds) to quarantine endpoints that fail to
connect.A value of 0 means don't quarantine any endpoints even if they fail.
+The initial duration (in milliseconds) to quarantine endpoints that fail to
connect. A value of 0 means don't quarantine any endpoints even if they fail.
**Type**: `long`
**Default**: `60000`
### serviceUrlQuarantineMaxDurationMs
-The max duration (in milliseconds) to quarantine endpoints that fail to
connect.A value of 0 means don't quarantine any endpoints even if they fail.
+The max duration (in milliseconds) to quarantine endpoints that fail to
connect. A value of 0 means don't quarantine any endpoints even if they fail.
**Type**: `long`
@@ -268,6 +268,13 @@ Password of SOCKS5 proxy.
**Default**: `null`
+### socks5ProxyScope
+Selector that controls which connections go through the SOCKS5 proxy.
BINARY_ONLY (default for PulsarClient) only routes Pulsar binary protocol
connections; HTTP_ONLY only routes HTTP/HTTPS traffic (HTTP lookups, failover
HTTP clients, admin REST); BOTH routes both. This preserves backward
compatibility with the pre-existing behavior where the SOCKS5 proxy on
PulsarClient only applied to the binary protocol.
+
+**Type**: `org.apache.pulsar.client.api.Socks5ProxyScope`
+
+**Default**: `BINARY_ONLY`
+
### socks5ProxyUsername
User name of SOCKS5 proxy.
@@ -276,7 +283,7 @@ User name of SOCKS5 proxy.
**Default**: `null`
### sslFactoryPlugin
-SSL Factory Plugin class to provide SSLEngine and SSLContext objects. The
default class used is DefaultPulsarSslFactory.
+SSL Factory Plugin class to provide SSLEngine and SSLContext objects. The
default class used is DefaultPulsarSslFactory.
**Type**: `java.lang.String`
diff --git a/static/reference/next/config/reference-configuration-standalone.md
b/static/reference/next/config/reference-configuration-standalone.md
index 0effe14dda8..2144dfec527 100644
--- a/static/reference/next/config/reference-configuration-standalone.md
+++ b/static/reference/next/config/reference-configuration-standalone.md
@@ -1238,6 +1238,17 @@ Name of load manager to use
**Category**: Load Balancer
+### loadManagerMigrationEnabled
+When load manager migration is enabled, the broker will redirect requests to
another broker if the load manager on the current broker is not using the load
manager of the latest service lookup data available in the metadata store.
+
+**Type**: `boolean`
+
+**Default**: `false`
+
+**Dynamic**: `true`
+
+**Category**: Load Balancer
+
### loadManagerServiceUnitStateTableViewClassName
Name of ServiceUnitStateTableView implementation class to use
@@ -1578,6 +1589,28 @@ Enable the packages management service or not
**Category**: Packages Management
+### packagesManagementAllowLegacyJavaSerialization
+Whether to accept reading legacy Java-serialized package metadata written by
older brokers. A strict ObjectInputFilter allowlist is applied unconditionally
whenever the legacy path runs. Defaults to true for upgrade compatibility;
disable once all existing packages have been re-uploaded or rewritten via
updateMeta. This default is scheduled to flip to false in a future release.
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `false`
+
+**Category**: Packages Management
+
+### packagesManagementJsonSerializationEnabled
+Whether new package metadata writes use JSON (safe) or the legacy Java
serialization format. Defaults to true. Set to false only as a temporary
rollback path; the legacy format will be removed in a future release.
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `false`
+
+**Category**: Packages Management
+
### packagesManagementLedgerRootPath
The bookkeeper ledger root path
@@ -2346,6 +2379,28 @@ Interval (in seconds) for ResourceGroupService periodic
tasks while resource gro
**Category**: Policies
+### scalableTopicConsumerSessionGracePeriodSeconds
+Grace period (seconds) the controller leader waits for a disconnected
scalable-topic consumer to reconnect with the same consumer name before
evicting its session and reassigning its segments to remaining consumers.
+
+**Type**: `int`
+
+**Default**: `60`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
+### scalableTopicsEnabled
+Enables the scalable-topics V5 API on this broker. When disabled, the broker
advertises supports_scalable_topics=false in CommandConnected feature flags and
rejects scalable-topic commands from clients.
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `false`
+
+**Category**: Policies
+
### subscribeRatePeriodPerConsumerInSecond
Rate period for {subscribeThrottlingRatePerConsumer}. Default is 30s.
@@ -2808,7 +2863,7 @@ Whether to enable the acknowledge of batch local index
**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.
+Hostname or IP advertised to clients for the internal listener. Combined with
the *Port properties it forms the internal listener's advertised URLs (e.g.
`pulsar://<advertisedAddress\>:<brokerServicePort\>`). If not set, defaults to
`InetAddress.getLocalHost().getCanonicalHostName()`.
**Type**: `java.lang.String`
@@ -2819,7 +2874,10 @@ Hostname or IP address the service advertises to the
outside world. If not set,
**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.
+Declares additional advertised listeners — typically external listeners that
complement the internal one.
+ Format: comma-separated `<listener_name\>:<scheme\>://<host\>:<port\>`
entries. Supported schemes: `pulsar`, `pulsar+ssl`, `http`, `https`. A listener
name may be repeated to declare multiple schemes for the same listener.
+ The internal listener is auto-configured from `advertisedAddress` plus the
*Port properties (`brokerServicePort` / `brokerServicePortTls` /
`webServicePort` / `webServicePortTls`) so it does not need an entry here. URLs
declared here under `internalListenerName` do override that auto-configured
listener, but this is not recommended because it can route cluster-internal
traffic through an external endpoint (for example, an external load balancer).
+ Legacy fallback: when `internalListenerName` is left blank, the first
listener parsed from this property is used as the internal listener (so in that
case its entry here is required).
**Type**: `java.lang.String`
@@ -2863,7 +2921,7 @@ Defines how the broker will anonymize the role and
originalAuthRole before loggi
**Category**: Server
### bindAddress
-Hostname or IP address the service binds on
+Local network interface IP for the internal listener's port bindings. Use a
specific local IP to bind to a single interface, or `0.0.0.0` to bind on all
interfaces. Default is `0.0.0.0`.
**Type**: `java.lang.String`
@@ -2874,7 +2932,12 @@ Hostname or IP address the service binds on
**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.
+Per-listener socket bindings.
+ The internal listener's bindings are derived automatically from `bindAddress`
plus the port properties (`brokerServicePort` / `brokerServicePortTls` /
`webServicePort` / `webServicePortTls`) and do not need to be repeated here.
+ PIP-95 smart listener selection routes a connection to the listener whose
port it arrived on. For the Pulsar binary protocol (`pulsar` / `pulsar+ssl`)
this is optional — clients can also pass an explicit `listenerName`. For the
HTTP/HTTPS Admin API (`http` / `https`) it is the only routing mechanism, so
every HTTP/HTTPS advertised listener reachable from outside the cluster needs a
dedicated entry here on a unique port. This lets a layer-4 TCP load balancer
serve the Admin API directly [...]
+ Format: comma-separated `<listener_name\>:<scheme\>://<ip\>:<port\>` entries.
Supported schemes: `pulsar`, `pulsar+ssl`, `http`, `https`. The `<ip\>` part
selects which local network interface the port binds to: use a specific local
IP, or `0.0.0.0` to bind on all interfaces. A local hostname is also accepted
but not recommended.
+ Each `ip:port` may be bound by exactly one (listener, scheme) pair. An entry
that exactly matches the auto-derived internal-listener binding is tolerated;
assigning the same `ip:port` to a different listener or scheme fails validation.
+ Port `0` (OS-assigned ephemeral port) is supported only for the internal
listener.
**Type**: `java.lang.String`
@@ -3007,7 +3070,7 @@ Using a value of 0, is disabling compression check.
**Category**: Server
### brokerServicePort
-The port for serving binary protobuf requests. If set, defines a server
binding for bindAddress:brokerServicePort. The Default value is 6650.
+Port for the Pulsar binary protocol of the internal listener. The same port
number is used both for the local socket binding (with `bindAddress`) and for
the advertised URL (with `advertisedAddress`), so no entry in
`advertisedListeners` or `bindAddresses` is required for the internal listener.
Default is 6650.
**Type**: `java.util.Optional`
@@ -3018,7 +3081,7 @@ The port for serving binary protobuf requests. If set,
defines a server binding
**Category**: Server
### brokerServicePortTls
-The port for serving TLS-secured binary protobuf requests. If set, defines a
server binding for bindAddress:brokerServicePortTls.
+Port for the Pulsar binary protocol TLS endpoint of the internal listener.
Used both for the local socket binding and the advertised URL. By default TLS
is disabled.
**Type**: `java.util.Optional`
@@ -3554,11 +3617,13 @@ Capacity for thread pool queue in the HTTP server
Default is set to 8192.
**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.
+Name of the listener used for cluster-internal broker-to-broker communication
(lookup redirects, admin forwarding to owner or leader broker). Defaults to
`internal`.
+ When set (the default), the internal listener is auto-configured from
`advertisedAddress` plus the *Port properties. The internal listener must
advertise addresses reachable from other brokers in the same cluster; avoid
overriding its URLs in `advertisedListeners` to point at an external load
balancer because that would route cluster-internal traffic outside the cluster.
For external clients, declare a separate non-internal listener in
`advertisedListeners` instead. The default name `in [...]
+ Setting this to an empty string restores the legacy fallback: the first
listener parsed from `advertisedListeners` is used as the internal listener.
**Type**: `java.lang.String`
-**Default**: `null`
+**Default**: `internal`
**Dynamic**: `false`
@@ -3703,7 +3768,7 @@ Max memory size for broker handling messages sending from
producers.
**Type**: `int`
-**Default**: `2000`
+**Default**: `1999`
**Dynamic**: `true`
@@ -4323,7 +4388,15 @@ Number of worker threads to serve topic ordered executor
**Category**: Server
### topicPoliciesServiceClassName
-The class name of the topic policies service. The default config only takes
affect when the systemTopicEnable config is true
+The class name of the topic policies service. There are 2 built-in
implementations:
+1. "org.apache.pulsar.broker.service.SystemTopicBasedTopicPoliciesService"
(default)
+ It stores a topic's policies in the `__change_events` topic. If
`systemTopicEnabled` is false,
+ the topic policies will just be disabled
+2. "org.apache.pulsar.broker.service.MetadataStoreTopicPoliciesService"
+ It stores a topic's policies in the metadata store. If `systemTopicEnabled`
is true and the
+ topic's namespace has a `__change_events` topic, the policies will still be
stored in the
+ `__change_events` topic for backward compatibility.
+
**Type**: `java.lang.String`
@@ -4460,7 +4533,7 @@ Defaults to true when either
webServiceHaProxyProtocolEnabled or webServiceTrust
**Category**: Server
### webServicePort
-The port for serving http requests
+Port for the HTTP admin/REST endpoint of the internal listener. Used both for
the local socket binding and the advertised URL.
**Type**: `java.util.Optional`
@@ -4471,7 +4544,7 @@ The port for serving http requests
**Category**: Server
### webServicePortTls
-The port for serving https requests
+Port for the HTTPS admin/REST endpoint of the internal listener. Used both for
the local socket binding and the advertised URL. By default TLS is disabled.
**Type**: `java.util.Optional`
@@ -5327,7 +5400,7 @@ This memory is allocated from JVM direct memory and it's
shared across all the t
**Type**: `int`
-**Default**: `800`
+**Default**: `799`
**Dynamic**: `true`
@@ -6095,11 +6168,11 @@ The transaction buffer client's operation timeout in
milliseconds.
**Category**: Transaction
### transactionBufferProviderClassName
-Class name for transaction buffer provider
+Class name for transaction buffer provider. The default
DispatchingTransactionBufferProvider routes segment:// topics to the
metadata-driven MetadataTransactionBuffer (PIP-473) and persistent:// /
topic:// topics to the legacy TopicTransactionBuffer. Set this to
org.apache.pulsar.broker.transaction.buffer.impl.TopicTransactionBufferProvider
to force the legacy buffer for all topics.
**Type**: `java.lang.String`
-**Default**:
`org.apache.pulsar.broker.transaction.buffer.impl.TopicTransactionBufferProvider`
+**Default**:
`org.apache.pulsar.broker.transaction.buffer.impl.DispatchingTransactionBufferProvider`
**Dynamic**: `false`
@@ -6160,6 +6233,61 @@ Enable transaction coordinator in broker
**Category**: Transaction
+### transactionCoordinatorScalableTopicsEnabled
+Enable the metadata-driven transaction coordinator used by scalable topics.
When true, transaction wire commands flagged as scalable (sent by v5 SDK
clients) are served by the metadata-store-backed coordinator, while legacy (v4)
clients continue to be served by TransactionMetadataStoreService — the two
coexist on the same cluster. Requires transactionCoordinatorEnabled = true.
Enabled by default together with the dispatching transaction buffer and
pending-ack store providers.
+
+**Type**: `boolean`
+
+**Default**: `true`
+
+**Dynamic**: `false`
+
+**Category**: Transaction
+
+### transactionCoordinatorScalableTopicsGcIntervalSeconds
+Interval, in seconds, at which the scalable-topics transaction coordinator
sweeps for finalized transactions whose retention has elapsed and
garbage-collects their metadata. Only relevant when
transactionCoordinatorScalableTopicsEnabled = true.
+
+**Type**: `int`
+
+**Default**: `300`
+
+**Dynamic**: `false`
+
+**Category**: Transaction
+
+### transactionCoordinatorScalableTopicsGcRetentionSeconds
+How long, in seconds, a finalized (committed/aborted) transaction's metadata
is retained before the scalable-topics transaction coordinator's GC sweep is
allowed to delete it. Gives participants time to observe the outcome via the
durable per-segment visibility state. Only relevant when
transactionCoordinatorScalableTopicsEnabled = true.
+
+**Type**: `int`
+
+**Default**: `900`
+
+**Dynamic**: `false`
+
+**Category**: Transaction
+
+### transactionCoordinatorScalableTopicsParallelism
+Degree of parallelism for the scalable-topics transaction coordinator: how
many independent coordinator instances run across the cluster. Each is
leader-elected independently in the metadata store and coordinates the
transactions whose id maps to it. Fixed at cluster bring-up — changing it later
would strand the coordinator id encoded in existing transaction ids (and,
because an aborted transaction's records are retained as long as its messages
are, the value can only be reduced once all [...]
+
+**Type**: `int`
+
+**Default**: `16`
+
+**Dynamic**: `false`
+
+**Category**: Transaction
+
+### transactionCoordinatorScalableTopicsTimeoutSweepIntervalSeconds
+Interval, in seconds, at which the scalable-topics transaction coordinator
sweeps for timed-out open transactions and aborts them. Only the broker that
owns partition 0 of the transaction-coordinator-assign topic runs the sweep.
Only relevant when transactionCoordinatorScalableTopicsEnabled = true.
+
+**Type**: `int`
+
+**Default**: `60`
+
+**Dynamic**: `false`
+
+**Category**: Transaction
+
### transactionMetadataStoreProviderClassName
Class name for transaction metadata store provider
@@ -6183,11 +6311,11 @@ MLPendingAckStore maintain a ConcurrentSkipListMap
pendingAckLogIndex`,it store
**Category**: Transaction
### transactionPendingAckStoreProviderClassName
-Class name for transaction pending ack store provider
+Class name for transaction pending ack store provider. The default
DispatchingTransactionPendingAckStoreProvider routes subscriptions on
segment:// topics to the metadata-driven MetadataPendingAckStore (PIP-473) and
others to the legacy MLPendingAckStore. Set this to
org.apache.pulsar.broker.transaction.pendingack.impl.MLPendingAckStoreProvider
to force the legacy store for all subscriptions.
**Type**: `java.lang.String`
-**Default**:
`org.apache.pulsar.broker.transaction.pendingack.impl.MLPendingAckStoreProvider`
+**Default**:
`org.apache.pulsar.broker.transaction.pendingack.impl.DispatchingTransactionPendingAckStoreProvider`
**Dynamic**: `false`
diff --git a/static/reference/next/pulsar-client/pulsar-client.md
b/static/reference/next/pulsar-client/pulsar-client.md
index 523f5a06819..591a6d6857e 100644
--- a/static/reference/next/pulsar-client/pulsar-client.md
+++ b/static/reference/next/pulsar-client/pulsar-client.md
@@ -95,8 +95,6 @@ $ pulsar-client consume [options]
|
| `[-mp, --print-metadata]` | Message metadata|null|
|
-| `[-stp, --start-timestamp]` | Start timestamp for consuming messages|null|
-|
| `[-etp, --end-timestamp]` | End timestamp for consuming messages|null|
|
| `[-h, --help]` | Show this help message and exit.|null|
@@ -115,7 +113,7 @@ $ pulsar-client read [options]
|Flag|Description|Default|
|---|---|---|
-| `[-m, --start-message-id]` | Initial reader position, it can be 'latest',
'earliest' or '<ledgerId>:<entryId>'|null|
+| `[-m, --start-message-id]` | Initial reader position, it can be 'latest' or
'earliest'|null|
|
| `[-i, --start-message-id-inclusive]` | Whether to include the position
specified by -m option.|null|
|
diff --git a/static/reference/next/pulsar-perf/pulsar-perf.md
b/static/reference/next/pulsar-perf/pulsar-perf.md
index 29fd041fc61..d4ceed67c47 100644
--- a/static/reference/next/pulsar-perf/pulsar-perf.md
+++ b/static/reference/next/pulsar-perf/pulsar-perf.md
@@ -25,7 +25,7 @@ $ pulsar-perf produce [options]
| `-lt, --num-listener-threads` | Set the number of threads to be used for
message listeners|1|
| `-mlr, --max-lookup-request` | Maximum number of lookup requests allowed on
each broker connection to prevent overloading a broker|50000|
| `--proxy-url` | Proxy-server URL to which to connect.||
-| `--proxy-protocol` | Proxy protocol to select type of routing at proxy.||
+| `--proxy-protocol` | Proxy protocol to select type of routing at proxy.|null|
| `-ml, --memory-limit` | Configure the Pulsar client memory limit (eg: 32M,
64M)|0|
| `-t, --num-topics, --num-topic` | Number of topics. Must matchthe given
number of topic arguments.|1|
| `-threads, --num-test-threads` | Number of test threads|1|
@@ -57,7 +57,7 @@ $ pulsar-perf produce [options]
| `-set, --set-event-time` | Set the eventTime on messages|false|
| `-ef, --exit-on-failure` | Exit from the process on publish failure
(default: disable)|false|
| `-mk, --message-key-generation-mode` | The generation mode of message key,
valid options are: [autoIncrement, random]|null|
-| `-am, --access-mode` | Producer access mode|Shared|
+| `-am, --access-mode` | Producer access mode|SHARED|
| `-fp, --format-payload` | Format %i as a message index in the stream from
producer and/or %t as the timestamp nanoseconds.|false|
| `-fc, --format-class` | Custom Formatter class
name|org.apache.pulsar.testclient.DefaultMessageFormatter|
| `-tto, --txn-timeout` | Set the time value of transaction timeout, and the
time unit is second. (After --txn-enable setting to true, --txn-timeout takes
effect)|10|
@@ -95,14 +95,14 @@ $ pulsar-perf consume [options]
| `-lt, --num-listener-threads` | Set the number of threads to be used for
message listeners|1|
| `-mlr, --max-lookup-request` | Maximum number of lookup requests allowed on
each broker connection to prevent overloading a broker|50000|
| `--proxy-url` | Proxy-server URL to which to connect.||
-| `--proxy-protocol` | Proxy protocol to select type of routing at proxy.||
+| `--proxy-protocol` | Proxy protocol to select type of routing at proxy.|null|
| `-ml, --memory-limit` | Configure the Pulsar client memory limit (eg: 32M,
64M)|0|
| `-t, --num-topics, --num-topic` | Number of topics. Must matchthe given
number of topic arguments.|1|
| `-n, --num-consumers` | Number of consumers (per subscription), only one
consumer is allowed when subscriptionType is Exclusive|1|
| `-ns, --num-subscriptions` | Number of subscriptions (per topic)|1|
| `-ss, --subscriptions` | A list of subscriptions to consume (for example,
sub1,sub2)|[sub]|
| `-st, --subscription-type` | Subscription type|Exclusive|
-| `-sp, --subscription-position` | Subscription position|Latest|
+| `-sp, --subscription-position` | Subscription position|LATEST|
| `-r, --rate` | Simulate a slow message consumer (rate in msg/s)|0.0|
| `-q, --receiver-queue-size` | Size of the receiver queue|1000|
| `-p, --receiver-queue-size-across-partitions` | Max total size of the
receiver queue across partitions|50000|
@@ -153,17 +153,19 @@ $ pulsar-perf transaction [options]
| `-lt, --num-listener-threads` | Set the number of threads to be used for
message listeners|1|
| `-mlr, --max-lookup-request` | Maximum number of lookup requests allowed on
each broker connection to prevent overloading a broker|50000|
| `--proxy-url` | Proxy-server URL to which to connect.||
-| `--proxy-protocol` | Proxy protocol to select type of routing at proxy.||
+| `--proxy-protocol` | Proxy protocol to select type of routing at proxy.|null|
| `-ml, --memory-limit` | Configure the Pulsar client memory limit (eg: 32M,
64M)|0|
| `--topics-c` | All topics that need ack for a transaction|[test-consume]|
| `--topics-p` | All topics that need produce for a transaction|[test-produce]|
| `-threads, --num-test-threads` | Number of test threads.This thread is for a
new transaction to ack messages from consumer topics and produce message to
producer topics, and then commit or abort this transaction. Increasing the
number of threads increases the parallelism of the performance test, thereby
increasing the intensity of the stress test.|1|
| `-au, --admin-url` | Pulsar Admin URL|http://localhost:8080/|
| `-np, --partitions` | Create partitioned topics with a given number of
partitions, 0 meansnot trying to create a topic|null|
+| `--scalable` | Create the producer/consumer topics as scalable topics
(PIP-473) with --scalable-segments initial segments. Required for transactions
against the scalable-topics (v5) coordinator. Mutually exclusive with
--partitions.|false|
+| `--scalable-segments` | Number of initial segments for scalable topics
created via --scalable.|1|
| `-time, --test-duration` | Test duration (in second). 0 means keeping
publishing|0|
| `-ss, --subscriptions` | A list of subscriptions to consume (for example,
sub1,sub2)|[sub]|
| `-ns, --num-subscriptions` | Number of subscriptions (per topic)|1|
-| `-sp, --subscription-position` | Subscription position|Earliest|
+| `-sp, --subscription-position` | Subscription position|EARLIEST|
| `-st, --subscription-type` | Subscription type|Shared|
| `-rs, --replicated` | Whether the subscription status should be
replicated|false|
| `-q, --receiver-queue-size` | Size of the receiver queue|1000|
@@ -204,7 +206,7 @@ $ pulsar-perf read [options]
| `-lt, --num-listener-threads` | Set the number of threads to be used for
message listeners|1|
| `-mlr, --max-lookup-request` | Maximum number of lookup requests allowed on
each broker connection to prevent overloading a broker|50000|
| `--proxy-url` | Proxy-server URL to which to connect.||
-| `--proxy-protocol` | Proxy protocol to select type of routing at proxy.||
+| `--proxy-protocol` | Proxy protocol to select type of routing at proxy.|null|
| `-ml, --memory-limit` | Configure the Pulsar client memory limit (eg: 32M,
64M)|0|
| `-t, --num-topics, --num-topic` | Number of topics. Must matchthe given
number of topic arguments.|1|
| `-r, --rate` | Simulate a slow message reader (rate in msg/s)|0.0|
@@ -233,40 +235,6 @@ $ pulsar-perf monitor-brokers [options]
| `-h, --help` | Show this help message and exit.|false|
| `-V, --version` | Print version information and exit.|false|
-## simulation-client
-
-Simulate client load by maintaining producers and consumers for topics.
-
-
-```shell
-$ pulsar-perf simulation-client [options]
-```
-
-|Flag|Description|Default|
-|---|---|---|
-| `--port` | Port to listen on for controller|0|
-| `--service-url` | Pulsar Service URL|null|
-| `-ml, --memory-limit` | Configure the Pulsar client memory limit (eg: 32M,
64M)|0|
-| `-h, --help` | Show this help message and exit.|false|
-| `-V, --version` | Print version information and exit.|false|
-
-## simulation-controller
-
-Provides a shell for the user to dictate how simulation clients should incur
load.
-
-
-```shell
-$ pulsar-perf simulation-controller [options]
-```
-
-|Flag|Description|Default|
-|---|---|---|
-| `--cluster` | Cluster to test on|null|
-| `--clients` | Comma separated list of client hostnames|null|
-| `--client-port` | Port that the clients are listening on|0|
-| `-h, --help` | Show this help message and exit.|false|
-| `-V, --version` | Print version information and exit.|false|
-
## websocket-producer
Test pulsar websocket producer performance.
diff --git a/static/reference/next/pulsar/initialize-cluster-metadata.md
b/static/reference/next/pulsar/initialize-cluster-metadata.md
index 4f099799d15..66fd94b971c 100644
--- a/static/reference/next/pulsar/initialize-cluster-metadata.md
+++ b/static/reference/next/pulsar/initialize-cluster-metadata.md
@@ -1,3 +1,4 @@
+2026-06-09T01:41:56,768+0000 [main] INFO
org.apache.bookkeeper.meta.MetadataDrivers - BookKeeper metadata driver manager
initialized {}
# initialize-cluster-metadata
diff --git a/static/reference/next/pulsar/standalone.md
b/static/reference/next/pulsar/standalone.md
index ed6cea9d6c4..16d407eed12 100644
--- a/static/reference/next/pulsar/standalone.md
+++ b/static/reference/next/pulsar/standalone.md
@@ -13,7 +13,6 @@ $ pulsar standalone options
| `--num-bookies` | Number of local Bookies|1|
| `--metadata-dir` | Directory for storing metadata|data/metadata|
| `--metadata-url` | Metadata store url||
-| `--bookkeeper-port` | Local bookies base port|3181|
| `--bookkeeper-dir` | Local bookies base data
directory|data/standalone/bookkeeper|
| `--no-broker` | Only start ZK and BK services, no broker|false|
| `--only-broker` | Only start Pulsar broker service (no ZK, BK)|false|