Name of the cluster to which this broker belongs to
Type: java.lang.String
Default: null
Dynamic: false
Category: Server
Factory class-name to create topic with custom workflow
Type: java.lang.String
Default: null
Dynamic: true
Category:
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:
Enable authentication
Type: boolean
Default: false
Dynamic: false
Category: Authentication
Authentication provider name list, which is a list of class names
Type: java.util.Set
Default: []
Dynamic: false
Category: Authentication
Interval of time for checking for expired authentication credentials
Type: int
Default: 60
Dynamic: false
Category: Authentication
Authentication parameters of the authentication plugin the broker is using to connect to other brokers
Type: java.lang.String
Default: ``
Dynamic: true
Category: Authentication
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
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
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
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
When this parameter is not empty, unauthenticated users perform as anonymousUserRole
Type: java.lang.String
Default: null
Dynamic: false
Category: Authorization
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
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
Enforce authorization
Type: boolean
Default: false
Dynamic: false
Category: Authorization
Authorization provider fully qualified class-name
Type: java.lang.String
Default: org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider
Dynamic: false
Category: Authorization
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
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
The directory to locate broker additional servlet
Type: java.lang.String
Default: ./brokerAdditionalServlet
Dynamic: false
Category: Broker Plugin
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
Flag indicates enabling or disabling function worker using unified PackageManagement service.
Type: boolean
Default: false
Dynamic: false
Category: Functions
Flag indicates enabling or disabling function worker on brokers
Type: boolean
Default: false
Dynamic: false
Category: Functions
The nar package for the function worker service
Type: java.lang.String
Default: ``
Dynamic: false
Category: Functions
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
The maximum size in bytes of the request header. Larger headers will allow for more and/or larger cookies plus larger form content encoded in a URL. However, larger headers consume more memory and can make a server more vulnerable to denial of service attacks.
Type: int
Default: 8192
Dynamic: false
Category: HTTP
If >0, it will reject all HTTP requests with bodies larged than the configured limit
Type: long
Default: -1
Dynamic: false
Category: HTTP
Admin API fail on unknown request parameter in request-body. see PIP-179. Default false.
Type: boolean
Default: false
Dynamic: true
Category: HTTP
Enable the enforcement of limits on the incoming HTTP requests
Type: boolean
Default: false
Dynamic: false
Category: HTTP
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
The TLS Provider used by internal client to authenticate with other Pulsar brokers
Type: java.lang.String
Default: null
Dynamic: false
Category: KeyStoreTLS
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
Whether internal client use KeyStore type to authenticate with other Pulsar brokers
Type: boolean
Default: false
Dynamic: false
Category: KeyStoreTLS
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
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
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
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
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
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
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
Enable TLS with KeyStore type configuration in broker
Type: boolean
Default: false
Dynamic: false
Category: KeyStoreTLS
TLS KeyStore path in broker
Type: java.lang.String
Default: null
Dynamic: false
Category: KeyStoreTLS
TLS KeyStore password for broker
Type: java.lang.String
Default: null
Dynamic: false
Category: KeyStoreTLS
TLS KeyStore type configuration in broker: JKS, PKCS12
Type: java.lang.String
Default: JKS
Dynamic: false
Category: KeyStoreTLS
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
TLS TrustStore path in broker
Type: java.lang.String
Default: null
Dynamic: false
Category: KeyStoreTLS
TLS TrustStore password for broker, null means empty password.
Type: java.lang.String
Default: null
Dynamic: false
Category: KeyStoreTLS
TLS TrustStore type configuration in broker: JKS, PKCS12
Type: java.lang.String
Default: JKS
Dynamic: false
Category: KeyStoreTLS
Default algorithm name for namespace bundle split
Type: java.lang.String
Default: range_equally_divide
Dynamic: true
Category: Load Balancer
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
Delay (in seconds) to the next unloading cycle after unloading. The logic tries to give enough time for brokers to recompute load after unloading. The bigger value will delay the next unloading cycle longer. (only used in load balancer extension TransferSheddeer)
Type: long
Default: 180
Dynamic: true
Category: Load Balancer
enable/disable automatic namespace bundle split
Type: boolean
Default: true
Dynamic: true
Category: Load Balancer
enable/disable automatic unloading of split bundles
Type: boolean
Default: true
Dynamic: true
Category: Load Balancer
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
BandwithIn Resource Usage Weight
Type: double
Default: 1.0
Dynamic: true
Category: Load Balancer
BandwithOut Resource Usage Weight
Type: double
Default: 1.0
Dynamic: true
Category: Load Balancer
Broker load data time to live (TTL in seconds). The logic tries to avoid (possibly unavailable) brokers with out-dated load data, and those brokers will be ignored in the load computation. When tuning this value, please consider loadBalancerReportUpdateMaxIntervalMinutes. The current default value is loadBalancerReportUpdateMaxIntervalMinutes * 120, reflecting twice the duration in seconds. (only used in load balancer extension TransferSheddeer)
Type: long
Default: 1800
Dynamic: true
Category: Load Balancer
The target standard deviation of the resource usage across brokers (100% resource usage is 1.0 load). The shedder logic tries to distribute bundle load across brokers to meet this target std. The smaller value will incur load balancing more frequently. (only used in load balancer extension TransferSheddeer)
Type: double
Default: 0.25
Dynamic: true
Category: Load Balancer
Usage threshold to allocate max number of topics to broker
Type: int
Default: 50000
Dynamic: true
Category: Load Balancer
Usage threshold to determine a broker as over-loaded
Type: int
Default: 85
Dynamic: true
Category: Load Balancer
Usage threshold to determine a broker whether to start threshold shedder
Type: int
Default: 10
Dynamic: true
Category: Load Balancer
Bundle unload minimum throughput threshold (MB)
Type: double
Default: 10.0
Dynamic: true
Category: Load Balancer
CPU Resource Usage Weight
Type: double
Default: 1.0
Dynamic: true
Category: Load Balancer
Option to enable the debug mode for the load balancer logics. The debug mode prints more logs to provide more information such as load balance states and decisions. (only used in load balancer extension logics)
Type: boolean
Default: false
Dynamic: true
Category: Load Balancer
Direct Memory Resource Usage Weight. Direct memory usage cannot accurately reflect the machine‘s load, and it is not recommended to use it to score the machine’s load.
Type: double
Default: 0.0
Dynamic: true
Category: Load Balancer
enable/disable distribute bundles evenly
Type: boolean
Default: true
Dynamic: true
Category: Load Balancer
Enable load balancer
Type: boolean
Default: true
Dynamic: false
Category: Load Balancer
Resource history Usage Percentage When adding new resource usage info
Type: double
Default: 0.9
Dynamic: true
Category: Load Balancer
Frequency of report to collect, in minutes
Type: int
Default: 1
Dynamic: true
Category: Load Balancer
Time to wait before fixing any stuck in-flight service unit states. The leader monitor fixes any in-flight service unit(bundle) states by reassigning the ownerships if stuck too long, longer than this period.(only used in load balancer extension logics)
Type: long
Default: 30000
Dynamic: false
Category: Load Balancer
load balance placement strategy
Type: java.lang.String
Default: org.apache.pulsar.broker.loadbalance.impl.LeastLongTermMessageRate
Dynamic: false
Category: Load Balancer
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
Maximum number of brokers to unload bundle load for each unloading cycle. The bigger value will incur more unloading/transfers for each unloading cycle. (only used in load balancer extension TransferSheddeer)
Type: int
Default: 3
Dynamic: true
Category: Load Balancer
Max number of bundles in bundle load report from each broker. The load balancer distributes bundles across brokers, based on topK bundle load data and other broker load data.The bigger value will increase the overhead of reporting many bundles in load data. (only used in load balancer extension logics)
Type: int
Default: 10
Dynamic: true
Category: Load Balancer
Max number of bundles to split to per cycle. (only used in load balancer extension logics)
Type: int
Default: 10
Dynamic: true
Category: Load Balancer
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
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
Enables the multi-phase unloading of bundles. Set to true, forwards destination broker information to consumers and producers during bundle unload, allowing them to quickly reconnect to the broker without performing an additional topic lookup.
Type: boolean
Default: true
Dynamic: false
Category: Load Balancer
maximum bandwidth (in + out) in a bundle, otherwise bundle split will be triggered
Type: int
Default: 100
Dynamic: true
Category: Load Balancer
maximum msgRate (in + out) in a bundle, otherwise bundle split will be triggered
Type: int
Default: 30000
Dynamic: true
Category: Load Balancer
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
maximum topics in a bundle, otherwise bundle split will be triggered
Type: int
Default: 1000
Dynamic: true
Category: Load Balancer
Threshold to the consecutive count of fulfilled split conditions. If the split scheduler consecutively finds bundles that meet split conditions many times bigger than this threshold, the scheduler will trigger splits on the bundles (if the number of bundles is less than loadBalancerNamespaceMaximumBundles). (only used in load balancer extension logics)
Type: int
Default: 3
Dynamic: true
Category: Load Balancer
maximum number of bundles in a namespace
Type: int
Default: 128
Dynamic: true
Category: Load Balancer
Option to override the auto-detected network interfaces max speed
Type: java.util.Optional
Default: Optional.empty
Dynamic: false
Category: Load Balancer
Min delay of load report to collect, in minutes
Type: int
Default: 15
Dynamic: true
Category: Load Balancer
maximum interval to update load report
Type: int
Default: 5000
Dynamic: true
Category: Load Balancer
Percentage of change to trigger load report update
Type: int
Default: 10
Dynamic: true
Category: Load Balancer
Interval to flush dynamic resource quota to ZooKeeper
Type: int
Default: 15
Dynamic: false
Category: Load Balancer
Interval between service unit state monitor checks. The service unit(bundle) state channel is periodically monitored by the leader broker at this interval to fix any orphan bundle ownerships, stuck in-flight states, and other cleanup jobs.loadBalancerServiceUnitStateTombstoneDelayTimeInSeconds
* 1000 must be bigger than loadBalancerInFlightServiceUnitStateWaitingTimeInMillis
.(only used in load balancer extension logics)
Type: long
Default: 60
Dynamic: false
Category: Load Balancer
After this delay, the service-unit state channel tombstones any service units (e.g., bundles) in semi-terminal states. For example, after splits, parent bundles will be deleted
, and then after this delay, the parent bundles' state will be tombstoned
in the service-unit state channel. Pulsar does not immediately remove such semi-terminal states to avoid unnecessary system confusion, as the bundles in the tombstoned
state might temporarily look available to reassign. Rarely, one could lower this delay in order to aggressively clean the service-unit state channel when there are a large number of bundles. minimum value = 30 secs(only used in load balancer extension logics)
Type: long
Default: 3600
Dynamic: false
Category: Load Balancer
Option to automatically unload namespace bundles with affinity(isolation) or anti-affinity group policies.Such bundles are not ideal targets to auto-unload as destination brokers are limited.(only used in load balancer extension logics)
Type: boolean
Default: false
Dynamic: true
Category: Load Balancer
Threshold to the consecutive count of fulfilled shedding(unload) conditions. If the unload scheduler consecutively finds bundles that meet unload conditions many times bigger than this threshold, the scheduler will shed the bundles. The bigger value will incur less bundle unloading/transfers. (only used in load balancer extension TransferSheddeer)
Type: int
Default: 3
Dynamic: true
Category: Load Balancer
Enable/disable automatic bundle unloading for load-shedding
Type: boolean
Default: true
Dynamic: true
Category: Load Balancer
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
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
Service units'(bundles) split interval. Broker periodically checks whether some service units(e.g. bundles) should split if they become hot-spots. (only used in load balancer extension logics)
Type: int
Default: 1
Dynamic: false
Category: Load Balancer
Option to enable the bundle transfer mode when distributing bundle loads. On: transfer bundles from overloaded brokers to underloaded -- pre-assigns the destination broker upon unloading). Off: unload bundles from overloaded brokers -- post-assigns the destination broker upon lookups). (only used in load balancer extension TransferSheddeer)
Type: boolean
Default: true
Dynamic: true
Category: Load Balancer
Name of load manager to use
Type: java.lang.String
Default: org.apache.pulsar.broker.loadbalance.impl.ModularLoadManagerImpl
Dynamic: true
Category: Load Balancer
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
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
In the UniformLoadShedder strategy, the maximum unload ratio.
Type: double
Default: 0.2
Dynamic: true
Category: Load Balancer
In the UniformLoadShedder strategy, the minimum message that triggers unload.
Type: int
Default: 1000
Dynamic: true
Category: Load Balancer
In the UniformLoadShedder strategy, the minimum throughput that triggers unload.
Type: int
Default: 1048576
Dynamic: true
Category: Load Balancer
Time to wait for the unloading of a namespace bundle
Type: long
Default: 60000
Dynamic: true
Category: Load Balancer
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
Name of topic bundle assignment strategy to use
Type: java.lang.String
Default: org.apache.pulsar.common.naming.ConsistentHashingTopicBundleAssigner
Dynamic: false
Category: Load Balancer
If true, aggregate publisher stats of PartitionedTopicStats by producerName
Type: boolean
Default: false
Dynamic: false
Category: Metrics
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
Enable expose the broker bundles metrics.
Type: boolean
Default: false
Dynamic: true
Category: Metrics
If true, export consumer level metrics otherwise namespace level
Type: boolean
Default: false
Dynamic: false
Category: Metrics
If true, export managed cursor metrics
Type: boolean
Default: false
Dynamic: false
Category: Metrics
If true, export managed ledger metrics (aggregated by namespace)
Type: boolean
Default: true
Dynamic: false
Category: Metrics
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
If true, export producer level metrics otherwise namespace level
Type: boolean
Default: false
Dynamic: false
Category: Metrics
If true, export publisher stats when returning topics stats from the admin rest api
Type: boolean
Default: true
Dynamic: false
Category: Metrics
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
If true, export topic level metrics otherwise namespace level
Type: boolean
Default: true
Dynamic: false
Category: Metrics
Classname of Pluggable JVM GC metrics logger that can log GC specific metrics
Type: java.lang.String
Default: null
Dynamic: false
Category: Metrics
Set to true to enable the broker to cache the metrics response; the default is false. The caching period is defined by managedLedgerStatsPeriodSeconds
. The broker returns the same response for subsequent requests within the same period. Ensure that the scrape interval of your monitoring system matches the caching period.
Type: boolean
Default: false
Dynamic: false
Category: Metrics
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
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
Stats update frequency in seconds
Type: int
Default: 60
Dynamic: false
Category: Metrics
Stats update initial delay in seconds
Type: int
Default: 60
Dynamic: false
Category: Metrics
Enable the packages management service or not
Type: boolean
Default: false
Dynamic: false
Category: Packages Management
The bookkeeper ledger root path
Type: java.lang.String
Default: /ledgers
Dynamic: false
Category: Packages Management
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
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
How long to delay rewinding cursor and dispatching messages when active consumer is changed
Type: int
Default: 1000
Dynamic: false
Category: Policies
Enable backlog quota check. Enforces actions on topic when the quota is reached
Type: boolean
Default: true
Dynamic: false
Category: Policies
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
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
@deprecated - Use backlogQuotaDefaultLimitByte instead.
Type: double
Default: -1.0
Dynamic: false
Category: Policies
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
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
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
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
Maximum number of producer information that it's going to be persisted for deduplication purposes
Type: int
Default: 10000
Dynamic: false
Category: Policies
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
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
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
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
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
How often to check for inactive topics
Type: int
Default: 60
Dynamic: true
Category: Policies
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
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
The maximum number of connections in the broker. If it exceeds, new connections are rejected.
Type: int
Default: 0
Dynamic: false
Category: Policies
The maximum number of connections per IP. If it exceeds, new connections are rejected.
Type: int
Default: 0
Dynamic: false
Category: Policies
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
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
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
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
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
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
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
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
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
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
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
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
Enables evaluating subscription pattern on broker side.
Type: boolean
Default: true
Dynamic: false
Category: Policies
Allow forced deletion of namespaces. Default is false.
Type: boolean
Default: false
Dynamic: true
Category: Policies
Allow forced deletion of tenants. Default is false.
Type: boolean
Default: false
Dynamic: true
Category: Policies
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
Maximum size of Consumer metadata
Type: int
Default: 1024
Dynamic: false
Category: Policies
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
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
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
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
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
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
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
How frequently to proactively check and purge expired messages
Type: int
Default: 5
Dynamic: false
Category: Policies
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
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
Default interval to publish usage reports if resourceUsagePublishToTopic is enabled.
Type: int
Default: 60
Dynamic: true
Category: Policies
Rate period for {subscribeThrottlingRatePerConsumer}. Default is 30s.
Type: int
Default: 30
Dynamic: true
Category: Policies
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
Maximum number of entries to process while scanning a subscription to calculate the accurate backlog
Type: long
Default: 10000
Dynamic: false
Category: Policies
Maximum time to spend while scanning a subscription to calculate the accurate backlog
Type: long
Default: 120000
Dynamic: false
Category: Policies
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
How frequently to proactively check and purge expired subscription
Type: int
Default: 5
Dynamic: false
Category: Policies
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
Enable Key_Shared subscription (default is enabled). @deprecated - use subscriptionTypesEnabled instead.
Type: boolean
Default: true
Dynamic: true
Category: Policies
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
Max length of subscription pattern
Type: int
Default: 50
Dynamic: false
Category: Policies
Enable subscription message redelivery tracker to send redelivery count to consumer (default is enabled)
Type: boolean
Default: true
Dynamic: true
Category: Policies
Enable subscription types (default is all type enabled)
Type: java.util.Set
Default: [Failover, Shared, Key_Shared, Exclusive]
Dynamic: true
Category: Policies
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
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
Broker periodically checks if subscription is stuck and unblock if flag is enabled. (Default is disabled)
Type: boolean
Default: false
Dynamic: true
Category: Policies
List of messaging protocols to load, which is a list of protocol names
Type: java.util.Set
Default: []
Dynamic: false
Category: Protocols
The directory to locate messaging protocol handlers
Type: java.lang.String
Default: ./protocols
Dynamic: false
Category: Protocols
Use a separate ThreadPool for each Protocol Handler
Type: boolean
Default: true
Dynamic: false
Category: Protocols
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
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
Enable replication metrics
Type: boolean
Default: true
Dynamic: false
Category: Replication
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
Replicator producer queue size. When dynamically modified, it only takes effect for the newly added replicators
Type: int
Default: 1000
Dynamic: true
Category: Replication
replicator prefix used for replicator producer name and cursor name
Type: java.lang.String
Default: pulsar.repl
Dynamic: false
Category: Replication
how often the broker expires the inflight SASL context.
Type: long
Default: 30000
Dynamic: false
Category: SASL Authentication Provider
kerberos kinit command.
Type: java.lang.String
Default: /usr/bin/kinit
Dynamic: false
Category: SASL Authentication Provider
Maximum number of inflight sasl context.
Type: long
Default: 50000
Dynamic: false
Category: SASL Authentication Provider
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
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
Service Principal, for login context name. Default value is “PulsarBroker”.
Type: java.lang.String
Default: PulsarBroker
Dynamic: false
Category: SASL Authentication Provider
Enforce schema validation on following cases:
Type: boolean
Default: false
Dynamic: false
Category: Schema
The schema compatibility strategy in broker level
Type: org.apache.pulsar.common.policies.data.SchemaCompatibilityStrategy
Default: FULL
Dynamic: false
Category: Schema
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
The schema storage implementation used by this broker
Type: java.lang.String
Default: org.apache.pulsar.broker.service.schema.BookkeeperSchemaStorageFactory
Dynamic: false
Category: Schema
The schema compatibility strategy to use for system topics
Type: org.apache.pulsar.common.policies.data.SchemaCompatibilityStrategy
Default: ALWAYS_COMPATIBLE
Dynamic: false
Category: Schema
Whether to enable the acknowledge of batch local index
Type: boolean
Default: false
Dynamic: false
Category: Server
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
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
Whether allow topic level entry filters policies overrides broker configuration.
Type: boolean
Default: false
Dynamic: true
Category: Server
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
Hostname or IP address the service binds on
Type: java.lang.String
Default: 0.0.0.0
Dynamic: false
Category: Server
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
A comma-separated list of namespaces to bootstrap
Type: java.util.List
Default: []
Dynamic: false
Category: Server
List of interceptors for entry metadata.
Type: java.util.Set
Default: []
Dynamic: false
Category: Server
List of interceptors for payload processing.
Type: java.util.Set
Default: []
Dynamic: false
Category: Server
List of broker interceptor to load, which is a list of broker interceptor names
Type: java.util.Set
Default: []
Dynamic: false
Category: Server
The directory to locate broker interceptors
Type: java.lang.String
Default: ./interceptors
Dynamic: false
Category: Server
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
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
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
Interval between checks to see if topics with compaction policies need to be compacted
Type: int
Default: 60
Dynamic: false
Category: Server
Timeout for each read request in the compaction phase one loop, If the execution time of one single message read operation exceeds this time, the compaction will not proceed.
Type: long
Default: 30
Dynamic: false
Category: Server
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
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
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
Time to wait for broker graceful shutdown. After this time elapses, the process will be killed
Type: long
Default: 60000
Dynamic: true
Category: Server
Enable check for minimum allowed client library version
Type: boolean
Default: false
Dynamic: true
Category: Server
Flag to start cluster migration for topic only after creating all topic's resources such as tenant, namespaces, subscriptions at new green cluster. (Default disabled).
Type: boolean
Default: false
Dynamic: false
Category: Server
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
The class name of the factory that implements the topic compaction service.
Type: java.lang.String
Default: org.apache.pulsar.compaction.PulsarCompactionServiceFactory
Dynamic: false
Category: Server
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
Event topic to sync configuration-metadata between separate pulsar clusters on different cloud platforms.
Type: java.lang.String
Default: null
Dynamic: true
Category: Server
Timeout for connection liveness check used to check liveness of possible consumer or producer duplicates. Helps prevent ProducerFencedException with exclusive producer, ConsumerAssignException with range conflict for Key Shared with sticky hash ranges or ConsumerBusyException in the case of an exclusive consumer. Set to 0 to disable connection liveness check.
Type: long
Default: 5000
Dynamic: false
Category: Server
Whether to enable the delayed delivery for messages.
Type: boolean
Default: true
Dynamic: false
Category: Server
Size of the lookahead window to use when detecting if all the messages in the topic have a fixed delay for InMemoryDelayedDeliveryTracker (the default DelayedDeliverTracker). 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
The max allowed delay for delayed delivery (in milliseconds). If the broker receives a message which exceeds this max delay, then it will return an error to the producer. The default value is 0 which means there is no limit on the max delivery delay.
Type: long
Default: 0
Dynamic: false
Category: Server
The max number of delayed message index in per bucket snapshot segment, -1 means no limitation, after reaching the max number limitation, the snapshot segment will be cut off.
Type: int
Default: 5000
Dynamic: false
Category: Server
The max number of delayed message index bucket, after reaching the max buckets limitation, the adjacent buckets will be merged.(disable with value -1)
Type: int
Default: -1
Dynamic: false
Category: Server
The delayed message index time step(in seconds) in per bucket snapshot segment, after reaching the max time step limitation, the snapshot segment will be cut off.
Type: int
Default: 300
Dynamic: false
Category: Server
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
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.
Type: long
Default: 1000
Dynamic: false
Category: Server
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
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
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
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
Dispatch messages and execute broker side filters in a per-subscription thread
Type: boolean
Default: true
Dynamic: true
Category: Server
Time in milliseconds to delay the new delivery of a message when an EntryFilter returns RESCHEDULE.
Type: int
Default: 1000
Dynamic: true
Category: Server
Max number of entries to read from bookkeeper. By default it is 100 entries.
Type: int
Default: 100
Dynamic: true
Category: Server
Max size in bytes of entries to read from bookkeeper. By default it is 5MB.
Type: int
Default: 5242880
Dynamic: true
Category: Server
Max number of entries to dispatch for a shared subscription. By default it is 20 entries.
Type: int
Default: 20
Dynamic: true
Category: Server
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
The read failure backoff initial time in milliseconds. By default it is 15s.
Type: int
Default: 15000
Dynamic: true
Category: Server
The read failure backoff mandatory stop time in milliseconds. By default it is 0s.
Type: int
Default: 0
Dynamic: true
Category: Server
The read failure backoff max time in milliseconds. By default it is 60s.
Type: int
Default: 60000
Dynamic: true
Category: Server
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
This config never takes effect and will be removed in the next release
Type: boolean
Default: false
Dynamic: false
Category: Server
Enable broker to load non-persistent topics
Type: boolean
Default: true
Dynamic: false
Category: Server
Enable broker to load persistent topics
Type: boolean
Default: true
Dynamic: false
Category: Server
Enable tracking of replicated subscriptions state across clusters.
Type: boolean
Default: true
Dynamic: false
Category: Server
Enable to run bookie autorecovery along with broker
Type: boolean
Default: false
Dynamic: false
Category: Server
Enable to run bookie along with broker
Type: boolean
Default: false
Dynamic: false
Category: Server
Enforce producer to publish encrypted messages.(default disable).
Type: boolean
Default: false
Dynamic: false
Category: Server
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
The directory for all the entry filter implementations.
Type: java.lang.String
Default: ``
Dynamic: true
Category: Server
Enable or disable exposing broker entry metadata to client.
Type: boolean
Default: false
Dynamic: false
Category: Server
Enable cluster's failure-domain which can distribute brokers into logical region
Type: boolean
Default: false
Dynamic: true
Category: Server
Enable or disable the proxy protocol. If true, the real IP addresses of consumers and producers can be obtained when getting topic statistics data.
Type: boolean
Default: false
Dynamic: false
Category: Server
Capacity for accept queue in the HTTP server Default is set to 8192.
Type: int
Default: 8192
Dynamic: false
Category: Server
Gzip compression is enabled by default. Specific paths can be excluded from compression. There are 2 syntaxes supported, Servlet url-pattern based, and Regex based. If the spec starts with ‘^’ the spec is assumed to be a regex based path spec and will match with normal Java regex rules. If the spec starts with ‘/’ then spec is assumed to be a Servlet url-pattern rules path spec for either an exact match or prefix based match. If the spec starts with ‘*.’ then spec is assumed to be a Servlet url-pattern rules path spec for a suffix based match. All other syntaxes are unsupported. Disable all compression with ^.* or ^.*$
Type: java.util.List
Default: []
Dynamic: false
Category: Server
Capacity for thread pool queue in the HTTP server Default is set to 8192.
Type: int
Default: 8192
Dynamic: false
Category: Server
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
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 the deliverAt time plus the tickTimeMillis for the topic plus the delayedDeliveryTickTimeMillis.
Type: boolean
Default: false
Dynamic: false
Category: Server
How often to check pulsar connection is still alive
Type: int
Default: 30
Dynamic: false
Category: Server
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
Max concurrent web requests
Type: int
Default: 1024
Dynamic: false
Category: Server
Max number of concurrent lookup request broker allows to throttle heavy incoming lookup traffic
Type: int
Default: 50000
Dynamic: true
Category: Server
Max concurrent non-persistent message can be processed per connection
Type: int
Default: 1000
Dynamic: false
Category: Server
Max number of concurrent topic loading request broker allows to control number of zk-operations
Type: int
Default: 5000
Dynamic: true
Category: Server
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
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
Maximum number of inbound http connections. (0 to disable limiting)
Type: int
Default: 2048
Dynamic: false
Category: Server
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: 1998
Dynamic: true
Category: Server
Max size of messages.
Type: int
Default: 5242880
Dynamic: false
Category: Server
The number of partitions per partitioned topic. If try to create or update partitioned topics by exceeded number of partitions, then fail. Use 0 or negative number to disable the check.
Type: int
Default: 0
Dynamic: true
Category: Server
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
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
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
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
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
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
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
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
Is metadata store read-only operations.
Type: boolean
Default: false
Dynamic: false
Category: Server
Whether we should enable metadata operations batching
Type: boolean
Default: true
Dynamic: false
Category: Server
Maximum delay to impose on batching grouping
Type: int
Default: 5
Dynamic: false
Category: Server
Maximum number of operations to include in a singular batch
Type: int
Default: 1000
Dynamic: false
Category: Server
Maximum size of a batch
Type: int
Default: 128
Dynamic: false
Category: Server
Metadata store cache expiry time in seconds.
Type: int
Default: 300
Dynamic: false
Category: Server
Configuration file path for local metadata store. It's supported by RocksdbMetadataStore for now.
Type: java.lang.String
Default: null
Dynamic: false
Category: Server
Metadata store operation timeout in seconds.
Type: int
Default: 30
Dynamic: false
Category: Server
Metadata store session timeout in milliseconds.
Type: long
Default: 30000
Dynamic: false
Category: Server
The metadata store URL. Examples:
Type: java.lang.String
Default: null
Dynamic: false
Category: Server
Event topic to sync metadata between separate pulsar clusters on different cloud platforms.
Type: java.lang.String
Default: null
Dynamic: true
Category: Server
Number of threads to use for Netty Acceptor. Default is set to 1
Type: int
Default: 1
Dynamic: false
Category: Server
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
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: 4
Dynamic: false
Category: Server
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
Number of threads to use for Netty IO. Default is set to 2 * Runtime.getRuntime().availableProcessors()
Type: int
Default: 8
Dynamic: false
Category: Server
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
Precise dispatcher flow control according to history message number of each entry
Type: boolean
Default: false
Dynamic: true
Category: Server
Enable precise rate limit for topic publish
Type: boolean
Default: false
Dynamic: false
Category: Server
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
Frequency of snapshots for replicated subscriptions tracking.
Type: int
Default: 1000
Dynamic: false
Category: Server
Max number of snapshot to be cached per subscription.
Type: int
Default: 10
Dynamic: false
Category: Server
Timeout for building a consistent snapshot for tracking replicated subscriptions state.
Type: int
Default: 30
Dynamic: false
Category: Server
Check between intervals to see if consumed ledgers need to be trimmed
Type: int
Default: 120
Dynamic: false
Category: Server
Flag to skip broker shutdown when broker handles Out of memory error
Type: boolean
Default: false
Dynamic: true
Category: Server
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
Enable or disable strict bookie affinity.
Type: boolean
Default: false
Dynamic: false
Category: Server
-partition-
as a keyword.Create a non-partitioned topic. No corresponding partitioned topic - persistent://public/default/local-name (passed) - persistent://public/default/local-name-partition-z (rejected by keyword) - persistent://public/default/local-name-partition-0 (rejected by keyword) Has corresponding partitioned topic, partitions=2 and topic partition name is persistent://public/default/local-name - persistent://public/default/local-name-partition-0 (passed, Because it is the partition topic's sub-partition) - persistent://public/default/local-name-partition-z (rejected by keyword) - persistent://public/default/local-name-partition-4 (rejected, Because it exceeds the number of maximum partitions) Create a partitioned topic(topic metadata) - persistent://public/default/local-name (passed) - persistent://public/default/local-name-partition-z (rejected by keyword) - persistent://public/default/local-name-partition-0 (rejected by keyword)
Type: boolean
Default: false
Dynamic: false
Category: Server
Enable or disable system topic.
Type: boolean
Default: true
Dynamic: false
Category: Server
Whether retain null-key message during topic compaction.
Type: boolean
Default: false
Dynamic: false
Category: Server
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
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
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
Number of worker threads to serve topic ordered executor
Type: int
Default: 4
Dynamic: false
Category: Server
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
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
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
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
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
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
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
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
Enable or disable the use of HA proxy protocol for resolving the client IP for http/https requests. Default is false.
Type: boolean
Default: false
Dynamic: false
Category: Server
Add detailed client/remote and server/local addresses and ports to http/https request logging. Defaults to true when either webServiceHaProxyProtocolEnabled or webServiceTrustXForwardedFor is enabled.
Type: java.lang.Boolean
Default: null
Dynamic: false
Category: Server
The port for serving http requests
Type: java.util.Optional
Default: Optional[8080]
Dynamic: false
Category: Server
The port for serving https requests
Type: java.util.Optional
Default: Optional.empty
Dynamic: false
Category: Server
Specify the TLS provider for the web service: SunJSSE, Conscrypt and etc.
Type: java.lang.String
Default: Conscrypt
Dynamic: false
Category: Server
Trust X-Forwarded-For header for resolving the client IP for http/https requests. Default is false.
Type: boolean
Default: false
Dynamic: false
Category: Server
Parameters for bookkeeper auth plugin
Type: java.lang.String
Default: null
Dynamic: false
Category: Storage (BookKeeper)
BookKeeper auth plugin implementation specifics parameters name and values
Type: java.lang.String
Default: null
Dynamic: false
Category: Storage (BookKeeper)
Authentication plugin to use when connecting to bookies
Type: java.lang.String
Default: null
Dynamic: false
Category: Storage (BookKeeper)
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)
whether expose managed ledger client stats to prometheus
Type: boolean
Default: false
Dynamic: false
Category: Storage (BookKeeper)
Set the interval to periodically check bookie info
Type: int
Default: 86400
Dynamic: false
Category: Storage (BookKeeper)
Set the interval to retry a failed bookie info lookup
Type: int
Default: 60
Dynamic: false
Category: Storage (BookKeeper)
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)
Bookies health check error threshold per check interval
Type: long
Default: 5
Dynamic: false
Category: Storage (BookKeeper)
Bookies health check interval in seconds
Type: long
Default: 60
Dynamic: false
Category: Storage (BookKeeper)
Bookie health check quarantined time in seconds
Type: long
Default: 1800
Dynamic: false
Category: Storage (BookKeeper)
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)
whether limit per_channel_bookie_client metrics of bookkeeper client stats
Type: boolean
Default: true
Dynamic: false
Category: Storage (BookKeeper)
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)
Number of BookKeeper client IO threads. Default is Runtime.getRuntime().availableProcessors() * 2
Type: int
Default: 8
Dynamic: false
Category: Storage (BookKeeper)
Number of BookKeeper client worker threads. Default is Runtime.getRuntime().availableProcessors()
Type: int
Default: 4
Dynamic: false
Category: Storage (BookKeeper)
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)
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)
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)
Enable/disable reordering read sequence on reading entries
Type: boolean
Default: true
Dynamic: false
Category: Storage (BookKeeper)
Enable bookie secondary-isolation group if bookkeeperClientIsolationGroups doesn't have enough bookie available.
Type: java.lang.String
Default: null
Dynamic: false
Category: Storage (BookKeeper)
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)
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)
Throttle value for bookkeeper client
Type: int
Default: 0
Dynamic: false
Category: Storage (BookKeeper)
Timeout for BK add / read operations
Type: long
Default: 30
Dynamic: false
Category: Storage (BookKeeper)
Enable/disable disk weight based placement. Default is false
Type: boolean
Default: false
Dynamic: false
Category: Storage (BookKeeper)
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)
Set the interval to check the need for sending an explicit LAC
Type: int
Default: 0
Dynamic: false
Category: Storage (BookKeeper)
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)
Number of channels per bookie
Type: int
Default: 16
Dynamic: false
Category: Storage (BookKeeper)
Path for the TLS certificate file
Type: java.lang.String
Default: null
Dynamic: false
Category: Storage (BookKeeper)
Enable tls authentication with bookie
Type: boolean
Default: false
Dynamic: false
Category: Storage (BookKeeper)
Path for the TLS private key file
Type: java.lang.String
Default: null
Dynamic: false
Category: Storage (BookKeeper)
Supported type: PEM, JKS, PKCS12. Default value: PEM
Type: java.lang.String
Default: PEM
Dynamic: false
Category: Storage (BookKeeper)
Path to file containing keystore password, if the client keystore is password protected.
Type: java.lang.String
Default: null
Dynamic: false
Category: Storage (BookKeeper)
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)
Supported type: PEM, JKS, PKCS12. Default value: PEM
Type: java.lang.String
Default: PEM
Dynamic: false
Category: Storage (BookKeeper)
Path for the trusted TLS certificate file
Type: java.lang.String
Default: null
Dynamic: false
Category: Storage (BookKeeper)
Path to file containing truststore password, if the client truststore is password protected.
Type: java.lang.String
Default: null
Dynamic: false
Category: Storage (BookKeeper)
Tls cert refresh duration at bookKeeper-client in seconds (0 to disable check)
Type: int
Default: 300
Dynamic: false
Category: Storage (BookKeeper)
Use older Bookkeeper wire protocol with bookie
Type: boolean
Default: true
Dynamic: true
Category: Storage (BookKeeper)
The number of bytes before triggering automatic offload to long term storage
Type: long
Default: -1
Dynamic: false
Category: Storage (Ledger Offloading)
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)
Driver to use to offload old data to long term storage
Type: java.lang.String
Default: null
Dynamic: false
Category: Storage (Ledger Offloading)
Maximum number of thread pool threads for ledger offloading
Type: int
Default: 2
Dynamic: false
Category: Storage (Ledger Offloading)
Maximum prefetch rounds for ledger reading for offloading
Type: int
Default: 1
Dynamic: false
Category: Storage (Ledger Offloading)
The threshold to triggering automatic offload to long term storage
Type: long
Default: -1
Dynamic: false
Category: Storage (Ledger Offloading)
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)
The directory where nar Extraction of offloaders happens
Type: java.lang.String
Default: /tmp
Dynamic: false
Category: Storage (Ledger Offloading)
The directory to locate offloaders
Type: java.lang.String
Default: ./offloaders
Dynamic: false
Category: Storage (Ledger Offloading)
Allow automated creation of subscriptions if set to true (default value).
Type: boolean
Default: true
Dynamic: true
Category: Storage (Managed Ledger)
Allow automated creation of topics if set to true (default value).
Type: boolean
Default: true
Dynamic: true
Category: Storage (Managed Ledger)
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)
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)
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)
The number of partitioned topics that is allowed to be automatically created if allowAutoTopicCreationType is partitioned.
Type: int
Default: 1
Dynamic: true
Category: Storage (Managed Ledger)
After enabling this feature, Pulsar will stop delivery messages to clients if the cursor metadata is too large to persist, it will help to reduce the duplicates caused by the ack state that can not be fully persistent. Default false.
Type: boolean
Default: false
Dynamic: true
Category: Storage (Managed Ledger)
ManagedCursorInfo compression size threshold (bytes), only compress metadata when origin size more then this value. 0 means compression will always apply.
Type: long
Default: 16384
Dynamic: false
Category: Storage (Managed Ledger)
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)
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)
Whether we should make a copy of the entry payloads when inserting in cache
Type: boolean
Default: false
Dynamic: false
Category: Storage (Managed Ledger)
Configure the cache eviction frequency for the managed ledger cache.
Type: double
Default: 0.0
Dynamic: false
Category: Storage (Managed Ledger)
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)
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)
Threshold to which bring down the cache level when eviction is triggered
Type: double
Default: 0.9
Dynamic: true
Category: Storage (Managed Ledger)
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: 799
Dynamic: true
Category: Storage (Managed Ledger)
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)
Max number of entries to append to a cursor ledger
Type: int
Default: 50000
Dynamic: false
Category: Storage (Managed Ledger)
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)
Max time before triggering a rollover on a cursor ledger
Type: int
Default: 14400
Dynamic: false
Category: Storage (Managed Ledger)
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)
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)
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)
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)
Write quorum (Qw) size, Replication factor for storing entries (messages) in a ledger.
Type: int
Default: 2
Dynamic: false
Category: Storage (Managed Ledger)
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)
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)
ManagedLedgerInfo compression size threshold (bytes), only compress metadata when origin size more then this value. 0 means compression will always apply.
Type: long
Default: 16384
Dynamic: false
Category: Storage (Managed Ledger)
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)
Max number of guaranteed copies (acks to wait before write is complete)
Type: int
Default: 5
Dynamic: false
Category: Storage (Managed Ledger)
Maximum backlog entry difference to prevent caching entries that can't be reused
Type: int
Default: 1000
Dynamic: true
Category: Storage (Managed Ledger)
Max number of bookies to use when creating a ledger
Type: int
Default: 5
Dynamic: false
Category: Storage (Managed Ledger)
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)
Maximum time before forcing a ledger rollover for a topic
Type: int
Default: 240
Dynamic: false
Category: Storage (Managed Ledger)
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)
Maximum ledger size before triggering a rollover for a topic (MB)
Type: int
Default: 2048
Dynamic: false
Category: Storage (Managed Ledger)
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)
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)
Max number of copies to store for each message
Type: int
Default: 5
Dynamic: false
Category: Storage (Managed Ledger)
operation timeout while updating managed-ledger metadata.
Type: long
Default: 60
Dynamic: false
Category: Storage (Managed Ledger)
Minimum time between ledger rollover for a topic
Type: int
Default: 10
Dynamic: false
Category: Storage (Managed Ledger)
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)
Minimum backlog entries for any cursor before start caching reads
Type: int
Default: 1000
Dynamic: true
Category: Storage (Managed Ledger)
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)
Number of threads to be used for managed ledger scheduled tasks
Type: int
Default: 4
Dynamic: false
Category: Storage (Managed Ledger)
Default password to use when writing to BookKeeper.
Default is ``.
Type: java.lang.String
Default: ``
Dynamic: false
Category: Storage (Managed Ledger)
Managed ledger prometheus stats latency rollover seconds
Type: int
Default: 60
Dynamic: false
Category: Storage (Managed Ledger)
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)
How frequently to refresh the stats. (seconds). Default is 60 seconds
Type: int
Default: 60
Dynamic: false
Category: Storage (Managed Ledger)
The class of the managed ledger storage
Type: java.lang.String
Default: org.apache.pulsar.broker.ManagedLedgerClientFactory
Dynamic: false
Category: Storage (Managed Ledger)
Whether trace managed ledger task execution time
Type: boolean
Default: true
Dynamic: true
Category: Storage (Managed Ledger)
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)
Accept untrusted TLS certificate from client
Type: boolean
Default: false
Dynamic: false
Category: TLS
Tls cert refresh duration in seconds (set 0 to check on every new connection)
Type: long
Default: 300
Dynamic: false
Category: TLS
Path for the TLS certificate file
Type: java.lang.String
Default: null
Dynamic: false
Category: TLS
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
Enable TLS
Type: boolean
Default: false
Dynamic: false
Category: TLS
Whether the hostname is validated when the broker creates a TLS connection with other brokers
Type: boolean
Default: false
Dynamic: false
Category: TLS
Path for the TLS private key file
Type: java.lang.String
Default: null
Dynamic: false
Category: TLS
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
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
Path for the trusted TLS certificate file
Type: java.lang.String
Default: ``
Dynamic: false
Category: TLS
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
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
The max active transactions per transaction coordinator, default value 0 indicates no limit.
Type: long
Default: 0
Dynamic: false
Category: Transaction
Number of threads to use for pulsar transaction replay PendingAckStore or TransactionBuffer.Default is 5
Type: int
Default: 4
Dynamic: false
Category: Transaction
The max concurrent requests for transaction buffer client.
Type: int
Default: 1000
Dynamic: false
Category: Transaction
The transaction buffer client's operation timeout in milliseconds.
Type: long
Default: 3000
Dynamic: false
Category: Transaction
Class name for transaction buffer provider
Type: java.lang.String
Default: org.apache.pulsar.broker.transaction.buffer.impl.TopicTransactionBufferProvider
Dynamic: false
Category: Transaction
Whether to enable segmented transaction buffer snapshot to handle a large number of aborted transactions.
Type: boolean
Default: false
Dynamic: false
Category: Transaction
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
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
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
Enable transaction coordinator in broker
Type: boolean
Default: false
Dynamic: false
Category: Transaction
Class name for transaction metadata store provider
Type: java.lang.String
Default: org.apache.pulsar.transaction.coordinator.impl.MLTransactionMetadataStoreProvider
Dynamic: false
Category: Transaction
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
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
Flag indicates whether to run broker in standalone mode
Type: boolean
Default: false
Dynamic: false
Category: WebSocket
Number of connections per Broker in Pulsar Client used in WebSocket proxy
Type: int
Default: 4
Dynamic: false
Category: WebSocket
The maximum size of a text message during parsing in WebSocket proxy.
Type: int
Default: 1048576
Dynamic: false
Category: WebSocket
Number of IO threads in Pulsar Client used in WebSocket proxy
Type: int
Default: 4
Dynamic: false
Category: WebSocket
Number of threads used by Websocket service
Type: int
Default: 20
Dynamic: false
Category: WebSocket
Interval of time to sending the ping to keep alive in WebSocket proxy. This value greater than 0 means enabled
Type: int
Default: -1
Dynamic: false
Category: WebSocket
Enable the WebSocket API service in broker
Type: boolean
Default: false
Dynamic: false
Category: WebSocket
Time in milliseconds that idle WebSocket session times out
Type: int
Default: 300000
Dynamic: false
Category: WebSocket
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
Usage threshold to determine a broker as under-loaded (only used by SimpleLoadManagerImpl)
Type: int
Default: 50
Dynamic: false
Category: Load Balancer
Memory Resource Usage Weight. Deprecated: Memory is no longer used as a load balancing item.
Type: double
Default: 1.0
Dynamic: true
Category: Load Balancer
load placement strategy[weightedRandomSelection/leastLoadedServer] (only used by SimpleLoadManagerImpl)
Type: java.lang.String
Default: leastLoadedServer
Dynamic: false
Category: Load Balancer
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
@deprecated - Use brokerClientTlsEnabled instead.
Type: boolean
Default: false
Dynamic: false
Category: Replication
Configuration store connection string (as a comma-separated list). Deprecated in favor of configurationMetadataStoreUrl
Type: java.lang.String
Default: null
Dynamic: false
Category: Server
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
Number of worker threads to serve non-persistent topic. @deprecated - use topicOrderedExecutorThreadNum instead.
Type: int
Default: -1
Dynamic: false
Category: Server
Is zookeeper allow read-only operations.
Type: boolean
Default: false
Dynamic: false
Category: Server
ZooKeeper cache expiry time in seconds. @deprecated - Use metadataStoreCacheExpirySeconds instead.
Type: int
Default: -1
Dynamic: false
Category: Server
ZooKeeper operation timeout in seconds. @deprecated - Use metadataStoreOperationTimeoutSeconds instead.
Type: int
Default: -1
Dynamic: false
Category: Server
ZooKeeper session timeout in milliseconds. @deprecated - Use metadataStoreSessionTimeoutMillis instead.
Type: long
Default: -1
Dynamic: false
Category: Server
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
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)