Pulsar configuration
BookKeeper 是一个冗余的日志存储系统,Pulsar 用它来持久化存储所有消息。
Broker
Pulsar broker 负责处理从生产者发出消息、向消费者派发消息、在集群间复制数据等。
<td>
Specify multiple advertised listeners for the broker.<br><br>The format is <code><listener_name>:pulsar://<host>:<port></code>.<br><br>If there are multiple listeners, separate them with commas.<br><br><strong x-id="1">Note</strong>: do not use this configuration with <code>advertisedAddress</code> and <code>brokerServicePort</code>. If the value of this configuration is empty, the broker uses <code>advertisedAddress</code> and <code>brokerServicePort</code>
</td>
<td>
/
</td>
配置项 |
---|
advertisedListeners |
internalListenerName|Specify the internal listener name for the broker.
Note: the listener name must be contained in advertisedListeners
.
If the value of this configuration is empty, the broker uses the first listener as the internal listener.|/| |authenticateOriginalAuthData| If this flag is set to true
, the broker authenticates the original Auth data; else it just accepts the originalPrincipal and authorizes it (if required). |false| |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| |exposePublisherStats|Whether to enable topic level metrics.|true| |statsUpdateFrequencyInSecs||60| |statsUpdateInitialDelayInSecs||60| |zookeeperServers| Zookeeper quorum connection string || |zooKeeperCacheExpirySeconds|ZooKeeper cache expiry time in seconds|300 |configurationStoreServers| Configuration store connection string (as a comma-separated list) || |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| |webSocketNumIoThreads|The number of IO threads in Pulsar Client used in WebSocket proxy.|8| |webSocketConnectionsPerBroker|The number of connections per Broker in Pulsar Client used in WebSocket proxy.|8| |webSocketSessionIdleTimeoutMillis|Time in milliseconds that idle WebSocket session times out.|300000| |webSocketMaxTextFrameSize|The maximum size of a text message during parsing in WebSocket proxy.|1048576| |exposeTopicLevelMetricsInPrometheus|Whether to enable topic level metrics.|true| |exposeConsumerLevelMetricsInPrometheus|Whether to enable consumer level metrics.|false| |jvmGCMetricsLoggerClassName|Classname of Pluggable JVM GC metrics logger that can log GC specific metrics.|N/A| |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. Being less than 0 means no limitation. By default, it is -1. | -1 | |backlogQuotaDefaultRetentionPolicy|The defaulted backlog quota retention policy. By Default, it is producer_request_hold
.
- ‘producer_request_hold’ Policy which holds producer’s send request until the resource 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
|producer_request_hold| |allowAutoTopicCreation| Enable topic auto creation if a new producer or consumer connected |true| |allowAutoTopicCreationType| The type of topic that is allowed to be automatically created.(partitioned/non-partitioned) |non-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| | brokerDeleteInactiveTopicsMode | Set the mode to delete inactive topics.-delete_when_no_subscriptions
: 删除没有订阅或活动生产者的主题。 -
Setting this configuration to a value greater than 0 deletes inactive subscriptions automatically.
Setting this configuration to 0 does not delete inactive subscriptions automatically.Since this configuration takes effect on all topics, if there is even one topic whose subscriptions should not be deleted automatically, you need to set it to 0.
Instead, you can set a subscription expiration time for each namespace using the . | 0 | |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 || | authenticationRefreshCheckSeconds | Interval of time for checking for expired authentication credentials | 60 | |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. 当 broker 连接到其它 broker 时使用,不管是相同集群还是其它集群中的 || |brokerClientAuthenticationParameters||| |athenzDomainNames| 用于认证的受支持的 Athenz 提供者域名(逗号分隔) || |exposePreciseBacklogInPrometheus| 暴露出精确的积压统计信息,设置为 false 来使用 published counter 和 consumed counter 来进行计算,这样更高效但可能会有误差。 |false| |schemaRegistryStorageClassName|The schema storage implementation used by this broker.|org.apache.pulsar.broker.service.schema.BookkeeperSchemaStorageFactory| |isSchemaValidationEnforced|Enforce schema validation on following cases: if a producer without a schema attempts to produce to a topic with schema, the producer will be failed to connect. PLEASE be carefully on using this, since non-java clients don’t support schema. If this setting is enabled, then non-java clients fail to produce.|false| |offloadersDirectory|The directory for all the offloader implementations.|./offloaders| |bookkeeperMetadataServiceUri| Metadata service uri that bookkeeper is used for loading corresponding metadata driver and resolving its metadata service location. This value can be fetched usingbookkeeper shell whatisinstanceid
command in BookKeeper cluster. 例如: zk+hierarchical://localhost:2181/ledgers。 The metadata service uri list can also be semicolon separated values like below: ;zk2:2181;zk3:2181/ledgers || |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| |bookkeeperNumberOfChannelsPerBookie| Number of channels per bookie |16| |bookkeeperClientHealthCheckEnabled| Enable bookies health check. Bookies that have more than the configured number of failure within the interval will be quarantined for some time. 在此期间,这些 bookies 上不会创建新的 ledger |true| |bookkeeperClientHealthCheckIntervalSeconds||60| |bookkeeperClientHealthCheckErrorThresholdPerInterval||5| |bookkeeperClientHealthCheckQuarantineTimeInSeconds ||1800| |bookkeeperClientRackawarePolicyEnabled| 启用 rack-aware bookie 选择政策。 当生成新的 bookie ensemble 时 BK 会从不同的 rack 中选取 bookie |true| |bookkeeperClientRegionawarePolicyEnabled| 启用 region-aware bookie 选择政策。 BK will chose bookies from different regions and racks when forming a new bookie ensemble. If enabled, the value of bookkeeperClientRackawarePolicyEnabled is ignored |false| |bookkeeperClientMinNumRacksPerWriteQuorum| Minimum number of racks per write quorum. BK rack-aware bookie selection policy will try to get bookies from at least ‘bookkeeperClientMinNumRacksPerWriteQuorum’ racks for a write quorum. |2| |bookkeeperClientEnforceMinNumRacksPerWriteQuorum| Enforces rack-aware bookie selection policy to pick bookies from ‘bookkeeperClientMinNumRacksPerWriteQuorum’ racks for a writeQuorum. If BK can’t find bookie then it would throw BKNotEnoughBookiesException instead of picking random one. |false| |bookkeeperClientReorderReadSequenceEnabled| Enable/disable reordering read sequence on reading entries. |false| |bookkeeperClientIsolationGroups| 通过指定一个要选择的 bookie 组列表来启用 bookie 隔离。 指定组外的任何 bookie 都不会被 broker 使用 || |bookkeeperClientSecondaryIsolationGroups| 当 bookkeeperClientIsolationGroups 没有足够多的可用 bookie 时启用 bookie 的 secondary-isolation 组。 || |bookkeeperClientMinAvailableBookiesInIsolationGroups| bookkeeperClientIsolationGroups 中应可用的最少 bookie 数,否则 broker 会将 bookkeeperClientSecondaryIsolationGroups 的 bookie 囊括在隔离列表中。 || |bookkeeperClientGetBookieInfoIntervalSeconds| 设置定期查询 bookie 信息的间隔 |86400| |bookkeeperClientGetBookieInfoRetryIntervalSeconds| 设置当查询 bookie 信息失败后的重试间隔 |60| |bookkeeperEnableStickyReads | 启用/禁用 使对一个 ledger 的读请求变得与单个 broker 粘滞(sticky)。 If this flag is enabled, the client will use one single bookie (by preference) to read all entries for a ledger. | true | |managedLedgerDefaultEnsembleSize| 当创建一个 ledger 时使用的 bookie 数量 |2| |managedLedgerDefaultWriteQuorum| 每个消息存储的拷贝数量 |2| |managedLedgerDefaultAckQuorum| 得到保证的拷贝数量 (写操作完成前需要等待的 ack) |2| |managedLedgerCacheSizeMB| 在托管的 ledger 中用于缓存数据负载的内存大小。 This memory is allocated from JVM direct memory and it’s shared across all the topics running in the same broker. 默认地,使用可用的直接内存的 1/5 || |managedLedgerCacheCopyEntries| 当插入缓存时是否应该创建条目负载的拷贝 | false| |managedLedgerCacheEvictionWatermark| 当驱逐触发时降低缓存等级的阈值 |0.9| |managedLedgerCacheEvictionFrequency| 为托管的 ledger 缓存配置缓存驱逐频率 (驱逐/秒) | 100.0 | |managedLedgerCacheEvictionTimeThresholdMillis| 所有在缓存中停留超过配置时长的条目会被驱逐 | 1000 | |managedLedgerCursorBackloggedThreshold| 设置当游标应被当作“积压的” 且应被设置为非活动的阈值 (以条目数为单位)。 | 1000| |managedLedgerDefaultMarkDeleteRateLimit| Rate limit the amount of writes per second generated by consumer acking the messages |1.0| |managedLedgerMaxEntriesPerLedger| The 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 the max entries have been written to the ledger 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| |brokerServicePurgeInactiveFrequencyInSeconds|Deprecated. Use
brokerDeleteInactiveTopicsFrequencySeconds
.|60| |transactionCoordinatorEnabled|Whether to enable transaction coordinator in broker.|true| |transactionMetadataStoreProviderClassName| |org.apache.pulsar.transaction.coordinator.impl.InMemTransactionMetadataStoreProvider| |defaultRetentionTimeInMinutes| Default message retention time |0| |defaultRetentionSizeInMB| Default retention size |0| |keepAliveIntervalSeconds| How often to check whether the connections are still alive |30| |bootstrapNamespaces| The bootstrap name. | N/A | |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| The directory for all the offloader implementationsoffloadersDirectory=./offloaders
. Driver to use to offload old data to long term storage (Possible values: S3, aws-s3, google-cloud-storage). When using google-cloud-storage, Make sure both Google Cloud Storage and Google Cloud Storage JSON API are enabled for the project (check from Developers Console -> Api&auth -> APIs). || |managedLedgerOffloadMaxThreads| Maximum number of thread pool threads for ledger offloading |2| |managedLedgerOffloadPrefetchRounds|The maximum prefetch rounds for ledger reading for offloading.|1| |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| |gcsManagedLedgerOffloadRegion|For Google Cloud Storage ledger offload, region where offload bucket is located. Go to this page for more details: https://cloud.google.com/storage/docs/bucket-locations .|N/A| |gcsManagedLedgerOffloadBucket|For Google Cloud Storage ledger offload, Bucket to place offloaded ledger into.|N/A| |gcsManagedLedgerOffloadMaxBlockSizeInBytes|For Google Cloud Storage ledger offload, the maximum block size in bytes. (64MB by default, 5MB minimum)|67108864| |gcsManagedLedgerOffloadReadBufferSizeInBytes|For Google Cloud Storage ledger offload, Read buffer size in bytes. (1MB by default)|1048576| |gcsManagedLedgerOffloadServiceAccountKeyFile|For Google Cloud Storage, path to json file containing service account credentials. For more details, see the “Service Accounts” section of .|N/A| |fileSystemProfilePath|For File System Storage, file system profile path.|../conf/filesystem_offload_core_site.xml| |fileSystemURI|For File System Storage, file system uri.|N/A| |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| | acknowledgmentAtBatchIndexLevelEnabled | Enable or disable the batch index acknowledgement. | false | |enableReplicatedSubscriptions|Whether to enable tracking of replicated subscriptions state across clusters.|true| |replicatedSubscriptionsSnapshotFrequencyMillis|The frequency of snapshots for replicated subscriptions tracking.|1000| |replicatedSubscriptionsSnapshotTimeoutSeconds|The timeout for building a consistent snapshot for tracking replicated subscriptions state.|30| |replicatedSubscriptionsSnapshotMaxCachedPerSubscription|The maximum number of snapshot to be cached per subscription.|10| |maxMessagePublishBufferSizeInMB|The maximum memory size for broker handling messages sent from producers. If the processing message size exceeds this value, broker stops reading data from the connection. The processing messages means messages are sent to broker but broker have not sent response to the client. Usually the message are waiting to be written to bookies. It’s shared across all the topics running in the same broker. The value-1
disables the memory limitation. By default, it is 50% of direct memory.|N/A| |messagePublishBufferCheckIntervalInMillis|Interval between checks to see if message publish buffer size exceeds the maximum. Use0
or negative number to disable the max publish buffer limiting.|100| |retentionCheckIntervalInSeconds|Check between intervals to see if consumed ledgers need to be trimmed. Use 0 or negative number to disable the check.|120| | maxMessageSize | Set the maximum size of a message. | 5242880 | | preciseTopicPublishRateLimiterEnable | Enable precise topic publish rate limiting. | false | | lazyCursorRecovery | Whether to recover cursors lazily when trying to recover a managed ledger backing a persistent topic. It can improve write availability of topics. The caveat is now when recovered ledger is ready to write we’re not sure if all old consumers’ last mark delete position(ack position) can be recovered or not. So user can make the trade off or have custom logic in application to checkpoint consumer state.| false |Client
The CLI tool can be used to publish messages to Pulsar and consume messages from Pulsar topics. This tool can be used in lieu of a client library.
配置项 Description 默认值 webServiceUrl 群集的 web URL。 http://localhost:8080/ brokerServiceUrl 集群的Pulsar 协议地址。 authPlugin 身份认证插件。 authParams 群集的身份认证参数, 逗号分隔的字符串。 useTls 是否在群集中强制执行 TLS 验证。 false tlsAllowInsecureConnection Allow TLS connections to servers whose certificate cannot be verified to have been signed by a trusted certificate authority. false tlsEnableHostnameVerification Whether the server hostname must match the common name of the certificate that is used by the server. false tlsTrustCertsFilePath useKeyStoreTls Enable TLS with KeyStore type configuration in the broker. false tlsTrustStoreType TLS TrustStore type configuration. - JKS
- PKCS12
JKS tlsTrustStore TLS TrustStore path. tlsTrustStorePassword TLS TrustStore password. Log4j
配置项 默认值 pulsar.root.logger WARN,CONSOLE pulsar.log.dir logs pulsar.log.file pulsar.log log4j.rootLogger ${pulsar.root.logger} log4j.appender.CONSOLE org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.Threshold DEBUG log4j.appender.CONSOLE.layout org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern %d{ISO8601} - %-5p - [%t:%C{1}@%L] - %m%n log4j.appender.ROLLINGFILE org.apache.log4j.DailyRollingFileAppender log4j.appender.ROLLINGFILE.Threshold DEBUG log4j.appender.ROLLINGFILE.File ${pulsar.log.dir}/${pulsar.log.file} log4j.appender.ROLLINGFILE.layout org.apache.log4j.PatternLayout log4j.appender.ROLLINGFILE.layout.ConversionPattern %d{ISO8601} - %-5p [%t:%C{1}@%L] - %m%n log4j.appender.TRACEFILE org.apache.log4j.FileAppender log4j.appender.TRACEFILE.Threshold TRACE log4j.appender.TRACEFILE.File pulsar-trace.log log4j.appender.TRACEFILE.layout org.apache.log4j.PatternLayout log4j.appender.TRACEFILE.layout.ConversionPattern %d{ISO8601} - %-5p [%t:%C{1}@%L][%x] - %m%n Log4j shell
配置项 默认值 bookkeeper.root.logger ERROR,CONSOLE log4j.rootLogger ${bookkeeper.root.logger} log4j.appender.CONSOLE org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.Threshold DEBUG log4j.appender.CONSOLE.layout org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern %d{ABSOLUTE} %-5p %m%n log4j.logger.org.apache.zookeeper ERROR log4j.logger.org.apache.bookkeeper ERROR log4j.logger.org.apache.bookkeeper.bookie.BookieShell INFO <th>
Description
</th>
<th>
默认值
</th>
<td>
If this flag is set to <code>true</code>, the broker authenticates the original Auth data; else it just accepts the originalPrincipal and authorizes it (if required).
</td>
<td>
false
</td>
<td>
The quorum connection string for local ZooKeeper
</td>
<td>
</td>
<td>
ZooKeeper 缓存过期时间(秒)
</td>
<td>
300
</td>
<td>
配置存储连接字符串(以逗号分隔的列表)
</td>
<td>
</td>
<td>
The port on which the standalone broker listens for connections
</td>
<td>
6650
</td>
<td>
THe port used by the standalone broker for HTTP requests
</td>
<td>
8080
</td>
<td>
The hostname or IP address on which the standalone service binds
</td>
<td>
0.0.0.0
</td>
<td>
The hostname or IP address that the standalone service advertises to the outside world. If not set, the value of <code>InetAddress.getLocalHost().getHostName()</code> is used.
</td>
<td>
</td>
<td>
Number of threads to use for Netty IO
</td>
<td>
2 * Runtime.getRuntime().availableProcessors()
</td>
<td>
Number of threads to use for HTTP requests processing
</td>
<td>
2 * Runtime.getRuntime().availableProcessors()
</td>
<td>
This flag controls features that are meant to be used when running in standalone mode.
</td>
<td>
N/A
</td>
<td>
The name of the cluster that this broker belongs to.
</td>
<td>
standalone
</td>
<td>
Enable cluster's failure-domain which can distribute brokers into logical region.
</td>
<td>
false
</td>
<td>
The ZooKeeper session timeout, in milliseconds.
</td>
<td>
30000
</td>
<td>
</td>
<td>
30
</td>
The time to wait for graceful broker shutdown. After this time elapses, the process will be killed.
</td>
<td>
60000
</td>
<td>
Flag to skip broker shutdown when broker handles Out of memory error.
</td>
<td>
false
</td>
<td>
How often to check for topics that have reached the backlog quota.
</td>
<td>
60
</td>
<td>
The default per-topic backlog quota limit. Being less than 0 means no limitation. By default, it is -1.
</td>
<td>
-1
</td>
<td>
The default ttl for namespaces if ttl is not configured at namespace policies.
</td>
<td>
0
</td>
<td>
Enable the deletion of inactive topics.
</td>
<td>
true
</td>
<td>
How often to check for inactive topics, in seconds.
</td>
<td>
60
</td>
<td>
Maximum pending publish requests per connection to avoid keeping large number of pending requests in memory
</td>
<td>
1000
</td>
<td>
How often to proactively check and purged expired messages.
</td>
<td>
5
</td>
<td>
How long to delay rewinding cursor and dispatching messages when active consumer is changed.
</td>
<td>
1000
</td>
<td>
How long to delete inactive subscriptions from last consumption. When it is set to 0, inactive subscriptions are not deleted automatically
</td>
<td>
0
</td>
<td>
Enable subscription message redelivery tracker to send redelivery count to consumer.
</td>
<td>
true
</td>
<td>
Whether to enable the Key_Shared subscription.
</td>
<td>
true
</td>
<td>
In the Key_Shared subscription mode, with default AUTO_SPLIT mode, use splitting ranges or consistent hashing to reassign keys to new consumers.
</td>
<td>
false
</td>
<td>
In the Key_Shared subscription mode, the number of points in the consistent-hashing ring. The greater the number, the more equal the assignment of keys to consumers.
</td>
<td>
100
</td>
<td>
How frequently to proactively check and purge expired subscription
</td>
<td>
5
</td>
<td>
Set the default behavior for message deduplication in the broker. This can be overridden per-namespace. If it is enabled, the broker rejects messages that are already stored in the topic.
</td>
<td>
false
</td>
<td>
Maximum number of producer information that it's going to be persisted for deduplication purposes
</td>
<td>
10000
</td>
<td>
Number of entries after which a deduplication information snapshot is taken. A greater interval leads to less snapshots being taken though it would increase the topic recovery time, when the entries published after the snapshot need to be replayed.
</td>
<td>
1000
</td>
<td>
停止活动的时间(分钟级别),当生产者断开连接超过这个时间,就丢弃和该生产者有关的去重信息。
</td>
<td>
360
</td>
<td>
When a namespace is created without specifying the number of bundles, this value is used as the default setting.
</td>
<td>
</td>
<td>
Allow client libraries with no version information
<td>
true
</td>
<td>
The path for the file used to determine the rotation status for the broker when responding to service discovery health checks
</td>
<td>
/usr/local/apache/htdocs
</td>
<td>
The maximum number of unacknowledged messages allowed to be received by consumers on a shared subscription. The broker will stop sending messages to a consumer once this limit is reached or until the consumer begins acknowledging messages. A value of 0 disables the unacked message limit check and thus allows consumers to receive messages without any restrictions.
</td>
<td>
50000
</td>
<td>
The same as above, except per subscription rather than per consumer.
</td>
<td>
200000
</td>
<td>
Maximum number of unacknowledged messages allowed per broker. Once this limit reaches, the broker stops dispatching messages to all shared subscriptions which has a higher number of unacknowledged messages until subscriptions start acknowledging messages back and unacknowledged messages count reaches to limit/2. When the value is set to 0, unacknowledged message limit check is disabled and broker does not block dispatchers.
</td>
<td>
0
</td>
<td>
Once the broker reaches maxUnackedMessagesPerBroker limit, it blocks subscriptions which have higher unacknowledged messages than this percentage limit and subscription does not receive any new messages until that subscription acknowledges messages back.
</td>
<td>
0.16
</td>
<td>
Max number of partitions per partitioned topic. Use 0 or negative number to disable the check
</td>
<td>
0
</td>
<td>
There are two policies when ZooKeeper session expired happens, "shutdown" and "reconnect". If it is set to "shutdown" policy, when ZooKeeper session expired happens, the broker is shutdown. If it is set to "reconnect" policy, the broker tries to reconnect to ZooKeeper server and re-register metadata to ZooKeeper. Note: the "reconnect" policy is an experiment feature.
</td>
<td>
shutdown
</td>
<td>
Tick time to schedule task that checks topic publish rate limiting across all topics. A lower value can improve accuracy while throttling publish but it uses more CPU to perform frequent check. (Disable publish throttling with value 0)
</td>
<td>
10
</td>
<td>
Tick time to schedule task that checks broker publish rate limiting across all topics. A lower value can improve accuracy while throttling publish but it uses more CPU to perform frequent check. When the value is set to 0, publish throttling is disabled.
</td>
<td>
50
</td>
<td>
Maximum rate (in 1 second) of messages allowed to publish for a broker if the message rate limiting is enabled. When the value is set to 0, message rate limiting is disabled.
</td>
<td>
0
</td>
<td>
Maximum rate (in 1 second) of bytes allowed to publish for a broker if the byte rate limiting is enabled. When the value is set to 0, the byte rate limiting is disabled.
</td>
<td>
0
</td>
<td>
Too many subscribe requests from a consumer can cause broker rewinding consumer cursors and loading data from bookies, hence causing high network bandwidth usage. When the positive value is set, broker will throttle the subscribe requests for one consumer. Otherwise, the throttling will be disabled. By default, throttling is disabled.
</td>
<td>
0
</td>
<td>
Rate period for {subscribeThrottlingRatePerConsumer}. By default, it is 30s.
</td>
<td>
30
</td>
<td>
Default messages (per second) dispatch throttling-limit for every topic. When the value is set to 0, default message dispatch throttling-limit is disabled.
</td>
<td>
0
</td>
<td>
Default byte (per second) dispatch throttling-limit for every topic. When the value is set to 0, default byte dispatch throttling-limit is disabled.
</td>
<td>
0
</td>
<td>
Enable dispatch rate-limiting relative to publish rate.
</td>
<td>
false
</td>
<td>
The defaulted number of message dispatching throttling-limit for a subscription. The value of 0 disables message dispatch-throttling.
</td>
<td>
0
</td>
<td>
The default number of message-bytes dispatching throttling-limit for a subscription.
</td>
<td>
</td>
- JKS
- PKCS12 |JKS| | tlsKeyStore | TLS KeyStore path in the broker. | | | tlsKeyStorePassword | TLS KeyStore password for the broker. | | | tlsTrustStoreType | TLS TrustStore type configuration in the broker
- JKS
- PKCS12 |JKS| | tlsTrustStore | TLS TrustStore path in the broker. | | | tlsTrustStorePassword | TLS TrustStore password for the broker. | | | brokerClientTlsEnabledWithKeyStore | Configure whether the internal client uses the KeyStore type to authenticate with Pulsar brokers. | false | | brokerClientSslProvider | The TLS Provider used by the internal client to authenticate with other Pulsar brokers. | | | brokerClientTlsTrustStoreType | TLS TrustStore type configuration for the internal client to authenticate with Pulsar brokers.
- JKS
PKCS12 | JKS | | brokerClientTlsTrustStore | TLS TrustStore path for the internal client to authenticate with Pulsar brokers. | | | brokerClientTlsTrustStorePassword | TLS TrustStore password for the internal client to authenticate with Pulsar brokers. | | | brokerClientTlsCiphers | Specify the TLS cipher that the internal client uses to negotiate during TLS Handshake. | | | brokerClientTlsProtocols | Specify the TLS protocols that the broker uses to negotiate during TLS handshake. | | systemTopicEnabled | Enable/Disable system topics. | false | | topicLevelPoliciesEnabled | Enable or disable topic level policies. Topic level policies depends on the system topic. Please enable the system topic first. | false | | proxyRoles | Role names that are treated as “proxy roles”. If the broker sees a request with role as proxyRoles, it demands to see a valid original principal. | | | authenticateOriginalAuthData | If this flag is set, the broker authenticates the original Auth data. Otherwise, it just accepts the originalPrincipal and authorizes it (if required). | false | |authenticationEnabled| Enable authentication for the broker. |false| |authenticationProviders| A comma-separated list of class names for authentication providers. |false| |authorizationEnabled| Enforce authorization in brokers. |false| | authorizationProvider | Authorization provider fully qualified class-name. | org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider | | authorizationAllowWildcardsMatching | Allow wildcard matching in authorization. Wildcard matching is applicable only when the wildcard-character (
) presents at the first or last position. | false | |superUserRoles| Role names that are treated as “superusers.” Superusers are authorized to perform all admin tasks. | | |brokerClientAuthenticationPlugin| The authentication settings of the broker itself. Used when the broker connects to other brokers either in the same cluster or from other clusters. | | |brokerClientAuthenticationParameters| The parameters that go along with the plugin specified using brokerClientAuthenticationPlugin. | | |athenzDomainNames| Supported Athenz authentication provider domain names as a comma-separated list. | | | anonymousUserRole | When this parameter is not empty, unauthenticated users perform as anonymousUserRole. | | |tokenAuthClaim| Specify the token claim that will be used as the authentication “principal” or “role”. The “subject” field will be used if this is left blank || |tokenAudienceClaim| The token audience “claim” name, e.g. “aud”. It is used to get the audience from token. If it is not set, the audience is not verified. || | tokenAudience | The token audience stands for this broker. The field
tokenAudienceClaim
of a valid token need contains this parameter.| | |saslJaasClientAllowedIds|This is a regexp, which limits the range of possible ids which can connect to the Broker using SASL. By default, it is set toSaslConstants.JAAS_CLIENT_ALLOWED_IDS_DEFAULT
, which is “.pulsar.*“, so only clients whose id contains ‘pulsar’ are allowed to connect.|N/A| |saslJaasBrokerSectionName|Service Principal, for login context name. By default, it is set toSaslConstants.JAAS_DEFAULT_BROKER_SECTION_NAME
, which is “Broker”.|N/A| |httpMaxRequestSize|If the value is larger than 0, it rejects all HTTP requests with bodies larged than the configured limit.|-1| |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| |bookkeeperMetadataServiceUri|Metadata service uri is what BookKeeper used for loading corresponding metadata driver and resolving its metadata service location. This value can be fetched usingbookkeeper shell whatisinstanceid
command in BookKeeper cluster. For example:zk+hierarchical://localhost:2181/ledgers
. The metadata service uri list can also be semicolon separated values like:zk+hierarchical://zk1:2181;zk2:2181;zk3:2181/ledgers
.|N/A| |bookkeeperClientAuthenticationPlugin| Authentication plugin to be used when connecting to bookies (BookKeeper servers). || |bookkeeperClientAuthenticationParametersName| BookKeeper authentication plugin implementation parameters and values. || |bookkeeperClientAuthenticationParameters| Parameters associated with the bookkeeperClientAuthenticationParametersName || |bookkeeperClientTimeoutInSeconds| Timeout for BookKeeper add and read operations. |30| |bookkeeperClientSpeculativeReadTimeoutInMillis| Speculative reads are initiated if a read request doesn’t complete within a certain time. A value of 0 disables speculative reads. |0| |bookkeeperUseV2WireProtocol|Use older Bookkeeper wire protocol with bookie.|true| |bookkeeperClientHealthCheckEnabled| Enable bookie health checks. |true| |bookkeeperClientHealthCheckIntervalSeconds| The time interval, in seconds, at which health checks are performed. New ledgers are not created during health checks. |60| |bookkeeperClientHealthCheckErrorThresholdPerInterval| Error threshold for health checks. |5| |bookkeeperClientHealthCheckQuarantineTimeInSeconds| If bookies have more than the allowed number of failures within the time interval specified by bookkeeperClientHealthCheckIntervalSeconds |1800| |bookkeeperGetBookieInfoIntervalSeconds|Specify options for the GetBookieInfo check. This setting helps ensure the list of bookies that are up to date on the brokers.|86400| |bookkeeperGetBookieInfoRetryIntervalSeconds|Specify options for the GetBookieInfo check. This setting helps ensure the list of bookies that are up to date on the brokers.|60| |bookkeeperClientRackawarePolicyEnabled| |true| |bookkeeperClientRegionawarePolicyEnabled| |false| |bookkeeperClientMinNumRacksPerWriteQuorum| |2| |bookkeeperClientMinNumRacksPerWriteQuorum| |false| |bookkeeperClientReorderReadSequenceEnabled| |false| |bookkeeperClientIsolationGroups||| |bookkeeperClientSecondaryIsolationGroups| Enable bookie secondary-isolation group if bookkeeperClientIsolationGroups doesn’t have enough bookie available. || |bookkeeperClientMinAvailableBookiesInIsolationGroups| bookkeeperClientIsolationGroups 中应可用的最少 bookie 数,否则 broker 会将 bookkeeperClientSecondaryIsolationGroups 的 bookie 囊括在隔离列表中。 || | bookkeeperTLSProviderFactoryClass | Set the client security provider factory class name. | org.apache.bookkeeper.tls.TLSContextFactory | | bookkeeperTLSClientAuthentication | Enable TLS authentication with bookie. | false | | bookkeeperTLSKeyFileType | Supported type: PEM, JKS, PKCS12. | PEM | | bookkeeperTLSTrustCertTypes | Supported type: PEM, JKS, PKCS12. | PEM | | bookkeeperTLSKeyStorePasswordPath | Path to file containing keystore password, if the client keystore is password protected. | | bookkeeperTLSTrustStorePasswordPath | Path to file containing truststore password, if the client truststore is password protected. | | | bookkeeperTLSKeyFilePath | Path for the TLS private key file. | | | bookkeeperTLSCertificateFilePath | Path for the TLS certificate file. | | | bookkeeperTLSTrustCertsFilePath | Path for the trusted TLS certificate file. | | | bookkeeperDiskWeightBasedPlacementEnabled | Enable/Disable disk weight based placement. | false | | bookkeeperExplicitLacIntervalInMills | Set the interval to check the need for sending an explicit LAC. When the value is set to 0, no explicit LAC is sent. | 0 | | bookkeeperClientExposeStatsToPrometheus | Expose BookKeeper client managed ledger stats to Prometheus. | false | |managedLedgerDefaultEnsembleSize| |1| |managedLedgerDefaultWriteQuorum| |1| |managedLedgerDefaultAckQuorum| |1| | managedLedgerDigestType | Default type of checksum to use when writing to BookKeeper. | CRC32C | | managedLedgerNumWorkerThreads | Number of threads to be used for managed ledger tasks dispatching. | 8 | | managedLedgerNumSchedulerThreads | Number of threads to be used for managed ledger scheduled tasks. | 8 | |managedLedgerCacheSizeMB| |N/A| |managedLedgerCacheCopyEntries| Whether to copy the entry payloads when inserting in cache.| false| |managedLedgerCacheEvictionWatermark| |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| |managedLedgerUnackedRangesOpenCacheSetEnabled| Use Open Range-Set to cache unacknowledged messages |true| |managedLedgerDefaultMarkDeleteRateLimit| |0.1| |managedLedgerMaxEntriesPerLedger| |50000| |managedLedgerMinLedgerRolloverTimeMinutes| |10| |managedLedgerMaxLedgerRolloverTimeMinutes| |240| |managedLedgerCursorMaxEntriesPerLedger| |50000| |managedLedgerCursorRolloverTimeInSeconds| |14400| | managedLedgerMaxSizePerLedgerMbytes | Maximum ledger size before triggering a rollover for a topic. | 2048 | | managedLedgerMaxUnackedRangesToPersist | Maximum number of “acknowledgment holes” that are going to be persistently stored. When acknowledging out of order, a consumer leaves holes that are supposed to be quickly filled by acknowledging all the messages. The information of which messages are acknowledged is persisted by compressing in “ranges” of messages that were acknowledged. After the max number of ranges is reached, the information is only tracked in memory and messages are redelivered in case of crashes. | 10000 | | managedLedgerMaxUnackedRangesToPersistInZooKeeper | Maximum number of “acknowledgment holes” that can be stored in Zookeeper. If the number of unacknowledged message range is higher than this limit, the broker persists unacknowledged ranges into bookkeeper to avoid additional data overhead into Zookeeper. | 1000 | |autoSkipNonRecoverableData| |false| | managedLedgerMetadataOperationsTimeoutSeconds | Operation timeout while updating managed-ledger metadata. | 60 | | managedLedgerReadEntryTimeoutSeconds | Read entries timeout when the broker tries to read messages from BookKeeper. | 0 | | managedLedgerAddEntryTimeoutSeconds | Add entry timeout when the broker tries to publish message to BookKeeper. | 0 | | managedLedgerNewEntriesCheckDelayInMillis | New entries check delay for the cursor under the managed ledger. If no new messages in the topic, the cursor tries to check again after the delay time. For consumption latency sensitive scenario, you can set the value to a smaller value or 0. Of course, a smaller value may degrade consumption throughput.|10 ms| | managedLedgerPrometheusStatsLatencyRolloverSeconds | Managed ledger prometheus stats latency rollover seconds. | 60 | | managedLedgerTraceTaskExecution | Whether to trace managed ledger task execution time. | true | |managedLedgerNewEntriesCheckDelayInMillis|New entries check delay for the cursor under the managed ledger. If no new messages in the topic, the cursor will try to check again after the delay time. For consumption latency sensitive scenario, it can be set to a smaller value or 0. A smaller value degrades consumption throughput. By default, it is 10ms.|10| |loadBalancerEnabled| |false| |loadBalancerPlacementStrategy| |weightedRandomSelection| |loadBalancerReportUpdateThresholdPercentage| |10| |loadBalancerReportUpdateMaxIntervalMinutes| |15| |loadBalancerHostUsageCheckIntervalMinutes| |1| |loadBalancerSheddingIntervalMinutes| |30| |loadBalancerSheddingGracePeriodMinutes| |30| |loadBalancerBrokerMaxTopics| |50000| |loadBalancerBrokerUnderloadedThresholdPercentage| |1| |loadBalancerBrokerOverloadedThresholdPercentage| |85| |loadBalancerResourceQuotaUpdateIntervalMinutes| |15| |loadBalancerBrokerComfortLoadLevelPercentage| |65| |loadBalancerAutoBundleSplitEnabled| |false| | loadBalancerAutoUnloadSplitBundlesEnabled | Enable/Disable automatic unloading of split bundles. | true | |loadBalancerNamespaceBundleMaxTopics| |1000| |loadBalancerNamespaceBundleMaxSessions| |1000| |loadBalancerNamespaceBundleMaxMsgRate| |1000| |loadBalancerNamespaceBundleMaxBandwidthMbytes| |100| |loadBalancerNamespaceMaximumBundles| |128| | loadBalancerBrokerThresholdShedderPercentage | The broker resource usage threshold. When the broker resource usage is greater than the pulsar cluster average resource usage, the threshold shedder is triggered to offload bundles from the broker. It only takes effect in the ThresholdSheddler strategy. | 10 | | loadBalancerHistoryResourcePercentage | The history usage when calculating new resource usage. It only takes effect in the ThresholdSheddler strategy. | 0.9 | | loadBalancerBandwithInResourceWeight | The BandWithIn usage weight when calculating new resource usage. It only takes effect in the ThresholdSheddler strategy. | 1.0 | | loadBalancerBandwithOutResourceWeight | The BandWithOut usage weight when calculating new resource usage. It only takes effect in the ThresholdSheddler strategy. | 1.0 | | loadBalancerCPUResourceWeight | The CPU usage weight when calculating new resource usage. It only takes effect in the ThresholdSheddler strategy. | 1.0 | | loadBalancerMemoryResourceWeight | The heap memory usage weight when calculating new resource usage. It only takes effect in the ThresholdSheddler strategy. | 1.0 | | loadBalancerDirectMemoryResourceWeight | The direct memory usage weight when calculating new resource usage. It only takes effect in the ThresholdSheddler strategy. | 1.0 | | loadBalancerBundleUnloadMinThroughputThreshold | Bundle unload minimum throughput threshold. Avoid bundle unload frequently. It only takes effect in the ThresholdSheddler strategy. | 10 | |replicationMetricsEnabled| |true| |replicationConnectionsPerBroker| |16| |replicationProducerQueueSize| |1000| | replicationPolicyCheckDurationSeconds | Duration to check replication policy to avoid replicator inconsistency due to missing ZooKeeper watch. When the value is set to 0, disable checking replication policy. | 600 | |defaultRetentionTimeInMinutes| |0| |defaultRetentionSizeInMB| |0| |keepAliveIntervalSeconds| |30|WebSocket
配置项 Description 默认值 configurationStoreServers zooKeeperSessionTimeoutMillis 30000 zooKeeperCacheExpirySeconds ZooKeeper 缓存过期时间(秒) 300 serviceUrl serviceUrlTls brokerServiceUrl brokerServiceUrlTls webServicePort 8080 webServicePortTls 8443 bindAddress 0.0.0.0 clusterName authenticationEnabled false authenticationProviders authorizationEnabled false superUserRoles brokerClientAuthenticationPlugin brokerClientAuthenticationParameters tlsEnabled false tlsAllowInsecureConnection false tlsCertificateFilePath tlsKeyFilePath tlsTrustCertsFilePath Pulsar proxy
The Pulsar proxy can be configured in the
conf/proxy.conf
file.配置项 Description 默认值 forwardAuthorizationCredentials Forward client authorization credentials to Broker for re-authorization, and make sure authentication is enabled for this to take effect. false zookeeperServers ZooKeeper quorum 连接字符串(以逗号分隔的列表) configurationStoreServers 配置存储连接字符串(以逗号分隔的列表) brokerServiceURL The service URL pointing to the broker cluster. brokerServiceURLTLS The TLS service URL pointing to the broker cluster brokerWebServiceURL The Web service URL pointing to the broker cluster brokerWebServiceURLTLS The TLS Web service URL pointing to the broker cluster functionWorkerWebServiceURL The Web service URL pointing to the function worker cluster. It is only configured when you setup function workers in a separate cluster. functionWorkerWebServiceURLTLS The TLS Web service URL pointing to the function worker cluster. It is only configured when you setup function workers in a separate cluster. brokerServiceURL If service discovery is disabled, this url should point to the discovery service provider. N/A brokerServiceURLTLS If service discovery is disabled, this url should point to the discovery service provider. N/A brokerWebServiceURL This settings are unnecessary if zookeeperServers
is specified.N/A brokerWebServiceURLTLS This settings are unnecessary if zookeeperServers
is specified.N/A functionWorkerWebServiceURL If function workers are setup in a separate cluster, configure the this setting to point to the function workers cluster. N/A functionWorkerWebServiceURLTLS If function workers are setup in a separate cluster, configure the this setting to point to the function workers cluster. N/A zookeeperSessionTimeoutMs ZooKeeper会话超时(以毫秒为单位) 30000 zooKeeperCacheExpirySeconds ZooKeeper 缓存过期时间(秒) 300 advertisedAddress Hostname or IP address the service advertises to the outside world. If not set, the value of InetAddress.getLocalHost().getHostname()
is used.N/A servicePort 用于服务器二进制Protobuf请求的端口 6650 servicePortTls 用于服务器二进制Protobuf TLS请求的端口 6651 statusFilePath 在响应服务发现健康检查时,用于确定代理实例的轮换状态的文件的路径 advertisedAddress Hostname or IP address the service advertises to the outside world. InetAddress.getLocalHost().getHostname()
proxyLogLevel Proxy log level - 0: Do not log any TCP channel information.
- 1: Parse and log any TCP channel information and command information without message body.
- 2: Parse and log channel information, command information and message body.
0 authenticationEnabled 是否为Pulsar代理启用身份验证 false authenticateMetricsEndpoint Whether the ‘/metrics’ endpoint requires authentication. Defaults to true. ‘authenticationEnabled’ must also be set for this to take effect. true authenticationProviders 身份验证提供者名称列表(以逗号分隔的类名列表) authorizationEnabled 是否由Pulsar代理强制执行授权 false authorizationProvider 授权提供程序的完全限定类名 org.apache.pulsar.broker.authorization.PulsarAuthorizationProvider anonymousUserRole When this parameter is not empty, unauthenticated users perform as anonymousUserRole. brokerClientAuthenticationPlugin Pulsar代理使用的身份验证插件,用于对Pulsar brokers进行身份验证 brokerClientAuthenticationParameters Pulsar代理用于对Pulsar Brokers进行身份验证的参数 brokerClientTrustCertsFilePath Pulsar代理用于对Pulsar Brokers进行身份验证的可信证书的路径 superUserRoles “超级用户”的角色名,这意味着它们将能够执行所有管理 forwardAuthorizationCredentials Whether client authorization credentials are forwared to the broker for re-authorization. Authentication must be enabled via authenticationEnabled=true for this to take effect. false maxConcurrentInboundConnections Max concurrent inbound connections. The proxy will reject requests beyond that. 10000 maxConcurrentLookupRequests Max concurrent outbound connections. The proxy will error out requests beyond that. 50000 tlsEnabledInProxy Deprecated - use servicePortTls
andwebServicePortTls
instead.false tlsEnabledWithBroker Whether TLS is enabled when communicating with Pulsar brokers. false tlsCertRefreshCheckDurationSec TLS certificate refresh duration in seconds. If the value is set 0, check TLS certificate every new connection. 300 tlsCertificateFilePath TLS证书文件的路径 tlsKeyFilePath TLS私钥文件的路径 tlsTrustCertsFilePath 受信任的TLS证书pem文件的路径 tlsHostnameVerificationEnabled 当代理与brokers建立TLS连接时是否验证主机名 false tlsRequireTrustedClientCertOnConnect Whether client certificates are required for TLS. Connections are rejected if the client certificate isn’t trusted. 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
,TLSv1
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
httpReverseProxyConfigs HTTP directs to redirect to non-pulsar services httpOutputBufferSize HTTP output buffer size. The amount of data that will be buffered for HTTP requests before it is flushed to the channel. A larger buffer size may result in higher HTTP throughput though it may take longer for the client to see data. If using HTTP streaming via the reverse proxy, this should be set to the minimum value (1) so that clients see the data as soon as possible. 32768 httpNumThreads Number of threads to use for HTTP requests processing 2 * Runtime.getRuntime().availableProcessors() tokenSecretKey Configure the secret key to be used to validate auth tokens. The key can be specified like: tokenSecretKey=data:;base64,xxxxxxxxx
ortokenSecretKey=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
ortokenPublicKey=file:///my/secret.key
tokenAuthClaim Specify the token claim that will be used as the authentication “principal” or “role”. The “subject” field will be used if this is left blank tokenAudienceClaim The token audience “claim” name, e.g. “aud”. It is used to get the audience from token. If it is not set, the audience is not verified. tokenAudience The token audience stands for this broker. The field tokenAudienceClaim
of a valid token need contains this parameter.proxyLogLevel Set the Pulsar Proxy log level. - If the value is set to 0, no TCP channel information is logged.
- If the value is set to 1, only the TCP channel information and command information (without message body) are parsed and logged.
0 ZooKeeper handles a broad range of essential configuration- and coordination-related tasks for Pulsar. The default configuration file for ZooKeeper is in the
conf/zookeeper.conf
file in your Pulsar installation. The following parameters are available:In addition to the parameters in the table above, configuring ZooKeeper for Pulsar involves adding a
server.N
line to the file for each node in the ZooKeeper cluster, whereN
is the number of the ZooKeeper node. Here’s an example for a three-node ZooKeeper cluster: