github.com/1aal/kubeblocks@v0.0.0-20231107070852-e1c03e598921/deploy/pulsar/config/broker-config-constraint.cue (about)

     1  // Copyright (C) 2022-2023 ApeCloud Co., Ltd
     2  //
     3  // This file is part of KubeBlocks project
     4  //
     5  // This program is free software: you can redistribute it and/or modify
     6  // it under the terms of the GNU Affero General Public License as published by
     7  // the Free Software Foundation, either version 3 of the License, or
     8  // (at your option) any later version.
     9  //
    10  // This program is distributed in the hope that it will be useful
    11  // but WITHOUT ANY WARRANTY; without even the implied warranty of
    12  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    13  // GNU Affero General Public License for more details.
    14  //
    15  // You should have received a copy of the GNU Affero General Public License
    16  // along with this program.  If not, see <http://www.gnu.org/licenses/>.
    17  
    18  // AUTO generate: ./bin/cue-tools https://raw.githubusercontent.com/apache/pulsar/master/pulsar-broker-common/src/main/java/org/apache/pulsar/broker/ServiceConfiguration.java "ServiceConfiguration" "PulsarBrokersParameter" > broker-config-constraint.cue
    19  #PulsarBrokersParameter: {
    20  	// The Zookeeper quorum connection string (as a comma-separated list). Deprecated in favour of metadataStoreUrl
    21  	// @deprecated
    22  	zookeeperServers: string
    23  
    24  	// The metadata store URL. \n Examples: \n  * zk:my-zk-1:2181,my-zk-2:2181,my-zk-3:2181\n  * my-zk-1:2181,my-zk-2:2181,my-zk-3:2181 (will default to ZooKeeper when the schema is not specified)\n  * zk:my-zk-1:2181,my-zk-2:2181,my-zk-3:2181/my-chroot-path (to add a ZK chroot path)\n
    25  	metadataStoreUrl: string
    26  
    27  	// Global Zookeeper quorum connection string (as a comma-separated list). Deprecated in favor of using `configurationStoreServers`
    28  	// @deprecated
    29  	globalZookeeperServers: string
    30  
    31  	// Configuration store connection string (as a comma-separated list). Deprecated in favor of `configurationMetadataStoreUrl`
    32  	// @deprecated
    33  	configurationStoreServers: string
    34  
    35  	// The metadata store URL for the configuration data. If empty, we fall back to use metadataStoreUrl
    36  	configurationMetadataStoreUrl: string
    37  
    38  	// The port for serving binary protobuf requests. If set, defines a server binding for bindAddress:brokerServicePort. The Default value is 6650.
    39  	brokerServicePort: int
    40  
    41  	// The port for serving TLS-secured binary protobuf requests. If set, defines a server binding for bindAddress:brokerServicePortTls.
    42  	brokerServicePortTls: int
    43  
    44  	// The port for serving http requests
    45  	webServicePort: int
    46  
    47  	// The port for serving https requests
    48  	webServicePortTls: int
    49  
    50  	// Specify the TLS provider for the web service: SunJSSE, Conscrypt and etc.
    51  	webServiceTlsProvider: string
    52  
    53  	// Specify the tls protocols the proxy's web service will use to negotiate during TLS Handshake.\n\nExample:- [TLSv1.3, TLSv1.2]
    54  	webServiceTlsProtocols: string
    55  
    56  	// Specify the tls cipher the proxy's web service will use to negotiate during TLS Handshake.\n\nExample:- [TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256]
    57  	webServiceTlsCiphers: string
    58  
    59  	// Hostname or IP address the service binds on
    60  	bindAddress: string
    61  
    62  	// Hostname or IP address the service advertises to the outside world. If not set, the value of `InetAddress.getLocalHost().getCanonicalHostName()` is used.
    63  	advertisedAddress: string
    64  
    65  	// 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.
    66  	advertisedListeners: string
    67  
    68  	// 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.
    69  	internalListenerName: string
    70  
    71  	// 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.
    72  	bindAddresses: string
    73  
    74  	// Enable or disable the proxy protocol. If true, the real IP addresses of consumers and producers can be obtained when getting topic statistics data.
    75  	haProxyProtocolEnabled: bool
    76  
    77  	// Number of threads to use for Netty Acceptor. Default is set to `1`
    78  	numAcceptorThreads: int
    79  
    80  	// Number of threads to use for Netty IO. Default is set to `2 * Runtime.getRuntime().availableProcessors()`
    81  	numIOThreads: int
    82  
    83  	// 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
    84  	numOrderedExecutorThreads: int
    85  
    86  	// Number of threads to use for HTTP requests processing Default is set to `2 * Runtime.getRuntime().availableProcessors()`
    87  	numHttpServerThreads: int
    88  
    89  	// 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
    90  	numExecutorThreadPoolSize: int
    91  
    92  	// 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
    93  	numCacheExecutorThreadPoolSize: int
    94  
    95  	// 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.
    96  	enableBusyWait: bool
    97  
    98  	// Max concurrent web requests
    99  	maxConcurrentHttpRequests: int
   100  
   101  	// Capacity for thread pool queue in the HTTP server Default is set to 8192.
   102  	httpServerThreadPoolQueueSize: int
   103  
   104  	// Capacity for accept queue in the HTTP server Default is set to 8192.
   105  	httpServerAcceptQueueSize: int
   106  
   107  	// Maximum number of inbound http connections. (0 to disable limiting)
   108  	maxHttpServerConnections: int
   109  
   110  	// Whether to enable the delayed delivery for messages.
   111  	delayedDeliveryEnabled: bool
   112  
   113  	// 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.
   114  	delayedDeliveryTrackerFactoryClassName: string
   115  
   116  	// 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.
   117  	delayedDeliveryTickTimeMillis: int
   118  
   119  	// 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.
   120  	isDelayedDeliveryDeliverAtTimeStrict: bool
   121  
   122  	// 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.
   123  	delayedDeliveryMinIndexCountPerBucket: int
   124  
   125  	// 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.
   126  	delayedDeliveryMaxTimeStepPerBucketSnapshotSegmentSeconds: int
   127  
   128  	// 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.
   129  	delayedDeliveryMaxIndexesPerBucketSnapshotSegment: int
   130  
   131  	// The max number of delayed message index bucket, \            after reaching the max buckets limitation, the adjacent buckets will be merged.\            (disable with value -1)
   132  	delayedDeliveryMaxNumBuckets: int
   133  
   134  	// 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.
   135  	delayedDeliveryFixedDelayDetectionLookahead: int
   136  
   137  	// Whether to enable the acknowledge of batch local index
   138  	acknowledgmentAtBatchIndexLevelEnabled: bool
   139  
   140  	// Enable the WebSocket API service in broker
   141  	webSocketServiceEnabled: bool
   142  
   143  	// Flag indicates whether to run broker in standalone mode
   144  	isRunningStandalone: bool
   145  
   146  	// Name of the cluster to which this broker belongs to
   147  	clusterName: string
   148  
   149  	// 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.
   150  	maxTenants: int
   151  
   152  	// Enable cluster's failure-domain which can distribute brokers into logical region
   153  	failureDomainsEnabled: bool
   154  
   155  	// Metadata store session timeout in milliseconds.
   156  	metadataStoreSessionTimeoutMillis: int
   157  
   158  	// Metadata store operation timeout in seconds.
   159  	metadataStoreOperationTimeoutSeconds: int
   160  
   161  	// Metadata store cache expiry time in seconds.
   162  	metadataStoreCacheExpirySeconds: int
   163  
   164  	// Is metadata store read-only operations.
   165  	metadataStoreAllowReadOnlyOperations: bool
   166  
   167  	// ZooKeeper session timeout in milliseconds. @deprecated - Use metadataStoreSessionTimeoutMillis instead.
   168  	// @deprecated
   169  	zooKeeperSessionTimeoutMillis: int
   170  
   171  	// ZooKeeper operation timeout in seconds. @deprecated - Use metadataStoreOperationTimeoutSeconds instead.
   172  	// @deprecated
   173  	zooKeeperOperationTimeoutSeconds: int
   174  
   175  	// ZooKeeper cache expiry time in seconds. @deprecated - Use metadataStoreCacheExpirySeconds instead.
   176  	// @deprecated
   177  	zooKeeperCacheExpirySeconds: int
   178  
   179  	// Is zookeeper allow read-only operations.
   180  	// @deprecated
   181  	zooKeeperAllowReadOnlyOperations: bool
   182  
   183  	// Time to wait for broker graceful shutdown. After this time elapses, the process will be killed
   184  	brokerShutdownTimeoutMs: int
   185  
   186  	// Flag to skip broker shutdown when broker handles Out of memory error
   187  	skipBrokerShutdownOnOOM: bool
   188  
   189  	// Amount of seconds to timeout when loading a topic. In situations with many geo-replicated clusters, this may need raised.
   190  	topicLoadTimeoutSeconds: int
   191  
   192  	// Whether we should enable metadata operations batching
   193  	metadataStoreBatchingEnabled: bool
   194  
   195  	// Maximum delay to impose on batching grouping
   196  	metadataStoreBatchingMaxDelayMillis: int
   197  
   198  	// Maximum number of operations to include in a singular batch
   199  	metadataStoreBatchingMaxOperations: int
   200  
   201  	// Maximum size of a batch
   202  	metadataStoreBatchingMaxSizeKb: int
   203  
   204  	// Configuration file path for local metadata store. It's supported by RocksdbMetadataStore for now.
   205  	metadataStoreConfigPath: string
   206  
   207  	// Event topic to sync metadata between separate pulsar clusters on different cloud platforms.
   208  	metadataSyncEventTopic: string
   209  
   210  	// Event topic to sync configuration-metadata between separate pulsar clusters on different cloud platforms.
   211  	configurationMetadataSyncEventTopic: string
   212  
   213  	// Factory class-name to create topic with custom workflow
   214  	topicFactoryClassName: string
   215  
   216  	// Enable backlog quota check. Enforces actions on topic when the quota is reached
   217  	backlogQuotaCheckEnabled: bool
   218  
   219  	// 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.
   220  	preciseTimeBasedBacklogQuotaCheck: bool
   221  
   222  	// How often to check for topics that have reached the quota. It only takes effects when `backlogQuotaCheckEnabled` is true
   223  	backlogQuotaCheckIntervalInSeconds: int
   224  
   225  	// @deprecated - Use backlogQuotaDefaultLimitByte instead.
   226  	backlogQuotaDefaultLimitGB: float
   227  
   228  	// 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
   229  	backlogQuotaDefaultLimitBytes: int
   230  
   231  	// 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
   232  	backlogQuotaDefaultLimitSecond: int
   233  
   234  	// Default backlog quota retention policy. Default is producer_request_hold\n\n'producer_request_hold' Policy which holds producer's send request until theresource becomes available (or holding times out)\n'producer_exception' Policy which throws javax.jms.ResourceAllocationException to the producer\n'consumer_backlog_eviction' Policy which evicts the oldest message from the slowest consumer's backlog
   235  	backlogQuotaDefaultRetentionPolicy: string
   236  
   237  	// Default ttl for namespaces if ttl is not already configured at namespace policies. (disable default-ttl with value 0)
   238  	ttlDurationDefaultInSeconds: int
   239  
   240  	// Enable the deletion of inactive topics.\nIf only enable this option, will not clean the metadata of partitioned topic.
   241  	brokerDeleteInactiveTopicsEnabled: bool
   242  
   243  	// Metadata of inactive partitioned topic will not be automatically cleaned up by default.\nNote: If `allowAutoTopicCreation` and this option are enabled at the same time,\nit may appear that a partitioned topic has just been deleted but is automatically created as a non-partitioned topic.
   244  	brokerDeleteInactivePartitionedTopicMetadataEnabled: bool
   245  
   246  	// How often to check for inactive topics
   247  	brokerDeleteInactiveTopicsFrequencySeconds: int
   248  
   249  	// Set the inactive topic delete mode. Default is delete_when_no_subscriptions\n'delete_when_no_subscriptions' mode only delete the topic which has no subscriptions and no active producers\n'delete_when_subscriptions_caught_up' mode only delete the topic that all subscriptions has no backlogs(caught up) and no active producers/consumers
   250  	brokerDeleteInactiveTopicsMode: string
   251  
   252  	// Max duration of topic inactivity in seconds, default is not present\nIf not present, 'brokerDeleteInactiveTopicsFrequencySeconds' will be used\nTopics that are inactive for longer than this value will be deleted
   253  	brokerDeleteInactiveTopicsMaxInactiveDurationSeconds: int
   254  
   255  	// Allow forced deletion of tenants. Default is false.
   256  	forceDeleteTenantAllowed: bool
   257  
   258  	// Allow forced deletion of namespaces. Default is false.
   259  	forceDeleteNamespaceAllowed: bool
   260  
   261  	// Max pending publish requests per connection to avoid keeping large number of pending requests in memory. Default: 1000
   262  	maxPendingPublishRequestsPerConnection: int
   263  
   264  	// How frequently to proactively check and purge expired messages
   265  	messageExpiryCheckIntervalInMinutes: int
   266  
   267  	// How long to delay rewinding cursor and dispatching messages when active consumer is changed
   268  	activeConsumerFailoverDelayTimeMillis: int
   269  
   270  	// Maximum time to spend while scanning a subscription to calculate the accurate backlog
   271  	subscriptionBacklogScanMaxTimeMs: int
   272  
   273  	// Maximum number of entries to process while scanning a subscription to calculate the accurate backlog
   274  	subscriptionBacklogScanMaxEntries: int
   275  
   276  	// How long to delete inactive subscriptions from last consuming. When it is 0, inactive subscriptions are not deleted automatically
   277  	subscriptionExpirationTimeMinutes: int
   278  
   279  	// Enable subscription message redelivery tracker to send redelivery count to consumer (default is enabled)
   280  	subscriptionRedeliveryTrackerEnabled: bool
   281  
   282  	// How frequently to proactively check and purge expired subscription
   283  	subscriptionExpiryCheckIntervalInMinutes: int
   284  
   285  	// Enable subscription types (default is all type enabled)
   286  	subscriptionTypesEnabled: string
   287  
   288  	// Enable Key_Shared subscription (default is enabled).\n@deprecated - use subscriptionTypesEnabled instead.
   289  	subscriptionKeySharedEnable: bool
   290  
   291  	// On KeyShared subscriptions, with default AUTO_SPLIT mode, use splitting ranges or consistent hashing to reassign keys to new consumers (default is consistent hashing)
   292  	subscriptionKeySharedUseConsistentHashing: bool
   293  
   294  	// On KeyShared subscriptions, number of points in the consistent-hashing ring. The higher the number, the more equal the assignment of keys to consumers
   295  	subscriptionKeySharedConsistentHashingReplicaPoints: int
   296  
   297  	// Set the default behavior for message deduplication in the broker.\n\nThis can be overridden per-namespace. If enabled, broker will reject messages that were already stored in the topic
   298  	brokerDeduplicationEnabled: bool
   299  
   300  	// Maximum number of producer information that it's going to be persisted for deduplication purposes
   301  	brokerDeduplicationMaxNumberOfProducers: int
   302  
   303  	// How often is the thread pool scheduled to check whether a snapshot needs to be taken.(disable with value 0)
   304  	brokerDeduplicationSnapshotFrequencyInSeconds: int
   305  
   306  	// If this time interval is exceeded, a snapshot will be taken.It will run simultaneously with `brokerDeduplicationEntriesInterval`
   307  	brokerDeduplicationSnapshotIntervalSeconds: int
   308  
   309  	// Number of entries after which a dedup info snapshot is taken.\n\nA 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
   310  	brokerDeduplicationEntriesInterval: int
   311  
   312  	// Time of inactivity after which the broker will discard the deduplication information relative to a disconnected producer. Default is 6 hours.
   313  	brokerDeduplicationProducerInactivityTimeoutMinutes: int
   314  
   315  	// When a namespace is created without specifying the number of bundle, this value will be used as the default
   316  	defaultNumberOfNamespaceBundles: int
   317  
   318  	// 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
   319  	maxNamespacesPerTenant: int
   320  
   321  	// 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.
   322  	maxTopicsPerNamespace: int
   323  
   324  	// The maximum number of connections in the broker. If it exceeds, new connections are rejected.
   325  	brokerMaxConnections: int
   326  
   327  	// The maximum number of connections per IP. If it exceeds, new connections are rejected.
   328  	brokerMaxConnectionsPerIp: int
   329  
   330  	// 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.
   331  	isAllowAutoUpdateSchemaEnabled: bool
   332  
   333  	// 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.
   334  	autoShrinkForConsumerPendingAcksMap: bool
   335  
   336  	// Enable check for minimum allowed client library version
   337  	clientLibraryVersionCheckEnabled: bool
   338  
   339  	// Path for the file used to determine the rotation status for the broker when responding to service discovery health checks
   340  	statusFilePath: string
   341  
   342  	// Max number of unacknowledged messages allowed to receive messages by a consumer on a shared subscription.\n\n 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
   343  	maxUnackedMessagesPerConsumer: int
   344  
   345  	// Max number of unacknowledged messages allowed per shared subscription. \n\n 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
   346  	maxUnackedMessagesPerSubscription: int
   347  
   348  	// Max number of unacknowledged messages allowed per broker. \n\n 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
   349  	maxUnackedMessagesPerBroker: int
   350  
   351  	// 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
   352  	maxUnackedMessagesPerSubscriptionOnBrokerBlocked: float
   353  
   354  	// Maximum size of Consumer metadata
   355  	maxConsumerMetadataSize: int
   356  
   357  	// Broker periodically checks if subscription is stuck and unblock if flag is enabled. (Default is disabled)
   358  	unblockStuckSubscriptionEnabled: bool
   359  
   360  	// 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)
   361  	topicPublisherThrottlingTickTimeMillis: int
   362  
   363  	// Enable precise rate limit for topic publish
   364  	preciseTopicPublishRateLimiterEnable: bool
   365  
   366  	// 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)
   367  	brokerPublisherThrottlingTickTimeMillis: int
   368  
   369  	// 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)
   370  	brokerPublisherThrottlingMaxMessageRate: int
   371  
   372  	// 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)
   373  	brokerPublisherThrottlingMaxByteRate: int
   374  
   375  	// Default messages per second dispatch throttling-limit for whole broker. Using a value of 0, is disabling default message-byte dispatch-throttling
   376  	dispatchThrottlingRateInMsg: int
   377  
   378  	// Default bytes per second dispatch throttling-limit for whole broker. Using a value of 0, is disabling default message-byte dispatch-throttling
   379  	dispatchThrottlingRateInByte: int
   380  
   381  	// 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)
   382  	maxPublishRatePerTopicInMessages: int
   383  
   384  	// 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)
   385  	maxPublishRatePerTopicInBytes: int
   386  
   387  	// 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.
   388  	subscribeThrottlingRatePerConsumer: int
   389  
   390  	// Rate period for {subscribeThrottlingRatePerConsumer}. Default is 30s.
   391  	subscribeRatePeriodPerConsumerInSecond: int
   392  
   393  	// Default number of message dispatching throttling-limit for every topic. \n\nUsing a value of 0, is disabling default message dispatch-throttling
   394  	dispatchThrottlingRatePerTopicInMsg: int
   395  
   396  	// Default number of message-bytes dispatching throttling-limit for every topic. \n\nUsing a value of 0, is disabling default message-byte dispatch-throttling
   397  	dispatchThrottlingRatePerTopicInByte: int
   398  
   399  	// Apply dispatch rate limiting on batch message instead individual messages with in batch message. (Default is disabled)
   400  	dispatchThrottlingOnBatchMessageEnabled: bool
   401  
   402  	// Default number of message dispatching throttling-limit for a subscription. \n\nUsing a value of 0, is disabling default message dispatch-throttling.
   403  	dispatchThrottlingRatePerSubscriptionInMsg: int
   404  
   405  	// Default number of message-bytes dispatching throttling-limit for a subscription. \n\nUsing a value of 0, is disabling default message-byte dispatch-throttling.
   406  	dispatchThrottlingRatePerSubscriptionInByte: int
   407  
   408  	// Default number of message dispatching throttling-limit for every replicator in replication. \n\nUsing a value of 0, is disabling replication message dispatch-throttling
   409  	dispatchThrottlingRatePerReplicatorInMsg: int
   410  
   411  	// Default number of message-bytes dispatching throttling-limit for every replicator in replication. \n\nUsing a value of 0, is disabling replication message-byte dispatch-throttling
   412  	dispatchThrottlingRatePerReplicatorInByte: int
   413  
   414  	// 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)
   415  	dispatchThrottlingRateRelativeToPublishRate: bool
   416  
   417  	// 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.
   418  	dispatchThrottlingOnNonBacklogConsumerEnabled: bool
   419  
   420  	// Default policy for publishing usage reports to system topic is disabled.This enables publishing of usage reports
   421  	resourceUsageTransportClassName: string
   422  
   423  	// Default interval to publish usage reports if resourceUsagePublishToTopic is enabled.
   424  	resourceUsageTransportPublishIntervalInSecs: int
   425  
   426  	// Enables evaluating subscription pattern on broker side.
   427  	enableBrokerSideSubscriptionPatternEvaluation: bool
   428  
   429  	// Max length of subscription pattern
   430  	subscriptionPatternMaxLength: int
   431  
   432  	// Max number of entries to read from bookkeeper. By default it is 100 entries.
   433  	dispatcherMaxReadBatchSize: int
   434  
   435  	// Dispatch messages and execute broker side filters in a per-subscription thread
   436  	dispatcherDispatchMessagesInSubscriptionThread: bool
   437  
   438  	// 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.
   439  	dispatchThrottlingForFilteredEntriesEnabled: bool
   440  
   441  	// Max size in bytes of entries to read from bookkeeper. By default it is 5MB.
   442  	dispatcherMaxReadSizeBytes: int
   443  
   444  	// 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.
   445  	dispatcherMinReadBatchSize: int
   446  
   447  	// The read failure backoff initial time in milliseconds. By default it is 15s.
   448  	dispatcherReadFailureBackoffInitialTimeInMs: int
   449  
   450  	// The read failure backoff max time in milliseconds. By default it is 60s.
   451  	dispatcherReadFailureBackoffMaxTimeInMs: int
   452  
   453  	// The read failure backoff mandatory stop time in milliseconds. By default it is 0s.
   454  	dispatcherReadFailureBackoffMandatoryStopTimeInMs: int
   455  
   456  	// Time in milliseconds to delay the new delivery of a message when an EntryFilter returns RESCHEDULE.
   457  	dispatcherEntryFilterRescheduledMessageDelay: int
   458  
   459  	// Max number of entries to dispatch for a shared subscription. By default it is 20 entries.
   460  	dispatcherMaxRoundRobinBatchSize: int
   461  
   462  	// Precise dispatcher flow control according to history message number of each entry
   463  	preciseDispatcherFlowControl: bool
   464  
   465  	// 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.
   466  	entryFilterNames: string
   467  
   468  	// The directory for all the entry filter implementations.
   469  	entryFiltersDirectory: string
   470  
   471  	// Whether allow topic level entry filters policies overrides broker configuration.
   472  	allowOverrideEntryFilters: bool
   473  
   474  	// Max number of concurrent lookup request broker allows to throttle heavy incoming lookup traffic
   475  	maxConcurrentLookupRequest: int
   476  
   477  	// Max number of concurrent topic loading request broker allows to control number of zk-operations
   478  	maxConcurrentTopicLoadRequest: int
   479  
   480  	// Max concurrent non-persistent message can be processed per connection
   481  	maxConcurrentNonPersistentMessagePerConnection: int
   482  
   483  	// Number of worker threads to serve non-persistent topic.\n@deprecated - use topicOrderedExecutorThreadNum instead.
   484  	// @deprecated
   485  	numWorkerThreadsForNonPersistentTopic: int
   486  
   487  	// Number of worker threads to serve topic ordered executor
   488  	topicOrderedExecutorThreadNum: int
   489  
   490  	// Enable broker to load persistent topics
   491  	enablePersistentTopics: bool
   492  
   493  	// Enable broker to load non-persistent topics
   494  	enableNonPersistentTopics: bool
   495  
   496  	// Enable to run bookie along with broker
   497  	enableRunBookieTogether: bool
   498  
   499  	// Enable to run bookie autorecovery along with broker
   500  	enableRunBookieAutoRecoveryTogether: bool
   501  
   502  	// Max number of producers allowed to connect to topic. \n\nOnce 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.
   503  	maxProducersPerTopic: int
   504  
   505  	// Max number of producers with the same IP address allowed to connect to topic. \n\nOnce 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.
   506  	maxSameAddressProducersPerTopic: int
   507  
   508  	// Enforce producer to publish encrypted messages.(default disable).
   509  	encryptionRequireOnProducer: bool
   510  
   511  	// Max number of consumers allowed to connect to topic. \n\nOnce 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.
   512  	maxConsumersPerTopic: int
   513  
   514  	// Max number of consumers with the same IP address allowed to connect to topic. \n\nOnce 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.
   515  	maxSameAddressConsumersPerTopic: int
   516  
   517  	// Max number of subscriptions allowed to subscribe to topic. \n\nOnce this limit reaches,  broker will reject new subscription until the number of subscribed subscriptions decrease.\n Using a value of 0, is disabling maxSubscriptionsPerTopic limit check.
   518  	maxSubscriptionsPerTopic: int
   519  
   520  	// Max number of consumers allowed to connect to subscription. \n\nOnce 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.
   521  	maxConsumersPerSubscription: int
   522  
   523  	// Max size of messages.
   524  	maxMessageSize: int
   525  
   526  	// Enable tracking of replicated subscriptions state across clusters.
   527  	enableReplicatedSubscriptions: bool
   528  
   529  	// Frequency of snapshots for replicated subscriptions tracking.
   530  	replicatedSubscriptionsSnapshotFrequencyMillis: int
   531  
   532  	// Timeout for building a consistent snapshot for tracking replicated subscriptions state.
   533  	replicatedSubscriptionsSnapshotTimeoutSeconds: int
   534  
   535  	// Max number of snapshot to be cached per subscription.
   536  	replicatedSubscriptionsSnapshotMaxCachedPerSubscription: int
   537  
   538  	// Max memory size for broker handling messages sending from producers.\n\n 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.\n\n It's shared across all the topics running in the same broker.\n\n Use -1 to disable the memory limitation. Default is 1/2 of direct memory.\n\n
   539  	maxMessagePublishBufferSizeInMB: int
   540  
   541  	// Interval between checks to see if message publish buffer size is exceed the max message publish buffer size
   542  	messagePublishBufferCheckIntervalInMillis: int
   543  
   544  	// Whether to recover cursors lazily when trying to recover a managed ledger backing a persistent topic. It can improve write availability of topics.\nThe 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.
   545  	lazyCursorRecovery: bool
   546  
   547  	// Check between intervals to see if consumed ledgers need to be trimmed
   548  	retentionCheckIntervalInSeconds: int
   549  
   550  	// The number of partitions per partitioned topic.\nIf try to create or update partitioned topics by exceeded number of partitions, then fail.
   551  	maxNumPartitionsPerPartitionedTopic: int
   552  
   553  	// The directory to locate broker interceptors
   554  	brokerInterceptorsDirectory: string
   555  
   556  	// List of broker interceptor to load, which is a list of broker interceptor names
   557  	brokerInterceptors: string
   558  
   559  	// Enable or disable the broker interceptor, which is only used for testing for now
   560  	disableBrokerInterceptors: bool
   561  
   562  	// List of interceptors for payload processing.
   563  	brokerEntryPayloadProcessors: string
   564  
   565  	// There are two policies to apply when broker metadata session expires: session expired happens, \"shutdown\" or \"reconnect\". \n\n With \"shutdown\", the broker will be restarted.\n\n With \"reconnect\", the broker will keep serving the topics, while attempting to recreate a new session.
   566  	zookeeperSessionExpiredPolicy: string
   567  
   568  	// If a topic remains fenced for this number of seconds, it will be closed forcefully.\n If it is set to 0 or a negative number, the fenced topic will not be closed.
   569  	topicFencingTimeoutSeconds: int
   570  
   571  	// The directory to locate messaging protocol handlers
   572  	protocolHandlerDirectory: string
   573  
   574  	// Use a separate ThreadPool for each Protocol Handler
   575  	useSeparateThreadPoolForProtocolHandlers: bool
   576  
   577  	// List of messaging protocols to load, which is a list of protocol names
   578  	messagingProtocols: string
   579  
   580  	// Enable or disable system topic.
   581  	systemTopicEnabled: bool
   582  
   583  	// # Enable strict topic name check. Which includes two parts as follows:\n# 1. Mark `-partition-` as a keyword.\n# E.g.\n    Create a non-partitioned topic.\n      No corresponding partitioned topic\n       - persistent://public/default/local-name (passed)\n       - persistent://public/default/local-name-partition-z (rejected by keyword)\n       - persistent://public/default/local-name-partition-0 (rejected by keyword)\n      Has corresponding partitioned topic, partitions=2 and topic partition name is persistent://public/default/local-name\n       - persistent://public/default/local-name-partition-0 (passed, Because it is the partition topic's sub-partition)\n       - persistent://public/default/local-name-partition-z (rejected by keyword)\n       - persistent://public/default/local-name-partition-4 (rejected, Because it exceeds the number of maximum partitions)\n    Create a partitioned topic(topic metadata)\n       - persistent://public/default/local-name (passed)\n       - persistent://public/default/local-name-partition-z (rejected by keyword)\n       - persistent://public/default/local-name-partition-0 (rejected by keyword)\n# 2. Allowed alphanumeric (a-zA-Z_0-9) and these special chars -=:. for topic name.\n# NOTE: This flag will be removed in some major releases in the future.\n
   584  	strictTopicNameEnabled: bool
   585  
   586  	// The schema compatibility strategy to use for system topics
   587  	systemTopicSchemaCompatibilityStrategy: string
   588  
   589  	// Enable or disable topic level policies, topic level policies depends on the system topic, please enable the system topic first.
   590  	topicLevelPoliciesEnabled: bool
   591  
   592  	// List of interceptors for entry metadata.
   593  	brokerEntryMetadataInterceptors: string
   594  
   595  	// Enable or disable exposing broker entry metadata to client.
   596  	exposingBrokerEntryMetadataToClientEnabled: bool
   597  
   598  	// Enable namespaceIsolation policy update take effect ontime or not, if set to ture, then the related namespaces will be unloaded after reset policy to make it take effect.
   599  	enableNamespaceIsolationUpdateOnTime: bool
   600  
   601  	// Enable or disable strict bookie affinity.
   602  	strictBookieAffinityEnabled: bool
   603  
   604  	// Enable TLS
   605  	tlsEnabled: bool
   606  
   607  	// Tls cert refresh duration in seconds (set 0 to check on every new connection)
   608  	tlsCertRefreshCheckDurationSec: int
   609  
   610  	// Path for the TLS certificate file
   611  	tlsCertificateFilePath: string
   612  
   613  	// Path for the TLS private key file
   614  	tlsKeyFilePath: string
   615  
   616  	// Path for the trusted TLS certificate file
   617  	tlsTrustCertsFilePath: string
   618  
   619  	// Accept untrusted TLS certificate from client
   620  	tlsAllowInsecureConnection: bool
   621  
   622  	// Whether the hostname is validated when the broker creates a TLS connection with other brokers
   623  	tlsHostnameVerificationEnabled: bool
   624  
   625  	// Specify the tls protocols the broker will use to negotiate during TLS Handshake.\n\nExample:- [TLSv1.3, TLSv1.2]
   626  	tlsProtocols: string
   627  
   628  	// Specify the tls cipher the broker will use to negotiate during TLS Handshake.\n\nExample:- [TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256]
   629  	tlsCiphers: string
   630  
   631  	// Specify whether Client certificates are required for TLS Reject.\nthe Connection if the Client Certificate is not trusted
   632  	tlsRequireTrustedClientCertOnConnect: bool
   633  
   634  	// Enable authentication
   635  	authenticationEnabled: bool
   636  
   637  	// Authentication provider name list, which is a list of class names
   638  	authenticationProviders: string
   639  
   640  	// Interval of time for checking for expired authentication credentials
   641  	authenticationRefreshCheckSeconds: int
   642  
   643  	// Enforce authorization
   644  	authorizationEnabled: bool
   645  
   646  	// Authorization provider fully qualified class-name
   647  	authorizationProvider: string
   648  
   649  	// Role names that are treated as `super-user`, meaning they will be able to do all admin operations and publish/consume from all topics
   650  	superUserRoles: string
   651  
   652  	// Role names that are treated as `proxy roles`. \n\nIf the broker sees a request with role as proxyRoles - it will demand to see the original client role or certificate.
   653  	proxyRoles: string
   654  
   655  	// If this flag is set then the broker authenticates the original Auth data else it just accepts the originalPrincipal and authorizes it (if required)
   656  	authenticateOriginalAuthData: bool
   657  
   658  	// Allow wildcard matching in authorization\n\n(wildcard matching only applicable if wildcard-char: * presents at first or last position eg: *.pulsar.service, pulsar.service.*)
   659  	authorizationAllowWildcardsMatching: bool
   660  
   661  	// When this parameter is not empty, unauthenticated users perform as anonymousUserRole
   662  	anonymousUserRole: string
   663  
   664  	// If >0, it will reject all HTTP requests with bodies larged than the configured limit
   665  	httpMaxRequestSize: int
   666  
   667  	// 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.
   668  	httpMaxRequestHeaderSize: int
   669  
   670  	// If true, the broker will reject all HTTP requests using the TRACE and TRACK verbs.\n This setting may be necessary if the broker is deployed into an environment that uses http port\n scanning and flags web servers allowing the TRACE method as insecure.
   671  	disableHttpDebugMethods: bool
   672  
   673  	// Enable the enforcement of limits on the incoming HTTP requests
   674  	httpRequestsLimitEnabled: bool
   675  
   676  	// Max HTTP requests per seconds allowed. The excess of requests will be rejected with HTTP code 429 (Too many requests)
   677  	httpRequestsMaxPerSecond: float
   678  
   679  	// Admin API fail on unknown request parameter in request-body. see PIP-179. Default false.
   680  	httpRequestsFailOnUnknownPropertiesEnabled: bool
   681  
   682  	// This is a regexp, which limits the range of possible ids which can connect to the Broker using SASL.\n Default value is: \".*pulsar.*\", so only clients whose id contains 'pulsar' are allowed to connect.
   683  	saslJaasClientAllowedIds: string
   684  
   685  	// Service Principal, for login context name. Default value is \"PulsarBroker\".
   686  	saslJaasServerSectionName: string
   687  
   688  	// Path to file containing the secret to be used to SaslRoleTokenSigner\nThe secret can be specified like:\nsaslJaasServerRoleTokenSignerSecretPath=file:///my/saslRoleTokenSignerSecret.key.
   689  	saslJaasServerRoleTokenSignerSecretPath: string
   690  
   691  	// kerberos kinit command.
   692  	kinitCommand: string
   693  
   694  	// how often the broker expires the inflight SASL context.
   695  	inflightSaslContextExpiryMs: int
   696  
   697  	// Maximum number of inflight sasl context.
   698  	maxInflightSaslContext: int
   699  
   700  	// Metadata service uri that bookkeeper is used for loading corresponding metadata driver and resolving its metadata service location
   701  	bookkeeperMetadataServiceUri: string
   702  
   703  	// Authentication plugin to use when connecting to bookies
   704  	bookkeeperClientAuthenticationPlugin: string
   705  
   706  	// BookKeeper auth plugin implementation specifics parameters name and values
   707  	bookkeeperClientAuthenticationParametersName: string
   708  
   709  	// Parameters for bookkeeper auth plugin
   710  	bookkeeperClientAuthenticationParameters: string
   711  
   712  	// Timeout for BK add / read operations
   713  	bookkeeperClientTimeoutInSeconds: int
   714  
   715  	// 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
   716  	bookkeeperClientSpeculativeReadTimeoutInMillis: int
   717  
   718  	// Number of channels per bookie
   719  	bookkeeperNumberOfChannelsPerBookie: int
   720  
   721  	// Use older Bookkeeper wire protocol with bookie
   722  	bookkeeperUseV2WireProtocol: bool
   723  
   724  	// Enable bookies health check. \n\n 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
   725  	bookkeeperClientHealthCheckEnabled: bool
   726  
   727  	// Bookies health check interval in seconds
   728  	bookkeeperClientHealthCheckIntervalSeconds: int
   729  
   730  	// Bookies health check error threshold per check interval
   731  	bookkeeperClientHealthCheckErrorThresholdPerInterval: int
   732  
   733  	// Bookie health check quarantined time in seconds
   734  	bookkeeperClientHealthCheckQuarantineTimeInSeconds: int
   735  
   736  	// bookie quarantine ratio to avoid all clients quarantine the high pressure bookie servers at the same time
   737  	bookkeeperClientQuarantineRatio: float
   738  
   739  	// Enable rack-aware bookie selection policy. \n\nBK will chose bookies from different racks when forming a new bookie ensemble
   740  	bookkeeperClientRackawarePolicyEnabled: bool
   741  
   742  	// Enable region-aware bookie selection policy. \n\nBK will chose bookies from different regions and racks when forming a new bookie ensemble
   743  	bookkeeperClientRegionawarePolicyEnabled: bool
   744  
   745  	// Minimum number of racks per write quorum. \n\nBK rack-aware bookie selection policy will try to get bookies from at least 'bookkeeperClientMinNumRacksPerWriteQuorum' racks for a write quorum.
   746  	bookkeeperClientMinNumRacksPerWriteQuorum: int
   747  
   748  	// Enforces rack-aware bookie selection policy to pick bookies from 'bookkeeperClientMinNumRacksPerWriteQuorum' racks for  a writeQuorum. \n\nIf BK can't find bookie then it would throw BKNotEnoughBookiesException instead of picking random one.
   749  	bookkeeperClientEnforceMinNumRacksPerWriteQuorum: bool
   750  
   751  	// Enable/disable reordering read sequence on reading entries
   752  	bookkeeperClientReorderReadSequenceEnabled: bool
   753  
   754  	// Enable bookie isolation by specifying a list of bookie groups to choose from. \n\nAny bookie outside the specified groups will not be used by the broker
   755  	bookkeeperClientIsolationGroups: string
   756  
   757  	// Enable bookie secondary-isolation group if bookkeeperClientIsolationGroups doesn't have enough bookie available.
   758  	bookkeeperClientSecondaryIsolationGroups: string
   759  
   760  	// Set the interval to periodically check bookie info
   761  	bookkeeperClientGetBookieInfoIntervalSeconds: int
   762  
   763  	// Set the interval to retry a failed bookie info lookup
   764  	bookkeeperClientGetBookieInfoRetryIntervalSeconds: int
   765  
   766  	// Enable/disable having read operations for a ledger to be sticky to a single bookie.\nIf this flag is enabled, the client will use one single bookie (by preference) to read all entries for a ledger.
   767  	bookkeeperEnableStickyReads: bool
   768  
   769  	// Set the client security provider factory class name. Default: org.apache.bookkeeper.tls.TLSContextFactory
   770  	bookkeeperTLSProviderFactoryClass: string
   771  
   772  	// Enable tls authentication with bookie
   773  	bookkeeperTLSClientAuthentication: bool
   774  
   775  	// Supported type: PEM, JKS, PKCS12. Default value: PEM
   776  	bookkeeperTLSKeyFileType: string
   777  
   778  	// Supported type: PEM, JKS, PKCS12. Default value: PEM
   779  	bookkeeperTLSTrustCertTypes: string
   780  
   781  	// Path to file containing keystore password, if the client keystore is password protected.
   782  	bookkeeperTLSKeyStorePasswordPath: string
   783  
   784  	// Path to file containing truststore password, if the client truststore is password protected.
   785  	bookkeeperTLSTrustStorePasswordPath: string
   786  
   787  	// Path for the TLS private key file
   788  	bookkeeperTLSKeyFilePath: string
   789  
   790  	// Path for the TLS certificate file
   791  	bookkeeperTLSCertificateFilePath: string
   792  
   793  	// Path for the trusted TLS certificate file
   794  	bookkeeperTLSTrustCertsFilePath: string
   795  
   796  	// Tls cert refresh duration at bookKeeper-client in seconds (0 to disable check)
   797  	bookkeeperTlsCertFilesRefreshDurationSeconds: int
   798  
   799  	// Enable/disable disk weight based placement. Default is false
   800  	bookkeeperDiskWeightBasedPlacementEnabled: bool
   801  
   802  	// Set the interval to check the need for sending an explicit LAC
   803  	bookkeeperExplicitLacIntervalInMills: int
   804  
   805  	// whether expose managed ledger client stats to prometheus
   806  	bookkeeperClientExposeStatsToPrometheus: bool
   807  
   808  	// whether limit per_channel_bookie_client metrics of bookkeeper client stats
   809  	bookkeeperClientLimitStatsLogging: bool
   810  
   811  	// Throttle value for bookkeeper client
   812  	bookkeeperClientThrottleValue: int
   813  
   814  	// Number of BookKeeper client worker threads. Default is Runtime.getRuntime().availableProcessors()
   815  	bookkeeperClientNumWorkerThreads: int
   816  
   817  	// Number of BookKeeper client IO threads. Default is Runtime.getRuntime().availableProcessors() * 2
   818  	bookkeeperClientNumIoThreads: int
   819  
   820  	// Use separated IO threads for BookKeeper client. Default is false, which will use Pulsar IO threads
   821  	bookkeeperClientSeparatedIoThreadsEnabled: bool
   822  
   823  	// Ensemble (E) size, Number of bookies to use for storing entries in a ledger.\nPlease notice that sticky reads enabled by bookkeeperEnableStickyReads=true aren’t used  unless ensemble size (E) equals write quorum (Qw) size.
   824  	managedLedgerDefaultEnsembleSize: int
   825  
   826  	// Write quorum (Qw) size, Replication factor for storing entries (messages) in a ledger.
   827  	managedLedgerDefaultWriteQuorum: int
   828  
   829  	// Ack quorum (Qa) size, Number of guaranteed copies (acks to wait for before a write is considered completed)
   830  	managedLedgerDefaultAckQuorum: int
   831  
   832  	// How frequently to flush the cursor positions that were accumulated due to rate limiting. (seconds). Default is 60 seconds
   833  	managedLedgerCursorPositionFlushSeconds: int
   834  
   835  	// How frequently to refresh the stats. (seconds). Default is 60 seconds
   836  	managedLedgerStatsPeriodSeconds: int
   837  
   838  	// Default type of checksum to use when writing to BookKeeper. \n\nDefault is `CRC32C`. Other possible options are `CRC32`, `MAC` or `DUMMY` (no checksum).
   839  	managedLedgerDigestType: string
   840  
   841  	// Default  password to use when writing to BookKeeper. \n\nDefault is ``.
   842  	managedLedgerPassword: string
   843  
   844  	// Max number of bookies to use when creating a ledger
   845  	managedLedgerMaxEnsembleSize: int
   846  
   847  	// Max number of copies to store for each message
   848  	managedLedgerMaxWriteQuorum: int
   849  
   850  	// Max number of guaranteed copies (acks to wait before write is complete)
   851  	managedLedgerMaxAckQuorum: int
   852  
   853  	// Amount of memory to use for caching data payload in managed ledger. \n\nThis 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
   854  	managedLedgerCacheSizeMB: int
   855  
   856  	// Whether we should make a copy of the entry payloads when inserting in cache
   857  	managedLedgerCacheCopyEntries: bool
   858  
   859  	// 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
   860  	managedLedgerMaxReadsInFlightSizeInMB: int
   861  
   862  	// Threshold to which bring down the cache level when eviction is triggered
   863  	managedLedgerCacheEvictionWatermark: float
   864  
   865  	// Configure the cache eviction frequency for the managed ledger cache.
   866  	managedLedgerCacheEvictionFrequency: float
   867  
   868  	// Configure the cache eviction interval in milliseconds for the managed ledger cache, default is 10ms
   869  	managedLedgerCacheEvictionIntervalMs: int
   870  
   871  	// All entries that have stayed in cache for more than the configured time, will be evicted
   872  	managedLedgerCacheEvictionTimeThresholdMillis: int
   873  
   874  	// Configure the threshold (in number of entries) from where a cursor should be considered 'backlogged' and thus should be set as inactive.
   875  	managedLedgerCursorBackloggedThreshold: int
   876  
   877  	// Rate limit the amount of writes per second generated by consumer acking the messages
   878  	managedLedgerDefaultMarkDeleteRateLimit: float
   879  
   880  	// Allow automated creation of topics if set to true (default value).
   881  	allowAutoTopicCreation: bool
   882  
   883  	// The type of topic that is allowed to be automatically created.(partitioned/non-partitioned)
   884  	allowAutoTopicCreationType: string
   885  
   886  	// Allow automated creation of subscriptions if set to true (default value).
   887  	allowAutoSubscriptionCreation: bool
   888  
   889  	// The number of partitioned topics that is allowed to be automatically created if allowAutoTopicCreationType is partitioned.
   890  	defaultNumPartitions: int
   891  
   892  	// The class of the managed ledger storage
   893  	managedLedgerStorageClassName: string
   894  
   895  	// Number of threads to be used for managed ledger scheduled tasks
   896  	managedLedgerNumSchedulerThreads: int
   897  
   898  	// Max number of entries to append to a ledger before triggering a rollover.\n\nA 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
   899  	managedLedgerMaxEntriesPerLedger: int
   900  
   901  	// Minimum time between ledger rollover for a topic
   902  	managedLedgerMinLedgerRolloverTimeMinutes: int
   903  
   904  	// Maximum time before forcing a ledger rollover for a topic
   905  	managedLedgerMaxLedgerRolloverTimeMinutes: int
   906  
   907  	// Maximum ledger size before triggering a rollover for a topic (MB)
   908  	managedLedgerMaxSizePerLedgerMbytes: int
   909  
   910  	// Delay between a ledger being successfully offloaded to long term storage, and the ledger being deleted from bookkeeper
   911  	managedLedgerOffloadDeletionLagMs: int
   912  
   913  	// The number of bytes before triggering automatic offload to long term storage
   914  	managedLedgerOffloadAutoTriggerSizeThresholdBytes: int
   915  
   916  	// The threshold to triggering automatic offload to long term storage
   917  	managedLedgerOffloadThresholdInSeconds: int
   918  
   919  	// Max number of entries to append to a cursor ledger
   920  	managedLedgerCursorMaxEntriesPerLedger: int
   921  
   922  	// Max time before triggering a rollover on a cursor ledger
   923  	managedLedgerCursorRolloverTimeInSeconds: int
   924  
   925  	// Max number of `acknowledgment holes` that are going to be persistently stored.\n\nWhen 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.
   926  	managedLedgerMaxUnackedRangesToPersist: int
   927  
   928  	// If enabled, the maximum \"acknowledgment holes\" will not be limited and \"acknowledgment holes\" are stored in multiple entries.
   929  	persistentUnackedRangesWithMultipleEntriesEnabled: bool
   930  
   931  	// Max number of `acknowledgment holes` that can be stored in Zookeeper.\n\nIf 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.\n@deprecated - use managedLedgerMaxUnackedRangesToPersistInMetadataStore.
   932  	// @deprecated
   933  	managedLedgerMaxUnackedRangesToPersistInZooKeeper: int
   934  
   935  	// Max number of `acknowledgment holes` that can be stored in MetadataStore.\n\nIf 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.
   936  	managedLedgerMaxUnackedRangesToPersistInMetadataStore: int
   937  
   938  	// Use Open Range-Set to cache unacked messages (it is memory efficient but it can take more cpu)
   939  	managedLedgerUnackedRangesOpenCacheSetEnabled: bool
   940  
   941  	// Skip reading non-recoverable/unreadable data-ledger under managed-ledger's list.\n\n It helps when data-ledgers gets corrupted at bookkeeper and managed-cursor is stuck at that ledger.
   942  	autoSkipNonRecoverableData: bool
   943  
   944  	// operation timeout while updating managed-ledger metadata.
   945  	managedLedgerMetadataOperationsTimeoutSeconds: int
   946  
   947  	// Read entries timeout when broker tries to read messages from bookkeeper (0 to disable it)
   948  	managedLedgerReadEntryTimeoutSeconds: int
   949  
   950  	// Add entry timeout when broker tries to publish message to bookkeeper.(0 to disable it)
   951  	managedLedgerAddEntryTimeoutSeconds: int
   952  
   953  	// Managed ledger prometheus stats latency rollover seconds
   954  	managedLedgerPrometheusStatsLatencyRolloverSeconds: int
   955  
   956  	// Whether trace managed ledger task execution time
   957  	managedLedgerTraceTaskExecution: bool
   958  
   959  	// New entries check delay for the cursor under the managed ledger. \nIf no new messages in the topic, the cursor will try to check again after the delay time. \nFor consumption latency sensitive scenario, can set to a smaller value or set to 0.\nOf course, this may degrade consumption throughput. Default is 10ms.
   960  	managedLedgerNewEntriesCheckDelayInMillis: int
   961  
   962  	// Read priority when ledgers exists in both bookkeeper and the second layer storage.
   963  	managedLedgerDataReadPriority: string
   964  
   965  	// ManagedLedgerInfo compression type, option values (NONE, LZ4, ZLIB, ZSTD, SNAPPY). \nIf value is invalid or NONE, then save the ManagedLedgerInfo bytes data directly.
   966  	managedLedgerInfoCompressionType: string
   967  
   968  	// ManagedLedgerInfo compression size threshold (bytes), only compress metadata when origin size more then this value.\n0 means compression will always apply.\n
   969  	managedLedgerInfoCompressionThresholdInBytes: int
   970  
   971  	// ManagedCursorInfo compression type, option values (NONE, LZ4, ZLIB, ZSTD, SNAPPY). \nIf value is NONE, then save the ManagedCursorInfo bytes data directly.
   972  	managedCursorInfoCompressionType: string
   973  
   974  	// ManagedCursorInfo compression size threshold (bytes), only compress metadata when origin size more then this value.\n0 means compression will always apply.\n
   975  	managedCursorInfoCompressionThresholdInBytes: int
   976  
   977  	// Minimum cursors that must be in backlog state to cache and reuse the read entries.(Default =0 to disable backlog reach cache)
   978  	managedLedgerMinimumBacklogCursorsForCaching: int
   979  
   980  	// Minimum backlog entries for any cursor before start caching reads
   981  	managedLedgerMinimumBacklogEntriesForCaching: int
   982  
   983  	// Maximum backlog entry difference to prevent caching entries that can't be reused
   984  	managedLedgerMaxBacklogBetweenCursorsForCaching: int
   985  
   986  	// Enable load balancer
   987  	loadBalancerEnabled: bool
   988  
   989  	// load placement strategy[weightedRandomSelection/leastLoadedServer] (only used by SimpleLoadManagerImpl)
   990  	// @deprecated
   991  	loadBalancerPlacementStrategy: string
   992  
   993  	// load balance load shedding strategy (It requires broker restart if value is changed using dynamic config). Default is ThresholdShedder since 2.10.0
   994  	loadBalancerLoadSheddingStrategy: string
   995  
   996  	// When [current usage < average usage - threshold], the broker with the highest load will be triggered to unload
   997  	lowerBoundarySheddingEnabled: bool
   998  
   999  	// load balance placement strategy
  1000  	loadBalancerLoadPlacementStrategy: string
  1001  
  1002  	// Percentage of change to trigger load report update
  1003  	loadBalancerReportUpdateThresholdPercentage: int
  1004  
  1005  	// maximum interval to update load report
  1006  	loadBalancerReportUpdateMinIntervalMillis: int
  1007  
  1008  	// Min delay of load report to collect, in milli-seconds
  1009  	loadBalancerReportUpdateMaxIntervalMinutes: int
  1010  
  1011  	// Frequency of report to collect, in minutes
  1012  	loadBalancerHostUsageCheckIntervalMinutes: int
  1013  
  1014  	// Enable/disable automatic bundle unloading for load-shedding
  1015  	loadBalancerSheddingEnabled: bool
  1016  
  1017  	// Load shedding interval. \n\nBroker periodically checks whether some traffic should be offload from some over-loaded broker to other under-loaded brokers
  1018  	loadBalancerSheddingIntervalMinutes: int
  1019  
  1020  	// enable/disable distribute bundles evenly
  1021  	loadBalancerDistributeBundlesEvenlyEnabled: bool
  1022  
  1023  	// Prevent the same topics to be shed and moved to other broker more than once within this timeframe
  1024  	loadBalancerSheddingGracePeriodMinutes: int
  1025  
  1026  	// Usage threshold to determine a broker as under-loaded (only used by SimpleLoadManagerImpl)
  1027  	// @deprecated
  1028  	loadBalancerBrokerUnderloadedThresholdPercentage: int
  1029  
  1030  	// Usage threshold to allocate max number of topics to broker
  1031  	loadBalancerBrokerMaxTopics: int
  1032  
  1033  	// Usage threshold to determine a broker as over-loaded
  1034  	loadBalancerBrokerOverloadedThresholdPercentage: int
  1035  
  1036  	// Usage threshold to determine a broker whether to start threshold shedder
  1037  	loadBalancerBrokerThresholdShedderPercentage: int
  1038  
  1039  	// 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.)
  1040  	loadBalancerAverageResourceUsageDifferenceThresholdPercentage: int
  1041  
  1042  	// In FlowOrQpsEquallyDivideBundleSplitAlgorithm, if msgRate >= loadBalancerNamespaceBundleMaxMsgRate *  (100 + flowOrQpsDifferenceThresholdPercentage)/100.0  or throughput >=  loadBalancerNamespaceBundleMaxBandwidthMbytes *  (100 + flowOrQpsDifferenceThresholdPercentage)/100.0,  execute split bundle
  1043  	flowOrQpsDifferenceThresholdPercentage: int
  1044  
  1045  	// In the UniformLoadShedder strategy, the minimum message that triggers unload.
  1046  	minUnloadMessage: int
  1047  
  1048  	// In the UniformLoadShedder strategy, the minimum throughput that triggers unload.
  1049  	minUnloadMessageThroughput: int
  1050  
  1051  	// In the UniformLoadShedder strategy, the maximum unload ratio.
  1052  	maxUnloadPercentage: float
  1053  
  1054  	// 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)
  1055  	loadBalancerMsgRateDifferenceShedderThreshold: float
  1056  
  1057  	// 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)
  1058  	loadBalancerMsgThroughputMultiplierDifferenceShedderThreshold: float
  1059  
  1060  	// For each uniform balanced unload, the maximum number of bundles that can be unloaded. The default value is -1, which means no limit
  1061  	maxUnloadBundleNumPerShedding: int
  1062  
  1063  	// Resource history Usage Percentage When adding new resource usage info
  1064  	loadBalancerHistoryResourcePercentage: float
  1065  
  1066  	// BandwithIn Resource Usage Weight
  1067  	loadBalancerBandwithInResourceWeight: float
  1068  
  1069  	// BandwithOut Resource Usage Weight
  1070  	loadBalancerBandwithOutResourceWeight: float
  1071  
  1072  	// CPU Resource Usage Weight
  1073  	loadBalancerCPUResourceWeight: float
  1074  
  1075  	// Memory Resource Usage Weight. Deprecated: Memory is no longer used as a load balancing item.
  1076  	// @deprecated
  1077  	loadBalancerMemoryResourceWeight: float
  1078  
  1079  	// Direct Memory Resource Usage Weight
  1080  	loadBalancerDirectMemoryResourceWeight: float
  1081  
  1082  	// Bundle unload minimum throughput threshold (MB)
  1083  	loadBalancerBundleUnloadMinThroughputThreshold: float
  1084  
  1085  	// Interval to flush dynamic resource quota to ZooKeeper
  1086  	loadBalancerResourceQuotaUpdateIntervalMinutes: int
  1087  
  1088  	// Usage threshold to determine a broker is having just right level of load (only used by SimpleLoadManagerImpl)
  1089  	// @deprecated
  1090  	loadBalancerBrokerComfortLoadLevelPercentage: int
  1091  
  1092  	// enable/disable automatic namespace bundle split
  1093  	loadBalancerAutoBundleSplitEnabled: bool
  1094  
  1095  	// enable/disable automatic unloading of split bundles
  1096  	loadBalancerAutoUnloadSplitBundlesEnabled: bool
  1097  
  1098  	// maximum topics in a bundle, otherwise bundle split will be triggered
  1099  	loadBalancerNamespaceBundleMaxTopics: int
  1100  
  1101  	// maximum sessions (producers + consumers) in a bundle, otherwise bundle split will be triggered(disable threshold check with value -1)
  1102  	loadBalancerNamespaceBundleMaxSessions: int
  1103  
  1104  	// maximum msgRate (in + out) in a bundle, otherwise bundle split will be triggered
  1105  	loadBalancerNamespaceBundleMaxMsgRate: int
  1106  
  1107  	// maximum bandwidth (in + out) in a bundle, otherwise bundle split will be triggered
  1108  	loadBalancerNamespaceBundleMaxBandwidthMbytes: int
  1109  
  1110  	// maximum number of bundles in a namespace
  1111  	loadBalancerNamespaceMaximumBundles: int
  1112  
  1113  	// Name of load manager to use
  1114  	loadManagerClassName: string
  1115  
  1116  	// Name of topic bundle assignment strategy to use
  1117  	topicBundleAssignmentStrategy: string
  1118  
  1119  	// Supported algorithms name for namespace bundle split
  1120  	supportedNamespaceBundleSplitAlgorithms: string
  1121  
  1122  	// Default algorithm name for namespace bundle split
  1123  	defaultNamespaceBundleSplitAlgorithm: string
  1124  
  1125  	// Option to override the auto-detected network interfaces max speed
  1126  	loadBalancerOverrideBrokerNicSpeedGbps: float
  1127  
  1128  	// Time to wait for the unloading of a namespace bundle
  1129  	namespaceBundleUnloadingTimeoutMs: int
  1130  
  1131  	// 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)
  1132  	loadBalancerDebugModeEnabled: bool
  1133  
  1134  	// 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)
  1135  	loadBalancerBrokerLoadTargetStd: float
  1136  
  1137  	// 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)
  1138  	loadBalancerSheddingConditionHitCountThreshold: int
  1139  
  1140  	// 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)
  1141  	loadBalancerTransferEnabled: bool
  1142  
  1143  	// 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)
  1144  	loadBalancerMaxNumberOfBrokerSheddingPerCycle: int
  1145  
  1146  	// 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)
  1147  	loadBalanceSheddingDelayInSeconds: int
  1148  
  1149  	// 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 is loadBalancerReportUpdateMaxIntervalMinutes * 2. (only used in load balancer extension TransferSheddeer)
  1150  	loadBalancerBrokerLoadDataTTLInSeconds: int
  1151  
  1152  	// 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)
  1153  	loadBalancerMaxNumberOfBundlesInBundleLoadReport: int
  1154  
  1155  	// 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)
  1156  	loadBalancerSplitIntervalMinutes: int
  1157  
  1158  	// Max number of bundles to split to per cycle. (only used in load balancer extension logics)
  1159  	loadBalancerMaxNumberOfBundlesToSplitPerCycle: int
  1160  
  1161  	// 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)
  1162  	loadBalancerNamespaceBundleSplitConditionHitCountThreshold: int
  1163  
  1164  	// 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)
  1165  	loadBalancerServiceUnitStateTombstoneDelayTimeInSeconds: int
  1166  
  1167  	// 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)
  1168  	loadBalancerSheddingBundlesWithPoliciesEnabled: bool
  1169  
  1170  	// Enable replication metrics
  1171  	replicationMetricsEnabled: bool
  1172  
  1173  	// Max number of connections to open for each broker in a remote cluster.\n\nMore connections host-to-host lead to better throughput over high-latency links
  1174  	replicationConnectionsPerBroker: int
  1175  
  1176  	// replicator prefix used for replicator producer name and cursor name
  1177  	replicatorPrefix: string
  1178  
  1179  	// Replicator producer queue size. When dynamically modified, it only takes effect for the newly added replicators
  1180  	replicationProducerQueueSize: int
  1181  
  1182  	// Duration to check replication policy to avoid replicator inconsistency due to missing ZooKeeper watch (disable with value 0)
  1183  	replicationPolicyCheckDurationSeconds: int
  1184  
  1185  	// @deprecated - Use brokerClientTlsEnabled instead.
  1186  	// @deprecated
  1187  	replicationTlsEnabled: bool
  1188  
  1189  	// Default message retention time. 0 means retention is disabled. -1 means data is not removed by time quota
  1190  	defaultRetentionTimeInMinutes: int
  1191  
  1192  	// Default retention size. 0 means retention is disabled. -1 means data is not removed by size quota
  1193  	defaultRetentionSizeInMB: int
  1194  
  1195  	// How often to check pulsar connection is still alive
  1196  	keepAliveIntervalSeconds: int
  1197  
  1198  	// 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.
  1199  	connectionLivenessCheckTimeoutMillis: int
  1200  
  1201  	// How often broker checks for inactive topics to be deleted (topics with no subscriptions and no one connected) Deprecated in favor of using `brokerDeleteInactiveTopicsFrequencySeconds`\n@deprecated - unused.
  1202  	// @deprecated
  1203  	brokerServicePurgeInactiveFrequencyInSeconds: int
  1204  
  1205  	// A comma-separated list of namespaces to bootstrap
  1206  	bootstrapNamespaces: string
  1207  
  1208  	// 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)
  1209  	preferLaterVersions: bool
  1210  
  1211  	// Interval between checks to see if topics with compaction policies need to be compacted
  1212  	brokerServiceCompactionMonitorIntervalInSeconds: int
  1213  
  1214  	// The estimated backlog size is greater than this threshold, compression will be triggered.\nUsing a value of 0, is disabling compression check.
  1215  	brokerServiceCompactionThresholdInBytes: int
  1216  
  1217  	// Timeout for the compaction phase one loop, If the execution time of the compaction phase one loop exceeds this time, the compaction will not proceed.
  1218  	brokerServiceCompactionPhaseOneLoopTimeInSeconds: int
  1219  
  1220  	// Interval between checks to see if cluster is migrated and marks topic migrated  if cluster is marked migrated. Disable with value 0. (Default disabled).
  1221  	clusterMigrationCheckDurationSeconds: int
  1222  
  1223  	// Enforce schema validation on following cases:\n\n - if a producer without a schema attempts to produce to a topic with schema, the producer will be\n   failed to connect. PLEASE be carefully on using this, since non-java clients don't support schema.\n   if you enable this setting, it will cause non-java clients failed to produce.
  1224  	isSchemaValidationEnforced: bool
  1225  
  1226  	// The schema storage implementation used by this broker
  1227  	schemaRegistryStorageClassName: string
  1228  
  1229  	// The list compatibility checkers to be used in schema registry
  1230  	schemaRegistryCompatibilityCheckers: string
  1231  
  1232  	// The schema compatibility strategy in broker level
  1233  	schemaCompatibilityStrategy: string
  1234  
  1235  	// Number of IO threads in Pulsar Client used in WebSocket proxy
  1236  	webSocketNumIoThreads: int
  1237  
  1238  	// Number of threads used by Websocket service
  1239  	webSocketNumServiceThreads: int
  1240  
  1241  	// Number of connections per Broker in Pulsar Client used in WebSocket proxy
  1242  	webSocketConnectionsPerBroker: int
  1243  
  1244  	// Time in milliseconds that idle WebSocket session times out
  1245  	webSocketSessionIdleTimeoutMillis: int
  1246  
  1247  	// Interval of time to sending the ping to keep alive in WebSocket proxy. This value greater than 0 means enabled
  1248  	webSocketPingDurationSeconds: int
  1249  
  1250  	// The maximum size of a text message during parsing in WebSocket proxy.
  1251  	webSocketMaxTextFrameSize: int
  1252  
  1253  	// Whether the '/metrics' endpoint requires authentication. Defaults to false.'authenticationEnabled' must also be set for this to take effect.
  1254  	authenticateMetricsEndpoint: bool
  1255  
  1256  	// If true, export topic level metrics otherwise namespace level
  1257  	exposeTopicLevelMetricsInPrometheus: bool
  1258  
  1259  	// If true, export buffered metrics
  1260  	metricsBufferResponse: bool
  1261  
  1262  	// If true, export consumer level metrics otherwise namespace level
  1263  	exposeConsumerLevelMetricsInPrometheus: bool
  1264  
  1265  	// If true, export producer level metrics otherwise namespace level
  1266  	exposeProducerLevelMetricsInPrometheus: bool
  1267  
  1268  	// If true, export managed ledger metrics (aggregated by namespace)
  1269  	exposeManagedLedgerMetricsInPrometheus: bool
  1270  
  1271  	// If true, export managed cursor metrics
  1272  	exposeManagedCursorMetricsInPrometheus: bool
  1273  
  1274  	// Classname of Pluggable JVM GC metrics logger that can log GC specific metrics
  1275  	jvmGCMetricsLoggerClassName: string
  1276  
  1277  	// Enable expose the precise backlog stats.\n Set false to use published counter and consumed counter to calculate,\n this would be more efficient but may be inaccurate. Default is false.
  1278  	exposePreciseBacklogInPrometheus: bool
  1279  
  1280  	// Time in milliseconds that metrics endpoint would time out. Default is 30s.\n Increase it if there are a lot of topics to expose topic-level metrics.\n Set it to 0 to disable timeout.
  1281  	metricsServletTimeoutMs: int
  1282  
  1283  	// Enable expose the backlog size for each subscription when generating stats.\n Locking is used for fetching the status so default to false.
  1284  	exposeSubscriptionBacklogSizeInPrometheus: bool
  1285  
  1286  	// Enable splitting topic and partition label in Prometheus.\n If enabled, a topic name will split into 2 parts, one is topic name without partition index,\n another one is partition index, e.g. (topic=xxx, partition=0).\n If the topic is a non-partitioned topic, -1 will be used for the partition index.\n If disabled, one label to represent the topic and partition, e.g. (topic=xxx-partition-0)\n Default is false.
  1287  	splitTopicAndPartitionLabelInPrometheus: bool
  1288  
  1289  	// Enable expose the broker bundles metrics.
  1290  	exposeBundlesMetricsInPrometheus: bool
  1291  
  1292  	// Flag indicates enabling or disabling function worker on brokers
  1293  	functionsWorkerEnabled: bool
  1294  
  1295  	// The nar package for the function worker service
  1296  	functionsWorkerServiceNarPackage: string
  1297  
  1298  	// Flag indicates enabling or disabling function worker using unified PackageManagement service.
  1299  	functionsWorkerEnablePackageManagement: bool
  1300  
  1301  	// If true, export publisher stats when returning topics stats from the admin rest api
  1302  	exposePublisherStats: bool
  1303  
  1304  	// Stats update frequency in seconds
  1305  	statsUpdateFrequencyInSecs: int
  1306  
  1307  	// Stats update initial delay in seconds
  1308  	statsUpdateInitialDelayInSecs: int
  1309  
  1310  	// If true, aggregate publisher stats of PartitionedTopicStats by producerName
  1311  	aggregatePublisherStatsByProducerName: bool
  1312  
  1313  	// The directory to locate offloaders
  1314  	offloadersDirectory: string
  1315  
  1316  	// Driver to use to offload old data to long term storage
  1317  	managedLedgerOffloadDriver: string
  1318  
  1319  	// Maximum number of thread pool threads for ledger offloading
  1320  	managedLedgerOffloadMaxThreads: int
  1321  
  1322  	// The directory where nar Extraction of offloaders happens
  1323  	narExtractionDirectory: string
  1324  
  1325  	// Maximum prefetch rounds for ledger reading for offloading
  1326  	managedLedgerOffloadPrefetchRounds: int
  1327  
  1328  	// Time to rollover ledger for inactive topic (duration without any publish on that topic). Disable rollover with value 0 (Default value 0)
  1329  	managedLedgerInactiveLedgerRolloverTimeSeconds: int
  1330  
  1331  	// Evicting cache data by the slowest markDeletedPosition or readPosition. The default is to evict through readPosition.
  1332  	cacheEvictionByMarkDeletedPosition: bool
  1333  
  1334  	// Enable transaction coordinator in broker
  1335  	transactionCoordinatorEnabled: bool
  1336  
  1337  	// Class name for transaction metadata store provider
  1338  	transactionMetadataStoreProviderClassName: string
  1339  
  1340  	// Class name for transaction buffer provider
  1341  	transactionBufferProviderClassName: string
  1342  
  1343  	// Class name for transaction pending ack store provider
  1344  	transactionPendingAckStoreProviderClassName: string
  1345  
  1346  	// Number of threads to use for pulsar transaction replay PendingAckStore or TransactionBuffer.Default is 5
  1347  	numTransactionReplayThreadPoolSize: int
  1348  
  1349  	// Transaction buffer take snapshot transaction countIf transaction buffer enables snapshot segment, transaction buffer updates snapshot metadataafter the number of transaction operations reaches this value.
  1350  	transactionBufferSnapshotMaxTransactionCount: int
  1351  
  1352  	// 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.
  1353  	transactionBufferSnapshotMinTimeInMillis: int
  1354  
  1355  	// 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).
  1356  	transactionBufferSnapshotSegmentSize: int
  1357  
  1358  	// Whether to enable segmented transaction buffer snapshot to handle a large number of aborted transactions.
  1359  	transactionBufferSegmentedSnapshotEnabled: bool
  1360  
  1361  	// The max concurrent requests for transaction buffer client.
  1362  	transactionBufferClientMaxConcurrentRequests: int
  1363  
  1364  	// The transaction buffer client's operation timeout in milliseconds.
  1365  	transactionBufferClientOperationTimeoutInMills: int
  1366  
  1367  	// The max active transactions per transaction coordinator, default value 0 indicates no limit.
  1368  	maxActiveTransactionsPerCoordinator: int
  1369  
  1370  	// 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
  1371  	transactionPendingAckLogIndexMinLag: int
  1372  
  1373  	// 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
  1374  	transactionLogBatchedWriteEnabled: bool
  1375  
  1376  	// If enabled the feature that transaction log batch, this attribute means maximum log records count in a batch, default 512.
  1377  	transactionLogBatchedWriteMaxRecords: int
  1378  
  1379  	// If enabled the feature that transaction log batch, this attribute means bytes size in a batch, default 4m.
  1380  	transactionLogBatchedWriteMaxSize: int
  1381  
  1382  	// 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.
  1383  	transactionLogBatchedWriteMaxDelayInMillis: int
  1384  
  1385  	// 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.
  1386  	transactionPendingAckBatchedWriteEnabled: bool
  1387  
  1388  	// If enabled the feature that transaction log batch, this attribute means maximum log records count in a batch, default 512.
  1389  	transactionPendingAckBatchedWriteMaxRecords: int
  1390  
  1391  	// If enabled the feature that transaction pending ack log batch, this attribute means bytes size in a batch, default 4m.
  1392  	transactionPendingAckBatchedWriteMaxSize: int
  1393  
  1394  	// 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.
  1395  	transactionPendingAckBatchedWriteMaxDelayInMillis: int
  1396  
  1397  	// The class name of the factory that implements the topic compaction service.
  1398  	compactionServiceFactoryClassName: string
  1399  
  1400  	// Enable TLS with KeyStore type configuration in broker
  1401  	tlsEnabledWithKeyStore: bool
  1402  
  1403  	// Specify the TLS provider for the broker service: \nWhen using TLS authentication with CACert, the valid value is either OPENSSL or JDK.\nWhen using TLS authentication with KeyStore, available values can be SunJSSE, Conscrypt and etc.
  1404  	tlsProvider: string
  1405  
  1406  	// TLS KeyStore type configuration in broker: JKS, PKCS12
  1407  	tlsKeyStoreType: string
  1408  
  1409  	// TLS KeyStore path in broker
  1410  	tlsKeyStore: string
  1411  
  1412  	// TLS KeyStore password for broker
  1413  	tlsKeyStorePassword: string
  1414  
  1415  	// TLS TrustStore type configuration in broker: JKS, PKCS12
  1416  	tlsTrustStoreType: string
  1417  
  1418  	// TLS TrustStore path in broker
  1419  	tlsTrustStore: string
  1420  
  1421  	// TLS TrustStore password for broker, null means empty password.
  1422  	tlsTrustStorePassword: string
  1423  
  1424  	// Authentication settings of the broker itself. \n\nUsed when the broker connects to other brokers, either in same or other clusters. Default uses plugin which disables authentication
  1425  	brokerClientAuthenticationPlugin: string
  1426  
  1427  	// Authentication parameters of the authentication plugin the broker is using to connect to other brokers
  1428  	brokerClientAuthenticationParameters: string
  1429  
  1430  	// Enable TLS when talking with other brokers in the same cluster (admin operation) or different clusters (replication)
  1431  	brokerClientTlsEnabled: bool
  1432  
  1433  	// Whether internal client use KeyStore type to authenticate with other Pulsar brokers
  1434  	brokerClientTlsEnabledWithKeyStore: bool
  1435  
  1436  	// The TLS Provider used by internal client to authenticate with other Pulsar brokers
  1437  	brokerClientSslProvider: string
  1438  
  1439  	// TLS trusted certificate file for internal client, used by the internal client to authenticate with Pulsar brokers
  1440  	brokerClientTrustCertsFilePath: string
  1441  
  1442  	// TLS private key file for internal client, used by the internal client to authenticate with Pulsar brokers
  1443  	brokerClientKeyFilePath: string
  1444  
  1445  	// TLS certificate file for internal client, used by the internal client to authenticate with Pulsar brokers
  1446  	brokerClientCertificateFilePath: string
  1447  
  1448  	// TLS TrustStore type configuration for internal client: JKS, PKCS12  used by the internal client to authenticate with Pulsar brokers
  1449  	brokerClientTlsTrustStoreType: string
  1450  
  1451  	// TLS TrustStore path for internal client,  used by the internal client to authenticate with Pulsar brokers
  1452  	brokerClientTlsTrustStore: string
  1453  
  1454  	// TLS TrustStore password for internal client,  used by the internal client to authenticate with Pulsar brokers
  1455  	brokerClientTlsTrustStorePassword: string
  1456  
  1457  	// TLS KeyStore type configuration for internal client: JKS, PKCS12, used by the internal client to authenticate with Pulsar brokers
  1458  	brokerClientTlsKeyStoreType: string
  1459  
  1460  	// TLS KeyStore path for internal client,  used by the internal client to authenticate with Pulsar brokers
  1461  	brokerClientTlsKeyStore: string
  1462  
  1463  	// TLS KeyStore password for internal client,  used by the internal client to authenticate with Pulsar brokers
  1464  	brokerClientTlsKeyStorePassword: string
  1465  
  1466  	// Specify the tls cipher the internal client will use to negotiate during TLS Handshake (a comma-separated list of ciphers).\n\nExamples:- [TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256].\n used by the internal client to authenticate with Pulsar brokers
  1467  	brokerClientTlsCiphers: string
  1468  
  1469  	// Specify the tls protocols the broker will use to negotiate during TLS handshake (a comma-separated list of protocol names).\n\nExamples:- [TLSv1.3, TLSv1.2] \n used by the internal client to authenticate with Pulsar brokers
  1470  	brokerClientTlsProtocols: string
  1471  
  1472  	// Enable the packages management service or not
  1473  	enablePackagesManagement: bool
  1474  
  1475  	// The packages management service storage service provider
  1476  	packagesManagementStorageProvider: string
  1477  
  1478  	// When the packages storage provider is bookkeeper, you can use this configuration to\ncontrol the number of replicas for storing the package
  1479  	packagesReplicas: int
  1480  
  1481  	// The bookkeeper ledger root path
  1482  	packagesManagementLedgerRootPath: string
  1483  
  1484  	// The directory to locate broker additional servlet
  1485  	additionalServletDirectory: string
  1486  
  1487  	// List of broker additional servlet to load, which is a list of broker additional servlet names
  1488  	additionalServlets: string
  1489  
  1490  	...
  1491  }
  1492  
  1493  configuration: #PulsarBrokersParameter & {
  1494  }