1. ## Bookie settings
    2. #############################################################################
    3. ## Server parameters
    4. #############################################################################
    5. # Port that bookie server listen on
    6. bookiePort=3181
    7. # Directories BookKeeper outputs its write ahead log.
    8. # Could define multi directories to store write head logs, separated by ','.
    9. # For example:
    10. # journalDirectories=/tmp/bk-journal1,/tmp/bk-journal2
    11. # If journalDirectories is set, bookies will skip journalDirectory and use
    12. # this setting directory.
    13. # journalDirectories=/tmp/bk-journal
    14. # Directory Bookkeeper outputs its write ahead log
    15. # @deprecated since 4.5.0. journalDirectories is preferred over journalDirectory.
    16. journalDirectory=data/bookkeeper/journal # journal存放的地址
    17. # Configure the bookie to allow/disallow multiple ledger/index/journal directories
    18. # in the same filesystem disk partition
    19. # allowMultipleDirsUnderSameDiskPartition=false
    20. # Minimum safe Usable size to be available in index directory for bookie to create
    21. # Index File while replaying journal at the time of bookie Start in Readonly Mode (in bytes)
    22. minUsableSizeForIndexFileCreation=1073741824
    23. # Set the network interface that the bookie should listen on.
    24. # If not set, the bookie will listen on all interfaces.
    25. # listeningInterface=eth0
    26. # Configure a specific hostname or IP address that the bookie should use to advertise itself to
    27. # clients. If not set, bookie will advertised its own IP address or hostname, depending on the
    28. # listeningInterface and useHostNameAsBookieID settings.
    29. advertisedAddress=192.168.33.3 # 这里需要修改为本机的地址
    30. # Whether the bookie allowed to use a loopback interface as its primary
    31. # interface(i.e. the interface it uses to establish its identity)?
    32. # By default, loopback interfaces are not allowed as the primary
    33. # interface.
    34. # Using a loopback interface as the primary interface usually indicates
    35. # a configuration error. For example, its fairly common in some VPS setups
    36. # to not configure a hostname, or to have the hostname resolve to
    37. # 127.0.0.1. If this is the case, then all bookies in the cluster will
    38. # establish their identities as 127.0.0.1:3181, and only one will be able
    39. # to join the cluster. For VPSs configured like this, you should explicitly
    40. # set the listening interface.
    41. allowLoopback=false
    42. # Interval to watch whether bookie is dead or not, in milliseconds
    43. bookieDeathWatchInterval=1000
    44. # When entryLogPerLedgerEnabled is enabled, checkpoint doesn't happens
    45. # when a new active entrylog is created / previous one is rolled over.
    46. # Instead SyncThread checkpoints periodically with 'flushInterval' delay
    47. # (in milliseconds) in between executions. Checkpoint flushes both ledger
    48. # entryLogs and ledger index pages to disk.
    49. # Flushing entrylog and index files will introduce much random disk I/O.
    50. # If separating journal dir and ledger dirs each on different devices,
    51. # flushing would not affect performance. But if putting journal dir
    52. # and ledger dirs on same device, performance degrade significantly
    53. # on too frequent flushing. You can consider increment flush interval
    54. # to get better performance, but you need to pay more time on bookie
    55. # server restart after failure.
    56. # This config is used only when entryLogPerLedgerEnabled is enabled.
    57. flushInterval=60000
    58. # Allow the expansion of bookie storage capacity. Newly added ledger
    59. # and index dirs must be empty.
    60. # allowStorageExpansion=false
    61. # Whether the bookie should use its hostname to register with the
    62. # co-ordination service(eg: Zookeeper service).
    63. # When false, bookie will use its ip address for the registration.
    64. # Defaults to false.
    65. useHostNameAsBookieID=false
    66. # Whether the bookie is allowed to use an ephemeral port (port 0) as its
    67. # server port. By default, an ephemeral port is not allowed.
    68. # Using an ephemeral port as the service port usually indicates a configuration
    69. # error. However, in unit tests, using an ephemeral port will address port
    70. # conflict problems and allow running tests in parallel.
    71. # allowEphemeralPorts=false
    72. # Whether allow the bookie to listen for BookKeeper clients executed on the local JVM.
    73. # enableLocalTransport=false
    74. # Whether allow the bookie to disable bind on network interfaces,
    75. # this bookie will be available only to BookKeeper clients executed on the local JVM.
    76. # disableServerSocketBind=false
    77. # The number of bytes we should use as chunk allocation for
    78. # org.apache.bookkeeper.bookie.SkipListArena
    79. # skipListArenaChunkSize=4194304
    80. # The max size we should allocate from the skiplist arena. Allocations
    81. # larger than this should be allocated directly by the VM to avoid fragmentation.
    82. # skipListArenaMaxAllocSize=131072
    83. # The bookie authentication provider factory class name.
    84. # If this is null, no authentication will take place.
    85. # bookieAuthProviderFactoryClass=null
    86. #############################################################################
    87. ## Garbage collection settings
    88. #############################################################################
    89. # How long the interval to trigger next garbage collection, in milliseconds
    90. # Since garbage collection is running in background, too frequent gc
    91. # will heart performance. It is better to give a higher number of gc
    92. # interval if there is enough disk capacity.
    93. gcWaitTime=900000
    94. # How long the interval to trigger next garbage collection of overreplicated
    95. # ledgers, in milliseconds [Default: 1 day]. This should not be run very frequently
    96. # since we read the metadata for all the ledgers on the bookie from zk
    97. gcOverreplicatedLedgerWaitTime=86400000
    98. # Number of threads that should handle write requests. if zero, the writes would
    99. # be handled by netty threads directly.
    100. numAddWorkerThreads=0
    101. # Number of threads that should handle read requests. if zero, the reads would
    102. # be handled by netty threads directly.
    103. numReadWorkerThreads=8
    104. # Number of threads that should be used for high priority requests
    105. # (i.e. recovery reads and adds, and fencing).
    106. numHighPriorityWorkerThreads=8
    107. # If read workers threads are enabled, limit the number of pending requests, to
    108. # avoid the executor queue to grow indefinitely
    109. maxPendingReadRequestsPerThread=2500
    110. # If add workers threads are enabled, limit the number of pending requests, to
    111. # avoid the executor queue to grow indefinitely
    112. maxPendingAddRequestsPerThread=10000
    113. # Whether force compaction is allowed when the disk is full or almost full.
    114. # Forcing GC may get some space back, but may also fill up disk space more quickly.
    115. # This is because new log files are created before GC, while old garbage
    116. # log files are deleted after GC.
    117. # isForceGCAllowWhenNoSpace=false
    118. # True if the bookie should double check readMetadata prior to gc
    119. # verifyMetadataOnGC=false
    120. #############################################################################
    121. ## TLS settings
    122. #############################################################################
    123. # TLS Provider (JDK or OpenSSL).
    124. # tlsProvider=OpenSSL
    125. # The path to the class that provides security.
    126. # tlsProviderFactoryClass=org.apache.bookkeeper.security.SSLContextFactory
    127. # Type of security used by server.
    128. # tlsClientAuthentication=true
    129. # Bookie Keystore type.
    130. # tlsKeyStoreType=JKS
    131. # Bookie Keystore location (path).
    132. # tlsKeyStore=null
    133. # Bookie Keystore password path, if the keystore is protected by a password.
    134. # tlsKeyStorePasswordPath=null
    135. # Bookie Truststore type.
    136. # tlsTrustStoreType=null
    137. # Bookie Truststore location (path).
    138. # tlsTrustStore=null
    139. # Bookie Truststore password path, if the trust store is protected by a password.
    140. # tlsTrustStorePasswordPath=null
    141. #############################################################################
    142. ## Long poll request parameter settings
    143. #############################################################################
    144. # The number of threads that should handle long poll requests.
    145. # numLongPollWorkerThreads=10
    146. # The tick duration in milliseconds for long poll requests.
    147. # requestTimerTickDurationMs=10
    148. # The number of ticks per wheel for the long poll request timer.
    149. # requestTimerNumTicks=1024
    150. #############################################################################
    151. ## AutoRecovery settings
    152. #############################################################################
    153. # The interval between auditor bookie checks.
    154. # The auditor bookie check, checks ledger metadata to see which bookies should
    155. # contain entries for each ledger. If a bookie which should contain entries is
    156. # unavailable, then the ledger containing that entry is marked for recovery.
    157. # Setting this to 0 disabled the periodic check. Bookie checks will still
    158. # run when a bookie fails.
    159. # The interval is specified in seconds.
    160. auditorPeriodicBookieCheckInterval=86400
    161. # The number of entries that a replication will rereplicate in parallel.
    162. rereplicationEntryBatchSize=100
    163. # Auto-replication
    164. # The grace period, in milliseconds, that the replication worker waits before fencing and
    165. # replicating a ledger fragment that's still being written to upon bookie failure.
    166. openLedgerRereplicationGracePeriod=30000
    167. # Whether the bookie itself can start auto-recovery service also or not
    168. autoRecoveryDaemonEnabled=true
    169. # How long to wait, in seconds, before starting auto recovery of a lost bookie
    170. lostBookieRecoveryDelay=0
    171. #############################################################################
    172. ## Placement settings
    173. #############################################################################
    174. # the following settings take effects when `autoRecoveryDaemonEnabled` is true.
    175. # The ensemble placement policy used for re-replicating entries.
    176. #
    177. # Options:
    178. # - org.apache.bookkeeper.client.RackawareEnsemblePlacementPolicy
    179. # - org.apache.bookkeeper.client.RegionAwareEnsemblePlacementPolicy
    180. #
    181. # Default value:
    182. # org.apache.bookkeeper.client.RackawareEnsemblePlacementPolicy
    183. #
    184. # ensemblePlacementPolicy=org.apache.bookkeeper.client.RackawareEnsemblePlacementPolicy
    185. #############################################################################
    186. ## Netty server settings
    187. #############################################################################
    188. # This settings is used to enabled/disabled Nagle's algorithm, which is a means of
    189. # improving the efficiency of TCP/IP networks by reducing the number of packets
    190. # that need to be sent over the network.
    191. # If you are sending many small messages, such that more than one can fit in
    192. # a single IP packet, setting server.tcpnodelay to false to enable Nagle algorithm
    193. # can provide better performance.
    194. # Default value is true.
    195. serverTcpNoDelay=true
    196. # This setting is used to send keep-alive messages on connection-oriented sockets.
    197. # serverSockKeepalive=true
    198. # The socket linger timeout on close.
    199. # When enabled, a close or shutdown will not return until all queued messages for
    200. # the socket have been successfully sent or the linger timeout has been reached.
    201. # Otherwise, the call returns immediately and the closing is done in the background.
    202. # serverTcpLinger=0
    203. # The Recv ByteBuf allocator initial buf size.
    204. # byteBufAllocatorSizeInitial=65536
    205. # The Recv ByteBuf allocator min buf size.
    206. # byteBufAllocatorSizeMin=65536
    207. # The Recv ByteBuf allocator max buf size.
    208. # byteBufAllocatorSizeMax=1048576
    209. # The maximum netty frame size in bytes. Any message received larger than this will be rejected. The default value is 5MB.
    210. nettyMaxFrameSizeBytes=5253120
    211. #############################################################################
    212. ## Journal settings
    213. #############################################################################
    214. # The journal format version to write.
    215. # Available formats are 1-6:
    216. # 1: no header
    217. # 2: a header section was added
    218. # 3: ledger key was introduced
    219. # 4: fencing key was introduced
    220. # 5: expanding header to 512 and padding writes to align sector size configured by `journalAlignmentSize`
    221. # 6: persisting explicitLac is introduced
    222. # By default, it is `6`.
    223. # If you'd like to disable persisting ExplicitLac, you can set this config to < `6` and also
    224. # fileInfoFormatVersionToWrite should be set to 0. If there is mismatch then the serverconfig is considered invalid.
    225. # You can disable `padding-writes` by setting journal version back to `4`. This feature is available in 4.5.0
    226. # and onward versions.
    227. journalFormatVersionToWrite=5
    228. # Max file size of journal file, in mega bytes
    229. # A new journal file will be created when the old one reaches the file size limitation
    230. journalMaxSizeMB=2048
    231. # Max number of old journal file to kept
    232. # Keep a number of old journal files would help data recovery in special case
    233. journalMaxBackups=5
    234. # How much space should we pre-allocate at a time in the journal.
    235. journalPreAllocSizeMB=16
    236. # Size of the write buffers used for the journal
    237. journalWriteBufferSizeKB=64
    238. # Should we remove pages from page cache after force write
    239. journalRemoveFromPageCache=true
    240. # Should the data be fsynced on journal before acknowledgment.
    241. # By default, data sync is enabled to guarantee durability of writes.
    242. # Beware: while disabling data sync in the Bookie journal might improve the bookie write performance, it will also
    243. # introduce the possibility of data loss. With no sync, the journal entries are written in the OS page cache but
    244. # not flushed to disk. In case of power failure, the affected bookie might lose the unflushed data. If the ledger
    245. # is replicated to multiple bookies, the chances of data loss are reduced though still present.
    246. journalSyncData=true
    247. # Should we group journal force writes, which optimize group commit
    248. # for higher throughput
    249. journalAdaptiveGroupWrites=true
    250. # Maximum latency to impose on a journal write to achieve grouping
    251. journalMaxGroupWaitMSec=1
    252. # Maximum writes to buffer to achieve grouping
    253. journalBufferedWritesThreshold=524288
    254. # The number of threads that should handle journal callbacks
    255. numJournalCallbackThreads=8
    256. # All the journal writes and commits should be aligned to given size.
    257. # If not, zeros will be padded to align to given size.
    258. # It only takes effects when journalFormatVersionToWrite is set to 5
    259. journalAlignmentSize=4096
    260. # Maximum entries to buffer to impose on a journal write to achieve grouping.
    261. # journalBufferedEntriesThreshold=0
    262. # If we should flush the journal when journal queue is empty
    263. journalFlushWhenQueueEmpty=false
    264. #############################################################################
    265. ## Ledger storage settings
    266. #############################################################################
    267. # Ledger storage implementation class
    268. ledgerStorageClass=org.apache.bookkeeper.bookie.storage.ldb.DbLedgerStorage
    269. # Directory Bookkeeper outputs ledger snapshots
    270. # could define multi directories to store snapshots, separated by ','
    271. # For example:
    272. # ledgerDirectories=/tmp/bk1-data,/tmp/bk2-data
    273. #
    274. # Ideally ledger dirs and journal dir are each in a different device,
    275. # which reduce the contention between random i/o and sequential write.
    276. # It is possible to run with a single disk, but performance will be significantly lower.
    277. ledgerDirectories=data/bookkeeper/ledgers
    278. # Directories to store index files. If not specified, will use ledgerDirectories to store.
    279. # indexDirectories=data/bookkeeper/ledgers
    280. # Interval at which the auditor will do a check of all ledgers in the cluster.
    281. # By default this runs once a week. The interval is set in seconds.
    282. # To disable the periodic check completely, set this to 0.
    283. # Note that periodic checking will put extra load on the cluster, so it should
    284. # not be run more frequently than once a day.
    285. auditorPeriodicCheckInterval=604800
    286. # Whether sorted-ledger storage enabled (default true)
    287. # sortedLedgerStorageEnabled=true
    288. # The skip list data size limitation (default 64MB) in EntryMemTable
    289. # skipListSizeLimit=67108864L
    290. #############################################################################
    291. ## Ledger cache settings
    292. #############################################################################
    293. # Max number of ledger index files could be opened in bookie server
    294. # If number of ledger index files reaches this limitation, bookie
    295. # server started to swap some ledgers from memory to disk.
    296. # Too frequent swap will affect performance. You can tune this number
    297. # to gain performance according your requirements.
    298. openFileLimit=0
    299. # The fileinfo format version to write.
    300. # Available formats are 0-1:
    301. # 0: Initial version
    302. # 1: persisting explicitLac is introduced
    303. # By default, it is `1`.
    304. # If you'd like to disable persisting ExplicitLac, you can set this config to 0 and
    305. # also journalFormatVersionToWrite should be set to < 6. If there is mismatch then the
    306. # serverconfig is considered invalid.
    307. fileInfoFormatVersionToWrite=0
    308. # Size of a index page in ledger cache, in bytes
    309. # A larger index page can improve performance writing page to disk,
    310. # which is efficient when you have small number of ledgers and these
    311. # ledgers have similar number of entries.
    312. # If you have large number of ledgers and each ledger has fewer entries,
    313. # smaller index page would improve memory usage.
    314. # pageSize=8192
    315. # How many index pages provided in ledger cache
    316. # If number of index pages reaches this limitation, bookie server
    317. # starts to swap some ledgers from memory to disk. You can increment
    318. # this value when you found swap became more frequent. But make sure
    319. # pageLimit*pageSize should not more than JVM max memory limitation,
    320. # otherwise you would got OutOfMemoryException.
    321. # In general, incrementing pageLimit, using smaller index page would
    322. # gain better performance in lager number of ledgers with fewer entries case
    323. # If pageLimit is -1, bookie server will use 1/3 of JVM memory to compute
    324. # the limitation of number of index pages.
    325. pageLimit=0
    326. #############################################################################
    327. ## Ledger manager settings
    328. #############################################################################
    329. # Ledger Manager Class
    330. # What kind of ledger manager is used to manage how ledgers are stored, managed
    331. # and garbage collected. Try to read 'BookKeeper Internals' for detail info.
    332. # ledgerManagerFactoryClass=org.apache.bookkeeper.meta.HierarchicalLedgerManagerFactory
    333. # @Deprecated - `ledgerManagerType` is deprecated in favor of using `ledgerManagerFactoryClass`.
    334. # ledgerManagerType=hierarchical
    335. # Root Zookeeper path to store ledger metadata
    336. # This parameter is used by zookeeper-based ledger manager as a root znode to
    337. # store all ledgers.
    338. zkLedgersRootPath=/ledgers
    339. #############################################################################
    340. ## Entry log settings
    341. #############################################################################
    342. # Max file size of entry logger, in bytes
    343. # A new entry log file will be created when the old one reaches the file size limitation
    344. logSizeLimit=1073741824
    345. # Enable/Disable entry logger preallocation
    346. entryLogFilePreallocationEnabled=true
    347. # Entry log flush interval in bytes.
    348. # Default is 0. 0 or less disables this feature and effectively flush
    349. # happens on log rotation.
    350. # Flushing in smaller chunks but more frequently reduces spikes in disk
    351. # I/O. Flushing too frequently may also affect performance negatively.
    352. flushEntrylogBytes=268435456
    353. # The number of bytes we should use as capacity for BufferedReadChannel. Default is 512 bytes.
    354. readBufferSizeBytes=4096
    355. # The number of bytes used as capacity for the write buffer. Default is 64KB.
    356. writeBufferSizeBytes=65536
    357. # Specifies if entryLog per ledger is enabled/disabled. If it is enabled, then there would be a
    358. # active entrylog for each ledger. It would be ideal to enable this feature if the underlying
    359. # storage device has multiple DiskPartitions or SSD and if in a given moment, entries of fewer
    360. # number of active ledgers are written to a bookie.
    361. # entryLogPerLedgerEnabled=false
    362. #############################################################################
    363. ## Entry log compaction settings
    364. #############################################################################
    365. # Set the rate at which compaction will readd entries. The unit is adds per second.
    366. compactionRate=1000
    367. # If bookie is using hostname for registration and in ledger metadata then
    368. # whether to use short hostname or FQDN hostname. Defaults to false.
    369. # useShortHostName=false
    370. # Threshold of minor compaction
    371. # For those entry log files whose remaining size percentage reaches below
    372. # this threshold will be compacted in a minor compaction.
    373. # If it is set to less than zero, the minor compaction is disabled.
    374. minorCompactionThreshold=0.2
    375. # Interval to run minor compaction, in seconds
    376. # If it is set to less than zero, the minor compaction is disabled.
    377. # Note: should be greater than gcWaitTime.
    378. minorCompactionInterval=3600
    379. # Set the maximum number of entries which can be compacted without flushing.
    380. # When compacting, the entries are written to the entrylog and the new offsets
    381. # are cached in memory. Once the entrylog is flushed the index is updated with
    382. # the new offsets. This parameter controls the number of entries added to the
    383. # entrylog before a flush is forced. A higher value for this parameter means
    384. # more memory will be used for offsets. Each offset consists of 3 longs.
    385. # This parameter should _not_ be modified unless you know what you're doing.
    386. # The default is 100,000.
    387. compactionMaxOutstandingRequests=100000
    388. # Threshold of major compaction
    389. # For those entry log files whose remaining size percentage reaches below
    390. # this threshold will be compacted in a major compaction.
    391. # Those entry log files whose remaining size percentage is still
    392. # higher than the threshold will never be compacted.
    393. # If it is set to less than zero, the minor compaction is disabled.
    394. majorCompactionThreshold=0.5
    395. # Interval to run major compaction, in seconds
    396. # If it is set to less than zero, the major compaction is disabled.
    397. # Note: should be greater than gcWaitTime.
    398. majorCompactionInterval=86400
    399. # Throttle compaction by bytes or by entries.
    400. isThrottleByBytes=false
    401. # Set the rate at which compaction will readd entries. The unit is adds per second.
    402. compactionRateByEntries=1000
    403. # Set the rate at which compaction will readd entries. The unit is bytes added per second.
    404. compactionRateByBytes=1000000
    405. #############################################################################
    406. ## Statistics
    407. #############################################################################
    408. # Whether statistics are enabled
    409. # enableStatistics=true
    410. # Stats Provider Class (if statistics are enabled)
    411. statsProviderClass=org.apache.bookkeeper.stats.prometheus.PrometheusMetricsProvider
    412. # Default port for Prometheus metrics exporter
    413. prometheusStatsHttpPort=9000 # 这个是监控的端口
    414. #############################################################################
    415. ## Read-only mode support
    416. #############################################################################
    417. # If all ledger directories configured are full, then support only read requests for clients.
    418. # If "readOnlyModeEnabled=true" then on all ledger disks full, bookie will be converted
    419. # to read-only mode and serve only read requests. Otherwise the bookie will be shutdown.
    420. # By default this will be disabled.
    421. readOnlyModeEnabled=true
    422. # Whether the bookie is force started in read only mode or not
    423. # forceReadOnlyBookie=false
    424. # Persist the bookie status locally on the disks. So the bookies can keep their status upon restarts
    425. # @Since 4.6
    426. # persistBookieStatusEnabled=false
    427. #############################################################################
    428. ## Disk utilization
    429. #############################################################################
    430. # For each ledger dir, maximum disk space which can be used.
    431. # Default is 0.95f. i.e. 95% of disk can be used at most after which nothing will
    432. # be written to that partition. If all ledger dir partitions are full, then bookie
    433. # will turn to readonly mode if 'readOnlyModeEnabled=true' is set, else it will
    434. # shutdown.
    435. # Valid values should be in between 0 and 1 (exclusive).
    436. diskUsageThreshold=0.95
    437. # The disk free space low water mark threshold.
    438. # Disk is considered full when usage threshold is exceeded.
    439. # Disk returns back to non-full state when usage is below low water mark threshold.
    440. # This prevents it from going back and forth between these states frequently
    441. # when concurrent writes and compaction are happening. This also prevent bookie from
    442. # switching frequently between read-only and read-writes states in the same cases.
    443. # diskUsageWarnThreshold=0.95
    444. # Set the disk free space low water mark threshold. Disk is considered full when
    445. # usage threshold is exceeded. Disk returns back to non-full state when usage is
    446. # below low water mark threshold. This prevents it from going back and forth
    447. # between these states frequently when concurrent writes and compaction are
    448. # happening. This also prevent bookie from switching frequently between
    449. # read-only and read-writes states in the same cases.
    450. # diskUsageLwmThreshold=0.90
    451. # Disk check interval in milli seconds, interval to check the ledger dirs usage.
    452. # Default is 10000
    453. diskCheckInterval=10000
    454. #############################################################################
    455. ## ZooKeeper parameters
    456. #############################################################################
    457. # A list of one of more servers on which Zookeeper is running.
    458. # The server list can be comma separated values, for example:
    459. # zkServers=zk1:2181,zk2:2181,zk3:2181
    460. zkServers=192.168.33.3:2181,192.168.33.4:2181,192.168.33.5:2181 # 修改 为zk集群的地址
    461. # ZooKeeper client session timeout in milliseconds
    462. # Bookie server will exit if it received SESSION_EXPIRED because it
    463. # was partitioned off from ZooKeeper for more than the session timeout
    464. # JVM garbage collection, disk I/O will cause SESSION_EXPIRED.
    465. # Increment this value could help avoiding this issue
    466. zkTimeout=30000
    467. # The Zookeeper client backoff retry start time in millis.
    468. # zkRetryBackoffStartMs=1000
    469. # The Zookeeper client backoff retry max time in millis.
    470. # zkRetryBackoffMaxMs=10000
    471. # Set ACLs on every node written on ZooKeeper, this way only allowed users
    472. # will be able to read and write BookKeeper metadata stored on ZooKeeper.
    473. # In order to make ACLs work you need to setup ZooKeeper JAAS authentication
    474. # all the bookies and Client need to share the same user, and this is usually
    475. # done using Kerberos authentication. See ZooKeeper documentation
    476. zkEnableSecurity=false
    477. #############################################################################
    478. ## Server parameters
    479. #############################################################################
    480. # The flag enables/disables starting the admin http server. Default value is 'false'.
    481. httpServerEnabled=false
    482. # The http server port to listen on. Default value is 8080.
    483. # Use `8000` as the port to keep it consistent with prometheus stats provider
    484. httpServerPort=8080 # 这个是pulsar-admin 连接的端口
    485. # The http server class
    486. httpServerClass=org.apache.bookkeeper.http.vertx.VertxHttpServer
    487. # Configure a list of server components to enable and load on a bookie server.
    488. # This provides the plugin run extra services along with a bookie server.
    489. #
    490. # extraServerComponents=
    491. #############################################################################
    492. ## DB Ledger storage configuration
    493. #############################################################################
    494. # These configs are used when the selected 'ledgerStorageClass' is
    495. # org.apache.bookkeeper.bookie.storage.ldb.DbLedgerStorage
    496. # Size of Write Cache. Memory is allocated from JVM direct memory.
    497. # Write cache is used to buffer entries before flushing into the entry log
    498. # For good performance, it should be big enough to hold a substantial amount
    499. # of entries in the flush interval
    500. # By default it will be allocated to 1/4th of the available direct memory
    501. dbStorage_writeCacheMaxSizeMb=
    502. # Size of Read cache. Memory is allocated from JVM direct memory.
    503. # This read cache is pre-filled doing read-ahead whenever a cache miss happens
    504. # By default it will be allocated to 1/4th of the available direct memory
    505. dbStorage_readAheadCacheMaxSizeMb=
    506. # How many entries to pre-fill in cache after a read cache miss
    507. dbStorage_readAheadCacheBatchSize=1000
    508. ## RocksDB specific configurations
    509. ## DbLedgerStorage uses RocksDB to store the indexes from
    510. ## (ledgerId, entryId) -> (entryLog, offset)
    511. # Size of RocksDB block-cache. For best performance, this cache
    512. # should be big enough to hold a significant portion of the index
    513. # database which can reach ~2GB in some cases
    514. # Default is to use 10% of the direct memory size
    515. dbStorage_rocksDB_blockCacheSize=
    516. # Other RocksDB specific tunables
    517. dbStorage_rocksDB_writeBufferSizeMB=64
    518. dbStorage_rocksDB_sstSizeInMB=64
    519. dbStorage_rocksDB_blockSize=65536
    520. dbStorage_rocksDB_bloomFilterBitsPerKey=10
    521. dbStorage_rocksDB_numLevels=-1
    522. dbStorage_rocksDB_numFilesInLevel0=4
    523. dbStorage_rocksDB_maxSizeInLevel1MB=256