| # |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| # |
| |
| ### --- General broker settings --- ### |
| |
| # Zookeeper quorum connection string |
| zookeeperServers= |
| |
| # Deprecated. Global zookeeper quorum connection string |
| globalZookeeperServers= |
| |
| # Configuration Store connection string |
| configurationStoreServers= |
| |
| brokerServicePort=6650 |
| brokerServicePortTls=6651 |
| |
| # Port to use to server HTTP request |
| webServicePort=8080 |
| webServicePortTls=8443 |
| |
| # Hostname or IP address the service binds on, default is 0.0.0.0. |
| bindAddress=0.0.0.0 |
| |
| # Hostname or IP address the service advertises to the outside world. If not set, the value of InetAddress.getLocalHost().getHostName() is used. |
| advertisedAddress=localhost |
| |
| # Name of the cluster to which this broker belongs to |
| clusterName=standalone |
| |
| # Zookeeper session timeout in milliseconds |
| zooKeeperSessionTimeoutMillis=30000 |
| |
| # Time to wait for broker graceful shutdown. After this time elapses, the process will be killed |
| brokerShutdownTimeoutMs=3000 |
| |
| # Enable backlog quota check. Enforces action on topic when the quota is reached |
| backlogQuotaCheckEnabled=true |
| |
| # How often to check for topics that have reached the quota |
| backlogQuotaCheckIntervalInSeconds=60 |
| |
| # Default per-topic backlog quota limit |
| backlogQuotaDefaultLimitGB=10 |
| |
| # Enable the deletion of inactive topics |
| brokerDeleteInactiveTopicsEnabled=true |
| |
| # How often to check for inactive topics |
| brokerDeleteInactiveTopicsFrequencySeconds=60 |
| |
| # How frequently to proactively check and purge expired messages |
| messageExpiryCheckIntervalInMinutes=5 |
| |
| # Enable check for minimum allowed client library version |
| clientLibraryVersionCheckEnabled=false |
| |
| # Allow client libraries with no version information |
| clientLibraryVersionCheckAllowUnversioned=true |
| |
| # Path for the file used to determine the rotation status for the broker when responding |
| # to service discovery health checks |
| statusFilePath=/usr/local/apache/htdocs |
| |
| # 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 |
| maxUnackedMessagesPerConsumer=50000 |
| |
| # Set maxMessageSize to 1MB rather than the default value 5MB for testing |
| maxMessageSize=1048576 |
| |
| ### --- Authentication --- ### |
| |
| # Enable TLS |
| tlsEnabled=true |
| tlsCertificateFilePath=/pulsar/certs/broker-cert.pem |
| tlsKeyFilePath=/pulsar/certs/broker-key.pem |
| tlsTrustCertsFilePath=/pulsar/certs/cacert.pem |
| tlsAllowInsecureConnection=false |
| |
| anonymousUserRole=anonymous |
| |
| # Enable authentication |
| authenticationEnabled=true |
| |
| # Autentication provider name list, which is comma separated list of class names |
| authenticationProviders=org.apache.pulsar.broker.authentication.AuthenticationProviderTls,org.apache.pulsar.broker.authentication.AuthenticationProviderToken |
| |
| # Enforce authorization |
| authorizationEnabled=true |
| |
| tokenSecretKey=file:///pulsar/tokens/secret.key |
| |
| # Role names that are treated as "super-user", meaning they will be able to do all admin |
| # operations and publish/consume from all topics |
| superUserRoles=localhost,superUser |
| |
| # Authentication settings of the broker itself. Used when the broker connects to other brokers, |
| # either in same or other clusters |
| brokerClientAuthenticationPlugin= |
| brokerClientAuthenticationParameters= |
| |
| ### --- BookKeeper Client --- ### |
| |
| # Authentication plugin to use when connecting to bookies |
| bookkeeperClientAuthenticationPlugin= |
| |
| # BookKeeper auth plugin implementatation specifics parameters name and values |
| bookkeeperClientAuthenticationParametersName= |
| bookkeeperClientAuthenticationParameters= |
| |
| # Timeout for BK add / read operations |
| bookkeeperClientTimeoutInSeconds=30 |
| |
| # 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 |
| bookkeeperClientSpeculativeReadTimeoutInMillis=0 |
| |
| # 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 |
| bookkeeperClientHealthCheckEnabled=true |
| bookkeeperClientHealthCheckIntervalSeconds=60 |
| bookkeeperClientHealthCheckErrorThresholdPerInterval=5 |
| bookkeeperClientHealthCheckQuarantineTimeInSeconds=1800 |
| |
| # Enable rack-aware bookie selection policy. BK will chose bookies from different racks when |
| # forming a new bookie ensemble |
| bookkeeperClientRackawarePolicyEnabled=true |
| |
| # 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 |
| bookkeeperClientRegionawarePolicyEnabled=false |
| |
| # Enable/disable reordering read sequence on reading entries. |
| bookkeeperClientReorderReadSequenceEnabled=false |
| |
| # 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 |
| bookkeeperClientIsolationGroups= |
| |
| ### --- Managed Ledger --- ### |
| |
| # Number of bookies to use when creating a ledger |
| managedLedgerDefaultEnsembleSize=1 |
| |
| # Number of copies to store for each message |
| managedLedgerDefaultWriteQuorum=1 |
| |
| # Number of guaranteed copies (acks to wait before write is complete) |
| managedLedgerDefaultAckQuorum=1 |
| |
| # 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 |
| managedLedgerCacheSizeMB=1024 |
| |
| # Threshold to which bring down the cache level when eviction is triggered |
| managedLedgerCacheEvictionWatermark=0.9 |
| |
| # Rate limit the amount of writes generated by consumer acking the messages |
| managedLedgerDefaultMarkDeleteRateLimit=0.1 |
| |
| # 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 |
| managedLedgerMaxEntriesPerLedger=50000 |
| |
| # Minimum time between ledger rollover for a topic |
| managedLedgerMinLedgerRolloverTimeMinutes=10 |
| |
| # Maximum time before forcing a ledger rollover for a topic |
| managedLedgerMaxLedgerRolloverTimeMinutes=240 |
| |
| # Max number of entries to append to a cursor ledger |
| managedLedgerCursorMaxEntriesPerLedger=50000 |
| |
| # Max time before triggering a rollover on a cursor ledger |
| managedLedgerCursorRolloverTimeInSeconds=14400 |
| |
| |
| |
| ### --- Load balancer --- ### |
| |
| # Enable load balancer |
| loadBalancerEnabled=false |
| |
| # Strategy to assign a new bundle |
| loadBalancerPlacementStrategy=weightedRandomSelection |
| |
| # Percentage of change to trigger load report update |
| loadBalancerReportUpdateThresholdPercentage=10 |
| |
| # maximum interval to update load report |
| loadBalancerReportUpdateMaxIntervalMinutes=15 |
| |
| # Frequency of report to collect |
| loadBalancerHostUsageCheckIntervalMinutes=1 |
| |
| # Load shedding interval. Broker periodically checks whether some traffic should be offload from |
| # some over-loaded broker to other under-loaded brokers |
| loadBalancerSheddingIntervalMinutes=30 |
| |
| # Prevent the same topics to be shed and moved to other broker more that once within this timeframe |
| loadBalancerSheddingGracePeriodMinutes=30 |
| |
| # Usage threshold to determine a broker as under-loaded |
| loadBalancerBrokerUnderloadedThresholdPercentage=1 |
| |
| # Usage threshold to determine a broker as over-loaded |
| loadBalancerBrokerOverloadedThresholdPercentage=85 |
| |
| # Interval to update namespace bundle resource quotat |
| loadBalancerResourceQuotaUpdateIntervalMinutes=15 |
| |
| # Usage threshold to determine a broker is having just right level of load |
| loadBalancerBrokerComfortLoadLevelPercentage=65 |
| |
| # enable/disable namespace bundle auto split |
| loadBalancerAutoBundleSplitEnabled=false |
| |
| # interval to detect & split hot namespace bundle |
| loadBalancerNamespaceBundleSplitIntervalMinutes=15 |
| |
| # maximum topics in a bundle, otherwise bundle split will be triggered |
| loadBalancerNamespaceBundleMaxTopics=1000 |
| |
| # maximum sessions (producers + consumers) in a bundle, otherwise bundle split will be triggered |
| loadBalancerNamespaceBundleMaxSessions=1000 |
| |
| # maximum msgRate (in + out) in a bundle, otherwise bundle split will be triggered |
| loadBalancerNamespaceBundleMaxMsgRate=1000 |
| |
| # maximum bandwidth (in + out) in a bundle, otherwise bundle split will be triggered |
| loadBalancerNamespaceBundleMaxBandwidthMbytes=100 |
| |
| # maximum number of bundles in a namespace |
| loadBalancerNamespaceMaximumBundles=128 |
| |
| ### --- Replication --- ### |
| |
| # Enable replication metrics |
| replicationMetricsEnabled=true |
| |
| # 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. |
| replicationConnectionsPerBroker=16 |
| |
| # Replicator producer queue size |
| replicationProducerQueueSize=1000 |
| |
| # Default message retention time |
| defaultRetentionTimeInMinutes=0 |
| |
| # Default retention size |
| defaultRetentionSizeInMB=0 |
| |
| # How often to check whether the connections are still alive |
| keepAliveIntervalSeconds=30 |
| |
| # How often broker checks for inactive topics to be deleted (topics with no subscriptions and no one connected) |
| brokerServicePurgeInactiveFrequencyInSeconds=60 |