enablePersistentTopics | Whether persistent topics are enabled on the broker | true |
enableNonPersistentTopics | Whether non-persistent topics are enabled on the broker | true |
functionsWorkerEnabled | Whether the Pulsar Functions worker service is enabled in the broker | false |
zookeeperServers | Zookeeper quorum connection string | |
configurationStoreServers | 配置存储连接字符串(以逗号分隔的列表) | |
brokerServicePort | Broker data port | 6650 |
brokerServicePortTls | Broker data port for TLS | 6651 |
webServicePort | Port to use to server HTTP request | 8080 |
webServicePortTls | Port to use to server HTTPS request | 8443 |
webSocketServiceEnabled | Enable the WebSocket API service in broker | false |
bindAddress | Hostname or IP address the service binds on, default is 0.0.0.0. | 0.0.0.0 |
advertisedAddress | Hostname or IP address the service advertises to the outside world. If not set, the value of InetAddress.getLocalHost().getHostName() is used. | |
clusterName | Name of the cluster to which this broker belongs to | |
brokerDeduplicationEnabled | Sets the default behavior for message deduplication in the broker. If enabled, the broker will reject messages that were already stored in the topic. This setting can be overridden on a per-namespace basis. | false |
brokerDeduplicationMaxNumberOfProducers | The maximum number of producers for which information will be stored for deduplication purposes. | 10000 |
brokerDeduplicationEntriesInterval | The number of entries after which a deduplication informational snapshot is taken. A larger interval will lead to fewer snapshots being taken, though this would also lengthen the topic recovery time (the time required for entries published after the snapshot to be replayed). | 1000 |
brokerDeduplicationProducerInactivityTimeoutMinutes | The time of inactivity (in minutes) after which the broker will discard deduplication information related to a disconnected producer. | 360 |
dispatchThrottlingRatePerReplicatorInMsg | The default messages per second dispatch throttling-limit for every replicator in replication. The value of 0 means disabling replication message dispatch-throttling | 0 |
dispatchThrottlingRatePerReplicatorInByte | The default bytes per second dispatch throttling-limit for every replicator in replication. The value of 0 means disabling replication message-byte dispatch-throttling | 0 |
zooKeeperSessionTimeoutMillis | Zookeeper session timeout in milliseconds | 30000 |
brokerShutdownTimeoutMs | Time to wait for broker graceful shutdown. After this time elapses, the process will be killed | 60000 |
skipBrokerShutdownOnOOM | Flag to skip broker shutdown when broker handles Out of memory error. | false |
backlogQuotaCheckEnabled | Enable backlog quota check. Enforces action on topic when the quota is reached | true |
backlogQuotaCheckIntervalInSeconds | How often to check for topics that have reached the quota | 60 |
backlogQuotaDefaultLimitGB | The default per-topic backlog quota limit | -1 |
allowAutoTopicCreation | Enable topic auto creation if a new producer or consumer connected | true |
allowAutoTopicCreationType | The topic type (partitioned or non-partitioned) that is allowed to be automatically created. | Partitioned |
allowAutoSubscriptionCreation | Enable subscription auto creation if a new consumer connected | true |
defaultNumPartitions | The number of partitioned topics that is allowed to be automatically created if allowAutoTopicCreationType is partitioned | 1 |
brokerDeleteInactiveTopicsEnabled | Enable the deletion of inactive topics | true |
brokerDeleteInactiveTopicsFrequencySeconds | How often to check for inactive topics | 60 |
messageExpiryCheckIntervalInMinutes | How frequently to proactively check and purge expired messages | 5 |
brokerServiceCompactionMonitorIntervalInSeconds | Interval between checks to see if topics with compaction policies need to be compacted | 60 |
activeConsumerFailoverDelayTimeMillis | How long to delay rewinding cursor and dispatching messages when active consumer is changed. | 1000 |
clientLibraryVersionCheckEnabled | Enable check for minimum allowed client library version | false |
clientLibraryVersionCheckAllowUnversioned | Allow client libraries with no version information | true |
statusFilePath | Path for the file used to determine the rotation status for the broker when responding to service discovery health checks | |
preferLaterVersions | If true, (and ModularLoadManagerImpl is being used), the load manager will attempt to use only brokers running the latest software version (to minimize impact to bundles) | false |
tlsEnabled | Enable TLS | false |
tlsCertificateFilePath | TLS证书文件的路径 | |
tlsKeyFilePath | TLS私钥文件的路径 | |
tlsTrustCertsFilePath | Path for the trusted TLS certificate file | |
tlsAllowInsecureConnection | Accept untrusted TLS certificate from client | false |
tlsProtocols | Specify the tls protocols the broker will use to negotiate during TLS Handshake. Multiple values can be specified, separated by commas. Example:- TLSv1.2 , TLSv1.1 , | |
tlsCiphers | Specify the tls cipher the broker will use to negotiate during TLS Handshake. Multiple values can be specified, separated by commas. Example:- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 | |
ttlDurationDefaultInSeconds | The default ttl for namespaces if ttl is not configured at namespace policies. | 0 |
tokenSecretKey | Configure the secret key to be used to validate auth tokens. The key can be specified like: tokenSecretKey=data:base64,xxxxxxxxx or tokenSecretKey=file:///my/secret.key | |
tokenPublicKey | Configure the public key to be used to validate auth tokens. The key can be specified like: tokenPublicKey=data:base64,xxxxxxxxx or tokenPublicKey=file:///my/secret.key | |
tokenPublicAlg | Configure the algorithm to be used to validate auth tokens. This can be any of the asymettric algorithms supported by Java JWT () | RS256 |
tokenAuthClaim | Specify which of the token’s claims will be used as the authentication “principal” or “role”. The default “sub” claim will be used if this is left blank | |
tokenAudienceClaim | The token audience “claim” name, e.g. “aud”, that will be used to get the audience from token. If not set, audience will not be verified. | |
tokenAudience | The token audience stands for this broker. The field tokenAudienceClaim of a valid token, need contains this. | |
maxUnackedMessagesPerConsumer | Max number of unacknowledged messages allowed to receive messages by a consumer on a shared subscription. Broker will stop sending messages to consumer once, this limit reaches until consumer starts acknowledging messages back. Using a value of 0, is disabling unackeMessage limit check and consumer can receive messages without any restriction | 50000 |
maxUnackedMessagesPerSubscription | Max number of unacknowledged messages allowed per shared subscription. Broker will stop dispatching messages to all consumers of the subscription once this limit reaches until consumer starts acknowledging messages back and unack count reaches to limit/2. Using a value of 0, is disabling unackedMessage-limit check and dispatcher can dispatch messages without any restriction | 200000 |
subscriptionRedeliveryTrackerEnabled | Enable subscription message redelivery tracker | true |
maxConcurrentLookupRequest | Max number of concurrent lookup request broker allows to throttle heavy incoming lookup traffic | 50000 |
maxConcurrentTopicLoadRequest | Max number of concurrent topic loading request broker allows to control number of zk-operations | 5000 |
authenticationEnabled | Enable authentication | false |
authenticationProviders | Autentication provider name list, which is comma separated list of class names | |
authorizationEnabled | Enforce authorization | false |
superUserRoles | Role names that are treated as “super-user”, meaning they will be able to do all admin operations and publish/consume from all topics | |
brokerClientAuthenticationPlugin | Authentication settings of the broker itself. Used when the broker connects to other brokers, either in same or other clusters | |
brokerClientAuthenticationParameters | | |
athenzDomainNames | Supported Athenz provider domain names(comma separated) for authentication | |
exposePreciseBacklogInPrometheus | Enable expose the precise backlog stats, set false to use published counter and consumed counter to calculate, this would be more efficient but may be inaccurate. | false |
bookkeeperClientAuthenticationPlugin | Authentication plugin to use when connecting to bookies | |
bookkeeperClientAuthenticationParametersName | BookKeeper auth plugin implementatation specifics parameters name and values | |
bookkeeperClientAuthenticationParameters | | |
bookkeeperClientTimeoutInSeconds | Timeout for BK add / read operations | 30 |
bookkeeperClientSpeculativeReadTimeoutInMillis | Speculative reads are initiated if a read request doesn’t complete within a certain time Using a value of 0, is disabling the speculative reads | 0 |
bookkeeperClientHealthCheckEnabled | Enable bookies health check. Bookies that have more than the configured number of failure within the interval will be quarantined for some time. During this period, new ledgers won’t be created on these bookies | true |
bookkeeperClientHealthCheckIntervalSeconds | | 60 |
bookkeeperClientHealthCheckErrorThresholdPerInterval | | 5 |
bookkeeperClientHealthCheckQuarantineTimeInSeconds | | 1800 |
bookkeeperClientRackawarePolicyEnabled | Enable rack-aware bookie selection policy. BK will chose bookies from different racks when forming a new bookie ensemble | true |
bookkeeperClientRegionawarePolicyEnabled | Enable region-aware bookie selection policy. BK will chose bookies from different regions and racks when forming a new bookie ensemble. If enabled, the value of bookkeeperClientRackawarePolicyEnabled is ignored | false |
bookkeeperClientReorderReadSequenceEnabled | Enable/disable reordering read sequence on reading entries. | false |
bookkeeperClientIsolationGroups | Enable bookie isolation by specifying a list of bookie groups to choose from. Any bookie outside the specified groups will not be used by the broker | |
bookkeeperClientSecondaryIsolationGroups | Enable bookie secondary-isolation group if bookkeeperClientIsolationGroups doesn’t have enough bookie available. | |
bookkeeperClientMinAvailableBookiesInIsolationGroups | Minimum bookies that should be available as part of bookkeeperClientIsolationGroups else broker will include bookkeeperClientSecondaryIsolationGroups bookies in isolated list. | |
bookkeeperEnableStickyReads | Enable/disable having read operations for a ledger to be sticky to a single bookie. If this flag is enabled, the client will use one single bookie (by preference) to read all entries for a ledger. | true |
managedLedgerDefaultEnsembleSize | Number of bookies to use when creating a ledger | 2 |
managedLedgerDefaultWriteQuorum | Number of copies to store for each message | 2 |
managedLedgerDefaultAckQuorum | Number of guaranteed copies (acks to wait before write is complete) | 2 |
managedLedgerCacheSizeMB | Amount of memory to use for caching data payload in managed ledger. This memory is allocated from JVM direct memory and it’s shared across all the topics running in the same broker. By default, uses 1/5th of available direct memory | |
managedLedgerCacheCopyEntries | Whether we should make a copy of the entry payloads when inserting in cache | false |
managedLedgerCacheEvictionWatermark | Threshold to which bring down the cache level when eviction is triggered | 0.9 |
managedLedgerCacheEvictionFrequency | Configure the cache eviction frequency for the managed ledger cache (evictions/sec) | 100.0 |
managedLedgerCacheEvictionTimeThresholdMillis | All entries that have stayed in cache for more than the configured time, will be evicted | 1000 |
managedLedgerCursorBackloggedThreshold | Configure the threshold (in number of entries) from where a cursor should be considered ‘backlogged’ and thus should be set as inactive. | 1000 |
managedLedgerDefaultMarkDeleteRateLimit | Rate limit the amount of writes per second generated by consumer acking the messages | 1.0 |
managedLedgerMaxEntriesPerLedger | Max number of entries to append to a ledger before triggering a rollover. A ledger rollover is triggered on these conditions:- Either the max rollover time has been reached
- or max entries have been written to the ledged and at least min-time has passed
| 50000 |
managedLedgerMinLedgerRolloverTimeMinutes | Minimum time between ledger rollover for a topic | 10 |
managedLedgerMaxLedgerRolloverTimeMinutes | Maximum time before forcing a ledger rollover for a topic | 240 |
managedLedgerCursorMaxEntriesPerLedger | Max number of entries to append to a cursor ledger | 50000 |
managedLedgerCursorRolloverTimeInSeconds | Max time before triggering a rollover on a cursor ledger | 14400 |
managedLedgerMaxUnackedRangesToPersist | Max number of “acknowledgment holes” that are going to be persistently stored. When acknowledging out of order, a consumer will leave holes that are supposed to be quickly filled by acking all the messages. The information of which messages are acknowledged is persisted by compressing in “ranges” of messages that were acknowledged. After the max number of ranges is reached, the information will only be tracked in memory and messages will be redelivered in case of crashes. | 1000 |
autoSkipNonRecoverableData | Skip reading non-recoverable/unreadable data-ledger under managed-ledger’s list.It helps when data-ledgers gets corrupted at bookkeeper and managed-cursor is stuck at that ledger. | false |
loadBalancerEnabled | Enable load balancer | true |
loadBalancerPlacementStrategy | Strategy to assign a new bundle weightedRandomSelection | |
loadBalancerReportUpdateThresholdPercentage | Percentage of change to trigger load report update | 10 |
loadBalancerReportUpdateMaxIntervalMinutes | maximum interval to update load report | 15 |
loadBalancerHostUsageCheckIntervalMinutes | Frequency of report to collect | 1 |
loadBalancerSheddingIntervalMinutes | Load shedding interval. Broker periodically checks whether some traffic should be offload from some over-loaded broker to other under-loaded brokers | 30 |
loadBalancerSheddingGracePeriodMinutes | Prevent the same topics to be shed and moved to other broker more that once within this timeframe | 30 |
loadBalancerBrokerMaxTopics | Usage threshold to allocate max number of topics to broker | 50000 |
loadBalancerBrokerUnderloadedThresholdPercentage | Usage threshold to determine a broker as under-loaded | 1 |
loadBalancerBrokerOverloadedThresholdPercentage | Usage threshold to determine a broker as over-loaded | 85 |
loadBalancerResourceQuotaUpdateIntervalMinutes | Interval to update namespace bundle resource quotat | 15 |
loadBalancerBrokerComfortLoadLevelPercentage | Usage threshold to determine a broker is having just right level of load | 65 |
loadBalancerAutoBundleSplitEnabled | enable/disable namespace bundle auto split | false |
loadBalancerNamespaceBundleMaxTopics | maximum topics in a bundle, otherwise bundle split will be triggered | 1000 |
loadBalancerNamespaceBundleMaxSessions | maximum sessions (producers + consumers) in a bundle, otherwise bundle split will be triggered | 1000 |
loadBalancerNamespaceBundleMaxMsgRate | maximum msgRate (in + out) in a bundle, otherwise bundle split will be triggered | 1000 |
loadBalancerNamespaceBundleMaxBandwidthMbytes | maximum bandwidth (in + out) in a bundle, otherwise bundle split will be triggered | 100 |
loadBalancerNamespaceMaximumBundles | maximum number of bundles in a namespace | 128 |
replicationMetricsEnabled | Enable replication metrics | true |
replicationConnectionsPerBroker | Max number of connections to open for each broker in a remote cluster More connections host-to-host lead to better throughput over high-latency links. | 16 |
replicationProducerQueueSize | Replicator producer queue size | 1000 |
replicatorPrefix | Replicator prefix used for replicator producer name and cursor name pulsar.repl | |
replicationTlsEnabled | Enable TLS when talking with other clusters to replicate messages | false |
defaultRetentionTimeInMinutes | Default message retention time | |
defaultRetentionSizeInMB | Default retention size | 0 |
keepAliveIntervalSeconds | How often to check whether the connections are still alive | 30 |
loadManagerClassName | Name of load manager to use | org.apache.pulsar.broker.loadbalance.impl.SimpleLoadManagerImpl |
supportedNamespaceBundleSplitAlgorithms | Supported algorithms name for namespace bundle split | [range_equally_divide,topic_count_equally_divide] |
defaultNamespaceBundleSplitAlgorithm | Default algorithm name for namespace bundle split | range_equally_divide |
managedLedgerOffloadDriver | Driver to use to offload old data to long term storage (Possible values: S3) | |
managedLedgerOffloadMaxThreads | Maximum number of thread pool threads for ledger offloading | 2 |
managedLedgerUnackedRangesOpenCacheSetEnabled | Use Open Range-Set to cache unacknowledged messages | true |
managedLedgerOffloadDeletionLagMs | Delay between a ledger being successfully offloaded to long term storage and the ledger being deleted from bookkeeper | 14400000 |
managedLedgerOffloadAutoTriggerSizeThresholdBytes | The number of bytes before triggering automatic offload to long term storage | -1 (disabled) |
s3ManagedLedgerOffloadRegion | For Amazon S3 ledger offload, AWS region | |
s3ManagedLedgerOffloadBucket | For Amazon S3 ledger offload, Bucket to place offloaded ledger into | |
s3ManagedLedgerOffloadServiceEndpoint | For Amazon S3 ledger offload, Alternative endpoint to connect to (useful for testing) | |
s3ManagedLedgerOffloadMaxBlockSizeInBytes | For Amazon S3 ledger offload, Max block size in bytes. (64MB by default, 5MB minimum) | 67108864 |
s3ManagedLedgerOffloadReadBufferSizeInBytes | For Amazon S3 ledger offload, Read buffer size in bytes (1MB by default) | 1048576 |
s3ManagedLedgerOffloadRole | For Amazon S3 ledger offload, provide a role to assume before writing to s3 | |
s3ManagedLedgerOffloadRoleSessionName | For Amazon S3 ledger offload, provide a role session name when using a role | pulsar-s3-offload |
maxMessageSize | Set the maximum size of a message. | 5 MB |