If this flag is set to true
, the broker authenticates the original Auth data; else it just accepts the originalPrincipal and authorizes it (if required).
Default: false
The quorum connection string for local metadata store
Default:
Default: Metadata store cache expiry time in seconds
Default: 300
Configuration store connection string (as a comma-separated list)
Default:
The port on which the standalone broker listens for connections
Default: 6650
The port used by the standalone broker for HTTP requests
Default: 8080
The TLS provider for the web service. Available values: SunJSSE
, Conscrypt
, and so on.
Default: Conscrypt
The hostname or IP address on which the standalone service binds
Default: 0.0.0.0
Additional Hostname or IP addresses the service binds on: listener_name:scheme://host:port,...
.
Default:
The hostname or IP address that the standalone service advertises to the outside world. If not set, the value of InetAddress.getLocalHost().getHostName()
is used.
Default:
Number of threads to use for Netty Acceptor
Default: 1
Number of threads to use for Netty IO
Default: 2 * Runtime.getRuntime().availableProcessors()
Number of threads to use for HTTP requests processing
Default: 2 * Runtime.getRuntime().availableProcessors()
This flag controls features that are meant to be used when running in standalone mode.
Default: N/A
The name of the cluster that this broker belongs to.
Default: standalone
Enable cluster's failure-domain which can distribute brokers into logical region.
Default: false
Metadata store session timeout, in milliseconds.
Default: 30000
Metadata store operation timeout in seconds.
Default: 30
The time to wait for graceful broker shutdown. After this time elapses, the process will be killed.
Default: 60000
Flag to skip broker shutdown when broker handles Out of memory error.
Default: false
Enable the backlog quota check, which enforces a specified action when the quota is reached.
Default: true
How often to check for topics that have reached the backlog quota.
Default: 60
The default per-topic backlog quota limit. Being less than 0 means no limitation. By default, it is -1.
Default: -1
The default Time to Live (TTL) for namespaces if the TTL is not configured at namespace policies. When the value is set to 0
, TTL is disabled. By default, TTL is disabled.
Default: 0
Enable the deletion of inactive topics. If topics are not consumed for some while, these inactive topics might be cleaned up. Deleting inactive topics is enabled by default. The default period is 1 minute.
Default: true
How often to check for inactive topics, in seconds.
Default: 60
Maximum pending publish requests per connection to avoid keeping large number of pending requests in memory
Default: 1000
How often to proactively check and purged expired messages.
Default: 5
How long to delay rewinding cursor and dispatching messages when active consumer is changed.
Default: 1000
How long to delete inactive subscriptions from last consumption. When it is set to 0, inactive subscriptions are not deleted automatically
Default: 0
Enable subscription message redelivery tracker to send redelivery count to consumer.
Default: true
In Key*Shared subscription type, with default AUTO_SPLIT mode, use splitting ranges or consistent hashing to reassign keys to new consumers.
Default: false
In Key_Shared subscription type, the number of points in the consistent-hashing ring. The greater the number, the more equal the assignment of keys to consumers.
Default: 100
How frequently to proactively check and purge expired subscription
Default: 5
Set the default behavior for message deduplication in the broker. This can be overridden per-namespace. If it is enabled, the broker rejects messages that are already stored in the topic.
Default: false
Maximum number of producer information that it's going to be persisted for deduplication purposes
Default: 10000
Number of entries after which a deduplication information snapshot is taken. A greater interval leads to less snapshots being taken though it would increase the topic recovery time, when the entries published after the snapshot need to be replayed.
Default: 1000
The time of inactivity (in minutes) after which the broker discards deduplication information related to a disconnected producer.
Default: 360
When a namespace is created without specifying the number of bundles, this value is used as the default setting.
Default: 4
Enable checks for minimum allowed client library version.
Default: false
Allow client libraries with no version information
Default: true
The path for the file used to determine the rotation status for the broker when responding to service discovery health checks
Default: /usr/local/apache/htdocs
The maximum number of unacknowledged messages allowed to be received by consumers on a shared subscription. The broker will stop sending messages to a consumer once this limit is reached or until the consumer begins acknowledging messages. A value of 0 disables the unacked message limit check and thus allows consumers to receive messages without any restrictions.
Default: 50000
The same as above, except per subscription rather than per consumer.
Default: 200000
Maximum number of unacknowledged messages allowed per broker. Once this limit reaches, the broker stops dispatching messages to all shared subscriptions which has a higher number of unacknowledged messages until subscriptions start acknowledging messages back and unacknowledged messages count reaches to limit/2. When the value is set to 0, unacknowledged message limit check is disabled and broker does not block dispatchers.
Default: 0
Once the broker reaches maxUnackedMessagesPerBroker limit, it blocks subscriptions which have higher unacknowledged messages than this percentage limit and subscription does not receive any new messages until that subscription acknowledges messages back.
Default: 0.16
Broker periodically checks if subscription is stuck and unblock if flag is enabled.
Default: false
Tick time to schedule task that checks topic publish rate limiting across all topics. A lower value can improve accuracy while throttling publish but it uses more CPU to perform frequent check. (Disable publish throttling with value 0)
Default: 10
Tick time to schedule task that checks broker publish rate limiting across all topics. A lower value can improve accuracy while throttling publish but it uses more CPU to perform frequent check. When the value is set to 0, publish throttling is disabled.
Default: 50
Maximum rate (in 1 second) of messages allowed to publish for a broker if the message rate limiting is enabled. When the value is set to 0, message rate limiting is disabled.
Default: 0
Maximum rate (in 1 second) of bytes allowed to publish for a broker if the byte rate limiting is enabled. When the value is set to 0, the byte rate limiting is disabled.
Default: 0
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. By default, throttling is disabled.
Default: 0
Rate period for {subscribeThrottlingRatePerConsumer}. By default, it is 30s.
Default: 30
Dispatch throttling-limit of messages for a broker (per second). 0 means the dispatch throttling-limit is disabled.
Default: 0
Dispatch throttling-limit of bytes for a broker (per second). 0 means the dispatch throttling-limit is disabled.
Default: 0
Default messages (per second) dispatch throttling-limit for every topic. When the value is set to 0, default message dispatch throttling-limit is disabled.
Default: 0
Default byte (per second) dispatch throttling-limit for every topic. When the value is set to 0, default byte dispatch throttling-limit is disabled.
Default: 0
Apply dispatch rate limiting on batch message instead individual messages with in batch message. (Default is disabled).
Default: false
Enable dispatch rate-limiting relative to publish rate.
Default: false
The defaulted number of message dispatching throttling-limit for a subscription. The value of 0 disables message dispatch-throttling.
Default: 0
The default number of message-bytes dispatching throttling-limit for a subscription. The value of 0 disables message-byte dispatch-throttling.
Default: 0
Dispatch throttling-limit of messages for every replicator in replication (per second). 0 means the dispatch throttling-limit in replication is disabled.
Default: 0
Dispatch throttling-limit of bytes for every replicator in replication (per second). 0 means the dispatch throttling-limit is disabled.
Default: 0
Enable dispatch-throttling for both caught up consumers as well as consumers who have backlogs.
Default: true
The maximum number of entries to read from BookKeeper. By default, it is 100 entries.
Default: 100
The maximum size in bytes of entries to read from BookKeeper. By default, it is 5MB.
Default: 5242880
The minimum number of entries to read from BookKeeper. By default, it is 1 entry. When there is an error occurred on reading entries from bookkeeper, the broker will backoff the batch size to this minimum number.
Default: 1
The maximum number of entries to dispatch for a shared subscription. By default, it is 20 entries.
Default: 20
Precise dispathcer flow control according to history message number of each entry.
Default: false
Whether to use streaming read dispatcher. It can be useful when there's a huge backlog to drain and instead of read with micro batch we can streamline the read from bookkeeper to make the most of consumer capacity till we hit bookkeeper read limit or consumer process limit, then we can use consumer flow control to tune the speed. This feature is currently in preview and can be changed in subsequent release.
Default: false
Maximum number of concurrent lookup request that the broker allows to throttle heavy incoming lookup traffic.
Default: 50000
Maximum number of concurrent topic loading request that the broker allows to control the number of zk-operations.
Default: 5000
Maximum number of concurrent non-persistent message that can be processed per connection.
Default: 1000
Number of worker threads to serve non-persistent topic.
Default: 8
Enable broker to load persistent topics.
Default: true
Enable broker to load non-persistent topics.
Default: true
Maximum number of subscriptions allowed to subscribe to a topic. Once this limit reaches, the broker rejects new subscriptions until the number of subscriptions decreases. When the value is set to 0, the limit check is disabled.
Default: 0
Maximum number of producers allowed to connect to a topic. Once this limit reaches, the broker rejects new producers until the number of connected producers decreases. When the value is set to 0, the limit check is disabled.
Default: 0
Maximum number of consumers allowed to connect to a topic. Once this limit reaches, the broker rejects new consumers until the number of connected consumers decreases. When the value is set to 0, the limit check is disabled.
Default: 0
Maximum number of consumers allowed to connect to a subscription. Once this limit reaches, the broker rejects new consumers until the number of connected consumers decreases. When the value is set to 0, the limit check is disabled.
Default: 0
Maximum number of partitions per partitioned topic. When the value is set to a negative number or is set to 0, the check is disabled.
Default: 0
Enable metadata operations batching.
Default: true
Maximum delay to impose on batching grouping.
Default: 5
Maximum number of operations to include in a singular batch.
Default: 1000
Maximum size of a batch.
Default: 128
TLS certificate refresh duration in seconds. When the value is set to 0, check the TLS certificate on every new connection.
Default: 300
Path for the TLS certificate file.
Default:
Path for the TLS private key file.
Default:
Path for the trusted TLS certificate file.
Default:
Accept untrusted TLS certificate from the client. If it is set to true, a client with a certificate which cannot be verified with the ‘tlsTrustCertsFilePath’ certificate is allowed to connect to the server, though the certificate is not be used for client authentication.
Default: false
Specify the TLS protocols the broker uses to negotiate during TLS handshake.
Default:
Specify the TLS cipher the broker uses to negotiate during TLS Handshake.
Default:
Trusted client certificates are required for to connect TLS. Reject the Connection if the client certificate is not trusted. In effect, this requires that all connecting clients perform TLS client authentication.
Default: false
Enable TLS with KeyStore type configuration in broker.
Default: false
The TLS provider for the broker service.
When TLS authentication with CACert is used, the valid value is either OPENSSL
or JDK
.
When TLS authentication with KeyStore is used, available options can be SunJSSE
, Conscrypt
and so on.
Default: N/A
TLS KeyStore type configuration in the broker.JKS PKCS12
Default: JKS
TLS KeyStore path in the broker.
Default:
TLS KeyStore password for the broker.
Default:
TLS TrustStore type configuration in the brokerJKS PKCS12
Default: JKS
TLS TrustStore path in the broker.
Default:
TLS TrustStore password for the broker.
Default:
Configure whether the internal client uses the KeyStore type to authenticate with Pulsar brokers.
Default: false
The TLS Provider used by the internal client to authenticate with other Pulsar brokers.
Default:
TLS TrustStore type configuration for the internal client to authenticate with Pulsar brokers. JKS PKCS12
Default: JKS
TLS TrustStore path for the internal client to authenticate with Pulsar brokers.
Default:
TLS TrustStore password for the internal client to authenticate with Pulsar brokers.
Default:
Specify the TLS cipher that the internal client uses to negotiate during TLS Handshake.
Default:
Specify the TLS protocols that the broker uses to negotiate during TLS handshake.
Default:
Enable/Disable system topics.
Default: false
Enable or disable topic level policies. Topic level policies depends on the system topic. Please enable the system topic first.
Default: false
If a topic remains fenced for a certain time period (in seconds), it is closed forcefully. If set to 0 or a negative number, the fenced topic is not closed.
Default: 0
Role names that are treated as “proxy roles”. If the broker receives a request from a proxy role, it demands to authenticate its client role. Note that client role and proxy role cannot use the same name.
Default:
Enable authentication for the broker.
Default: false
A comma-separated list of class names for authentication providers.
Default: false
Enforce authorization in brokers.
Default: false
Authorization provider fully qualified class-name.
Default: org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider
Allow wildcard matching in authorization. Wildcard matching is applicable only when the wildcard-character (*) presents at the first or last position.
Default: false
Role names that are treated as “superusers.” Superusers are authorized to perform all admin tasks.
Default:
The authentication settings of the broker itself. Used when the broker connects to other brokers either in the same cluster or from other clusters.
Default:
The parameters that go along with the plugin specified using brokerClientAuthenticationPlugin.
Default:
Supported Athenz authentication provider domain names as a comma-separated list.
Default:
When this parameter is not empty, unauthenticated users perform as anonymousUserRole.
Default:
Configure the prefix of the token related setting like tokenSecretKey
, tokenPublicKey
, tokenAuthClaim
, tokenPublicAlg
, tokenAudienceClaim
, and tokenAudience
.
Default:
Configure the secret key to be used to validate auth tokens. The key can be specified like: tokenSecretKey=data:;base64,xxxxxxxxx
or tokenSecretKey=file:///my/secret.key
. Note: key file must be DER-encoded.
Default:
Configure the public key to be used to validate auth tokens. The key can be specified like: tokenPublicKey=data:;base64,xxxxxxxxx
or tokenPublicKey=file:///my/secret.key
. Note: key file must be DER-encoded.
Default:
Specify the token claim that will be used as the authentication “principal” or “role”. The “subject” field will be used if this is left blank
Default:
The token audience “claim” name, e.g. “aud”. It is used to get the audience from token. If it is not set, the audience is not verified.
Default:
The token audience stands for this broker. The field tokenAudienceClaim
of a valid token need contains this parameter.
Default:
This is a regexp, which limits the range of possible ids which can connect to the Broker using SASL. By default, it is set to SaslConstants.JAAS_CLIENT_ALLOWED_IDS_DEFAULT
, which is “._pulsar.*”, so only clients whose id contains ‘pulsar’ are allowed to connect.
Default: N/A
Service Principal, for login context name. By default, it is set to SaslConstants.JAAS_DEFAULT_BROKER_SECTION_NAME
, which is “Broker”.
Default: N/A
If the value is larger than 0, it rejects all HTTP requests with bodies larged than the configured limit.
Default: -1
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: false
Metadata service uri is what BookKeeper used for loading corresponding metadata driver and resolving its metadata service location. This value can be fetched using bookkeeper shell whatisinstanceid
command in BookKeeper cluster. For example: zk+hierarchical://localhost:2181/ledgers
. The metadata service uri list can also be semicolon separated values like: zk+hierarchical://zk1:2181;zk2:2181;zk3:2181/ledgers
.
Default: N/A
Authentication plugin to be used when connecting to bookies (BookKeeper servers).
Default:
BookKeeper authentication plugin implementation parameters and values.
Default:
Parameters associated with the bookkeeperClientAuthenticationParametersName
Default:
Number of BookKeeper client worker threads. Default is Runtime.getRuntime().availableProcessors()
Default:
Timeout for BookKeeper add and read operations.
Default: 30
Speculative reads are initiated if a read request doesn’t complete within a certain time. A value of 0 disables speculative reads.
Default: 0
Use older Bookkeeper wire protocol with bookie.
Default: true
Enable bookie health checks.
Default: true
The time interval, in seconds, at which health checks are performed. New ledgers are not created during health checks.
Default: 60
Error threshold for health checks.
Default: 5
If bookies have more than the allowed number of failures within the time interval specified by bookkeeperClientHealthCheckIntervalSeconds
Default: 1800
Specify options for the GetBookieInfo check. This setting helps ensure the list of bookies that are up to date on the brokers.
Default: 86400
Specify options for the GetBookieInfo check. This setting helps ensure the list of bookies that are up to date on the brokers.
Default: 60
Default: true
Default: false
Default: 2
Default: false
Default: false
Default:
Enable bookie secondary-isolation group if bookkeeperClientIsolationGroups doesn't have enough bookie available.
Default:
Minimum bookies that should be available as part of bookkeeperClientIsolationGroups else broker will include bookkeeperClientSecondaryIsolationGroups bookies in isolated list.
Default:
Set the client security provider factory class name.
Default: org.apache.bookkeeper.tls.TLSContextFactory
Enable TLS authentication with bookie.
Default: false
Supported type: PEM, JKS, PKCS12.
Default: PEM
Supported type: PEM, JKS, PKCS12.
Default: PEM
Path to file containing keystore password, if the client keystore is password protected.
Default:
Path to file containing truststore password, if the client truststore is password protected.
Default:
Path for the TLS private key file.
Default:
Path for the TLS certificate file.
Default:
Path for the trusted TLS certificate file.
Default:
Tls cert refresh duration at bookKeeper-client in seconds (0 to disable check).
Default:
Enable/Disable disk weight based placement.
Default: false
Set the interval to check the need for sending an explicit LAC. When the value is set to 0, no explicit LAC is sent.
Default: 0
Expose BookKeeper client managed ledger stats to Prometheus.
Default: false
Default: 1
Default: 1
Default: 1
Default type of checksum to use when writing to BookKeeper.
Default: CRC32C
Number of threads to be used for managed ledger scheduled tasks.
Default: Runtime.getRuntime().availableProcessors()
Default: N/A
Whether to copy the entry payloads when inserting in cache.
Default: false
Default: 0.9
Configure the cache eviction frequency for the managed ledger cache (evictions/sec)
Default: 100.0
All entries that have stayed in cache for more than the configured time, will be evicted
Default: 1000
Configure the threshold (in number of entries) from where a cursor should be considered ‘backlogged’ and thus should be set as inactive.
Default: 1000
Use Open Range-Set to cache unacknowledged messages
Default: true
Default: 0.1
Default: 50000
Default: 10
Default: 240
Default: 50000
Default: 14400
Maximum ledger size before triggering a rollover for a topic.
Default: 2048
Maximum number of “acknowledgment holes” that are going to be persistently stored. When acknowledging out of order, a consumer leaves holes that are supposed to be quickly filled by acknowledging 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 is only tracked in memory and messages are redelivered in case of crashes.
Default: 10000
Maximum number of “acknowledgment holes” that can be stored in metadata store. If the number of unacknowledged message range is higher than this limit, the broker persists unacknowledged ranges into BookKeeper to avoid additional data overhead into metadata store.
Default: 1000
Default: false
Operation timeout while updating managed-ledger metadata.
Default: 60
Read entries timeout when the broker tries to read messages from BookKeeper.
Default: 0
Add entry timeout when the broker tries to publish messages to BookKeeper.
Default: 0
New entries check delay for the cursor under the managed ledger. If no new messages in the topic, the cursor tries to check again after the delay time. For consumption latency sensitive scenarios, you can set the value to a smaller value or 0. Of course, a smaller value may degrade consumption throughput.
Default: 10
Managed ledger prometheus stats latency rollover seconds.
Default: 60
Whether to trace managed ledger task execution time.
Default: true
Default: false
Default: weightedRandomSelection
Default: 10
Default: 15
Default: 1
Default: 30
Default: 30
Default: 50000
Default: 1
Default: 85
Default: 15
Default: 65
Default: false
Enable/Disable automatic unloading of split bundles.
Default: true
Default: 1000
Maximum sessions (producers + consumers) in a bundle, otherwise bundle split will be triggered.
To disable the threshold check, set the value to -1.
Default: 1000
Default: 1000
Default: 100
Default: 128
The broker resource usage threshold. When the broker resource usage is greater than the pulsar cluster average resource usage, the threshold shedder is triggered to offload bundles from the broker. It only takes effect in the ThresholdShedder strategy.
Default: 10
Message-rate percentage threshold between highest and least loaded brokers for uniform load shedding.
Default: 50
Message-throughput threshold between highest and least loaded brokers for uniform load shedding.
Default: 4
The history usage when calculating new resource usage. It only takes effect in the ThresholdShedder strategy.
Default: 0.9
The BandWithIn usage weight when calculating new resource usage. It only takes effect in the ThresholdShedder strategy.
Default: 1.0
The BandWithOut usage weight when calculating new resource usage. It only takes effect in the ThresholdShedder strategy.
Default: 1.0
The CPU usage weight when calculating new resource usage. It only takes effect in the ThresholdShedder strategy.
Default: 1.0
The heap memory usage weight when calculating new resource usage. It only takes effect in the ThresholdShedder strategy.
Default: 1.0
The direct memory usage weight when calculating new resource usage. It only takes effect in the ThresholdShedder strategy.
Default: 1.0
Bundle unload minimum throughput threshold. Avoid bundle unload frequently. It only takes effect in the ThresholdShedder strategy.
Default: 10
Time to wait for the unloading of a namespace bundle in milliseconds.
Default: 60000
Default: true
Default: 16
Default: 1000
Duration to check replication policy to avoid replicator inconsistency due to missing ZooKeeper watch. When the value is set to 0, disable checking replication policy.
Default: 600
Whether to enable transaction coordinator in broker.
Default: false
The class name of transactionMetadataStoreProvider.
Default: org.apache.pulsar.transaction.coordinator.impl.MLTransactionMetadataStoreProvider
The transaction buffer client's operation timeout in milliseconds.
Default: 3000
Transaction buffer takes a snapshot after the number of transaction operations reaches this value.
Default: 1000
The interval between two snapshots that the transaction buffer takes (in milliseconds).
Default: 5000
Default: 0
Default: 0
Default: 30
Enable or disable the HAProxy protocol.
Default: false
If you want to custom a bookie ID or use a dynamic network address for a bookie, you can set the bookieId
.
Bookie advertises itself using the bookieId
rather than the BookieSocketAddress
(hostname:port
or IP:port
).
The bookieId
is a non-empty string that can contain ASCII digits and letters ([a-zA-Z9-0]), colons, dashes, and dots.
For more information about bookieId
, see here.
Default: /
The maximum number of persistent topics that can be created in the namespace. When the number of topics reaches this threshold, the broker rejects the request of creating a new topic, including the auto-created topics by the producer or consumer, until the number of connected consumers decreases. The default value 0 disables the check.
Default: 0
The configuration file path of the local metadata store. Standalone Pulsar uses RocksDB as the local metadata store. The format is /xxx/xx/rocksdb.ini
.
Default: N/A
The schema storage implementation used by this broker.
Default: org.apache.pulsar.broker.service.schema.BookkeeperSchemaStorageFactory
Whether to enable schema validation, when schema validation is enabled, if a producer without a schema attempts to produce the message to a topic with schema, the producer is rejected and disconnected.
Default: false
Allow schema to be auto updated at broker level.
Default: true
Deploy the schema compatibility checker for a specific schema type to enforce schema compatibility check.
Default: org.apache.pulsar.broker.service.schema.JsonSchemaCompatibilityCheck,org.apache.pulsar.broker.service.schema.AvroSchemaCompatibilityCheck,org.apache.pulsar.broker.service.schema.ProtobufNativeSchemaCompatibilityCheck
The schema compatibility strategy at broker level, see here for available values.
Default: FULL
The schema compatibility strategy is used for system topics, see here for available values.
Default: ALWAYS_COMPATIBLE
The compression type of managed cursor information.
Available options are NONE
, LZ4
, ZLIB
, ZSTD
, and SNAPPY
).
If this value is NONE
, managed cursor information is not compressed.
Default: NONE
The following parameters have been deprecated in the conf/standalone.conf
file.
The quorum connection string for local metadata store. Use metadataStoreUrl
instead.
Default: N/A
Configuration store connection string (as a comma-separated list). Use configurationMetadataStoreUrl
instead.
Default: N/A
ZooKeeper operation timeout in seconds. Use metadataStoreOperationTimeoutSeconds
instead.
Default: 30
ZooKeeper cache expiry time in seconds. Use metadataStoreCacheExpirySeconds
instead.
Default: 300
The ZooKeeper session timeout, in milliseconds. Use metadataStoreSessionTimeoutMillis
instead.
Default: 30000
Maximum number of “acknowledgment holes” that can be stored in ZooKeeper. Use managedLedgerMaxUnackedRangesToPersistInMetadataStore
instead.
Default: 1000