Page MenuHomePhabricator
Paste P59428

Kafka configuration diff between 1.1 and 3.5
ActivePublic

Authored by brouberol on Apr 4 2024, 8:10 AM.
Tags
None
Referenced Files
F44456147: kafka-config-diff-from-1_1-to-3_5.json
Apr 4 2024, 8:11 AM
F44456047: raw-paste-data.txt
Apr 4 2024, 8:10 AM
Subscribers
None
╒═════════════════════════════════════════╤════════════╤═════════════════════════════════════════╤═════════╤══════════╤══════════════════════╤══════════════╤═══════════════╤═════════════════════╤═══════════════════════════╕
│ name │ status │ description │ scope │ type │ valid_values │ importance │ update_mode │ default (1.1) │ default (3.5) │
╞═════════════════════════════════════════╪════════════╪═════════════════════════════════════════╪═════════╪══════════╪══════════════════════╪══════════════╪═══════════════╪═════════════════════╪═══════════════════════════╡
│ advertised.host.name │ deprecated │ DEPRECATED: only used when `advertised. │ broker │ string │ │ high │ read-only │ null │ [REMOVED] │
│ │ │ listeners` or `listeners` are not set. │ │ │ │ │ │ │ │
│ │ │ Use `advertised.listeners` instead. │ │ │ │ │ │ │ │
│ │ │ Ho │ │ │ │ │ │ │ │
│ │ │ stname to publish to ZooKeeper for clie │ │ │ │ │ │ │ │
│ │ │ nts to use. In IaaS environments, this │ │ │ │ │ │ │ │
│ │ │ may need to be different from the inter │ │ │ │ │ │ │ │
│ │ │ face to which the broker binds. If this │ │ │ │ │ │ │ │
│ │ │ is not set, it will use the value for │ │ │ │ │ │ │ │
│ │ │ `host.name` if configured. Otherwise it │ │ │ │ │ │ │ │
│ │ │ will use the value returned from java. │ │ │ │ │ │ │ │
│ │ │ net.InetAddress.getCanonicalHostName(). │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ advertised.port │ deprecated │ DEPRECATED: only used when `advertised. │ broker │ int │ │ high │ read-only │ null │ [REMOVED] │
│ │ │ listeners` or `listeners` are not set. │ │ │ │ │ │ │ │
│ │ │ Use `advertised.listeners` instead. │ │ │ │ │ │ │ │
│ │ │ Th │ │ │ │ │ │ │ │
│ │ │ e port to publish to ZooKeeper for clie │ │ │ │ │ │ │ │
│ │ │ nts to use. In IaaS environments, this │ │ │ │ │ │ │ │
│ │ │ may need to be different from the port │ │ │ │ │ │ │ │
│ │ │ to which the broker binds. If this is n │ │ │ │ │ │ │ │
│ │ │ ot set, it will publish the same port t │ │ │ │ │ │ │ │
│ │ │ hat the broker binds to. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ host.name │ deprecated │ DEPRECATED: only used when `listeners` │ broker │ string │ │ high │ read-only │ "" │ [REMOVED] │
│ │ │ is not set. Use `listeners` instead. │ │ │ │ │ │ │ │
│ │ │ h │ │ │ │ │ │ │ │
│ │ │ ostname of broker. If this is set, it w │ │ │ │ │ │ │ │
│ │ │ ill only bind to this address. If this │ │ │ │ │ │ │ │
│ │ │ is not set, it will bind to all interfa │ │ │ │ │ │ │ │
│ │ │ ces │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ port │ deprecated │ DEPRECATED: only used when `listeners` │ broker │ int │ │ high │ read-only │ 9092 │ [REMOVED] │
│ │ │ is not set. Use `listeners` instead. │ │ │ │ │ │ │ │
│ │ │ t │ │ │ │ │ │ │ │
│ │ │ he port to listen and accept connection │ │ │ │ │ │ │ │
│ │ │ s on │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ quota.consumer.default │ deprecated │ DEPRECATED: Used only when dynamic defa │ broker │ long │ [1,...] │ high │ read-only │ 9223372036854775807 │ [REMOVED] │
│ │ │ ult quotas are not configured for or │ │ │ │ │ │ │ │
│ │ │ in Zookeeper. Any consumer distinguishe │ │ │ │ │ │ │ │
│ │ │ d by clientId/consumer group will get t │ │ │ │ │ │ │ │
│ │ │ hrottled if it fetches more bytes than │ │ │ │ │ │ │ │
│ │ │ this value per-second │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ quota.producer.default │ deprecated │ DEPRECATED: Used only when dynamic defa │ broker │ long │ [1,...] │ high │ read-only │ 9223372036854775807 │ [REMOVED] │
│ │ │ ult quotas are not configured for , or │ │ │ │ │ │ │ │
│ │ │ in Zookeeper. Any producer distinguis │ │ │ │ │ │ │ │
│ │ │ hed by clientId will get throttled if i │ │ │ │ │ │ │ │
│ │ │ t produces more bytes than this value p │ │ │ │ │ │ │ │
│ │ │ er-second │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ zookeeper.sync.time.ms │ deprecated │ How far a ZK follower can be behind a Z │ broker │ int │ │ low │ read-only │ 2000 │ [REMOVED] │
│ │ │ K leader │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ control.plane.listener.name │ new │ Name of listener used for communication │ broker │ string │ │ high │ read-only │ [ABSENT] │ null │
│ │ │ between controller and brokers. Broker │ │ │ │ │ │ │ │
│ │ │ will use the control.plane.listener.na │ │ │ │ │ │ │ │
│ │ │ me to locate the endpoint in listeners │ │ │ │ │ │ │ │
│ │ │ list, to listen for connections from th │ │ │ │ │ │ │ │
│ │ │ e controller. For example, if a broker' │ │ │ │ │ │ │ │
│ │ │ s config is :listeners = INTERNAL://192 │ │ │ │ │ │ │ │
│ │ │ .1.1.8:9092, EXTERNAL://10.1.1.5:9093, │ │ │ │ │ │ │ │
│ │ │ CONTROLLER://192.1.1.8:9094listener.sec │ │ │ │ │ │ │ │
│ │ │ urity.protocol.map = INTERNAL:PLAINTEXT │ │ │ │ │ │ │ │
│ │ │ , EXTERNAL:SSL, CONTROLLER:SSLcontrol.p │ │ │ │ │ │ │ │
│ │ │ lane.listener.name = CONTROLLEROn start │ │ │ │ │ │ │ │
│ │ │ up, the broker will start listening on │ │ │ │ │ │ │ │
│ │ │ "192.1.1.8:9094" with security protocol │ │ │ │ │ │ │ │
│ │ │ "SSL".On controller side, when it disc │ │ │ │ │ │ │ │
│ │ │ overs a broker's published endpoints th │ │ │ │ │ │ │ │
│ │ │ rough zookeeper, it will use the contro │ │ │ │ │ │ │ │
│ │ │ l.plane.listener.name to find the endpo │ │ │ │ │ │ │ │
│ │ │ int, which it will use to establish con │ │ │ │ │ │ │ │
│ │ │ nection to the broker.For example, if t │ │ │ │ │ │ │ │
│ │ │ he broker's published endpoints on zook │ │ │ │ │ │ │ │
│ │ │ eeper are :"endpoints" : ["INTERNAL://b │ │ │ │ │ │ │ │
│ │ │ roker1.example.com:9092","EXTERNAL://br │ │ │ │ │ │ │ │
│ │ │ oker1.example.com:9093","CONTROLLER://b │ │ │ │ │ │ │ │
│ │ │ roker1.example.com:9094"] and the contr │ │ │ │ │ │ │ │
│ │ │ oller's config is :listener.security.pr │ │ │ │ │ │ │ │
│ │ │ otocol.map = INTERNAL:PLAINTEXT, EXTERN │ │ │ │ │ │ │ │
│ │ │ AL:SSL, CONTROLLER:SSLcontrol.plane.lis │ │ │ │ │ │ │ │
│ │ │ tener.name = CONTROLLERthen controller │ │ │ │ │ │ │ │
│ │ │ will use "broker1.example.com:9094" wit │ │ │ │ │ │ │ │
│ │ │ h security protocol "SSL" to connect to │ │ │ │ │ │ │ │
│ │ │ the broker.If not explicitly configure │ │ │ │ │ │ │ │
│ │ │ d, the default value will be null and t │ │ │ │ │ │ │ │
│ │ │ here will be no dedicated endpoints for │ │ │ │ │ │ │ │
│ │ │ controller connections.If explicitly c │ │ │ │ │ │ │ │
│ │ │ onfigured, the value cannot be the same │ │ │ │ │ │ │ │
│ │ │ as the value of inter.broker.listener. │ │ │ │ │ │ │ │
│ │ │ name. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ controller.listener.names │ new │ A comma-separated list of the names of │ broker │ string │ │ high │ read-only │ [ABSENT] │ null │
│ │ │ the listeners used by the controller. T │ │ │ │ │ │ │ │
│ │ │ his is required if running in KRaft mod │ │ │ │ │ │ │ │
│ │ │ e. When communicating with the controll │ │ │ │ │ │ │ │
│ │ │ er quorum, the broker will always use t │ │ │ │ │ │ │ │
│ │ │ he first listener in this list. Note: T │ │ │ │ │ │ │ │
│ │ │ he ZK-based controller should not set t │ │ │ │ │ │ │ │
│ │ │ his configuration. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ controller.quorum.election.backoff.max. │ new │ Maximum time in milliseconds before sta │ broker │ int │ │ high │ read-only │ [ABSENT] │ 1000 (1 second) │
│ ms │ │ rting new elections. This is used in th │ │ │ │ │ │ │ │
│ │ │ e binary exponential backoff mechanism │ │ │ │ │ │ │ │
│ │ │ that helps prevent gridlocked elections │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ controller.quorum.election.timeout.ms │ new │ Maximum time in milliseconds to wait wi │ broker │ int │ │ high │ read-only │ [ABSENT] │ 1000 (1 second) │
│ │ │ thout being able to fetch from the lead │ │ │ │ │ │ │ │
│ │ │ er before triggering a new election │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ controller.quorum.fetch.timeout.ms │ new │ Maximum time without a successful fetch │ broker │ int │ │ high │ read-only │ [ABSENT] │ 2000 (2 seconds) │
│ │ │ from the current leader before becomin │ │ │ │ │ │ │ │
│ │ │ g a candidate and triggering an electio │ │ │ │ │ │ │ │
│ │ │ n for voters; Maximum time without rece │ │ │ │ │ │ │ │
│ │ │ iving fetch from a majority of the quor │ │ │ │ │ │ │ │
│ │ │ um before asking around to see if there │ │ │ │ │ │ │ │
│ │ │ 's a new epoch for leader │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ controller.quorum.voters │ new │ Map of id/endpoint information for the │ broker │ list │ non-empty list │ high │ read-only │ [ABSENT] │ "" │
│ │ │ set of voters in a comma-separated list │ │ │ │ │ │ │ │
│ │ │ of `{id}@{host}:{port}` entries. For e │ │ │ │ │ │ │ │
│ │ │ xample: `1@localhost:9092,2@localhost:9 │ │ │ │ │ │ │ │
│ │ │ 093,3@localhost:9094` │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ early.start.listeners │ new │ A comma-separated list of listener name │ broker │ string │ │ high │ read-only │ [ABSENT] │ null │
│ │ │ s which may be started before the autho │ │ │ │ │ │ │ │
│ │ │ rizer has finished initialization. This │ │ │ │ │ │ │ │
│ │ │ is useful when the authorizer is depen │ │ │ │ │ │ │ │
│ │ │ dent on the cluster itself for bootstra │ │ │ │ │ │ │ │
│ │ │ pping, as is the case for the StandardA │ │ │ │ │ │ │ │
│ │ │ uthorizer (which stores ACLs in the met │ │ │ │ │ │ │ │
│ │ │ adata log.) By default, all listeners i │ │ │ │ │ │ │ │
│ │ │ ncluded in controller.listener.names wi │ │ │ │ │ │ │ │
│ │ │ ll also be early start listeners. A lis │ │ │ │ │ │ │ │
│ │ │ tener should not appear in this list if │ │ │ │ │ │ │ │
│ │ │ it accepts external traffic. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ metadata.log.dir │ new │ This configuration determines where we │ broker │ string │ │ high │ read-only │ [ABSENT] │ null │
│ │ │ put the metadata log for clusters in KR │ │ │ │ │ │ │ │
│ │ │ aft mode. If it is not set, the metadat │ │ │ │ │ │ │ │
│ │ │ a log is placed in the first log direct │ │ │ │ │ │ │ │
│ │ │ ory from log.dirs. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ metadata.log.max.record.bytes.between.s │ new │ This is the maximum number of bytes in │ broker │ long │ [1,...] │ high │ read-only │ [ABSENT] │ 20971520 │
│ napshots │ │ the log between the latest snapshot and │ │ │ │ │ │ │ │
│ │ │ the high-watermark needed before gener │ │ │ │ │ │ │ │
│ │ │ ating a new snapshot. The default value │ │ │ │ │ │ │ │
│ │ │ is 20971520. To generate snapshots bas │ │ │ │ │ │ │ │
│ │ │ ed on the time elapsed, see the metadat │ │ │ │ │ │ │ │
│ │ │ a.log.max.snapshot.interval.ms configur │ │ │ │ │ │ │ │
│ │ │ ation. The Kafka node will generate a s │ │ │ │ │ │ │ │
│ │ │ napshot when either the maximum time in │ │ │ │ │ │ │ │
│ │ │ terval is reached or the maximum bytes │ │ │ │ │ │ │ │
│ │ │ limit is reached. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ metadata.log.max.snapshot.interval.ms │ new │ This is the maximum number of milliseco │ broker │ long │ [0,...] │ high │ read-only │ [ABSENT] │ 3600000 (1 hour) │
│ │ │ nds to wait to generate a snapshot if t │ │ │ │ │ │ │ │
│ │ │ here are committed records in the log t │ │ │ │ │ │ │ │
│ │ │ hat are not included in the latest snap │ │ │ │ │ │ │ │
│ │ │ shot. A value of zero disables time bas │ │ │ │ │ │ │ │
│ │ │ ed snapshot generation. The default val │ │ │ │ │ │ │ │
│ │ │ ue is 3600000. To generate snapshots ba │ │ │ │ │ │ │ │
│ │ │ sed on the number of metadata bytes, se │ │ │ │ │ │ │ │
│ │ │ e the metadata.log.max.record.bytes.bet │ │ │ │ │ │ │ │
│ │ │ ween.snapshots configuration. The Kafka │ │ │ │ │ │ │ │
│ │ │ node will generate a snapshot when eit │ │ │ │ │ │ │ │
│ │ │ her the maximum time interval is reache │ │ │ │ │ │ │ │
│ │ │ d or the maximum bytes limit is reached │ │ │ │ │ │ │ │
│ │ │ . │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ metadata.log.segment.bytes │ new │ The maximum size of a single metadata l │ broker │ int │ [12,...] │ high │ read-only │ [ABSENT] │ 1073741824 (1 gibibyte) │
│ │ │ og file. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ metadata.log.segment.ms │ new │ The maximum time before a new metadata │ broker │ long │ │ high │ read-only │ [ABSENT] │ 604800000 (7 days) │
│ │ │ log file is rolled out (in milliseconds │ │ │ │ │ │ │ │
│ │ │ ). │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ metadata.max.retention.bytes │ new │ The maximum combined size of the metada │ broker │ long │ │ high │ read-only │ [ABSENT] │ 104857600 (100 mebibytes) │
│ │ │ ta log and snapshots before deleting ol │ │ │ │ │ │ │ │
│ │ │ d snapshots and log files. Since at lea │ │ │ │ │ │ │ │
│ │ │ st one snapshot must exist before any l │ │ │ │ │ │ │ │
│ │ │ ogs can be deleted, this is a soft limi │ │ │ │ │ │ │ │
│ │ │ t. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ metadata.max.retention.ms │ new │ The number of milliseconds to keep a me │ broker │ long │ │ high │ read-only │ [ABSENT] │ 604800000 (7 days) │
│ │ │ tadata log file or snapshot before dele │ │ │ │ │ │ │ │
│ │ │ ting it. Since at least one snapshot mu │ │ │ │ │ │ │ │
│ │ │ st exist before any logs can be deleted │ │ │ │ │ │ │ │
│ │ │ , this is a soft limit. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ node.id │ new │ The node ID associated with the roles t │ broker │ int │ │ high │ read-only │ [ABSENT] │ -1 │
│ │ │ his process is playing when `process.ro │ │ │ │ │ │ │ │
│ │ │ les` is non-empty. This is required con │ │ │ │ │ │ │ │
│ │ │ figuration when running in KRaft mode. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ process.roles │ new │ The roles that this process plays: 'bro │ broker │ list │ [broker, controller] │ high │ read-only │ [ABSENT] │ "" │
│ │ │ ker', 'controller', or 'broker,controll │ │ │ │ │ │ │ │
│ │ │ er' if it is both. This configuration i │ │ │ │ │ │ │ │
│ │ │ s only applicable for clusters in KRaft │ │ │ │ │ │ │ │
│ │ │ (Kafka Raft) mode (instead of ZooKeepe │ │ │ │ │ │ │ │
│ │ │ r). Leave this config undefined or empt │ │ │ │ │ │ │ │
│ │ │ y for Zookeeper clusters. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ sasl.mechanism.controller.protocol │ new │ SASL mechanism used for communication w │ broker │ string │ │ high │ read-only │ [ABSENT] │ GSSAPI │
│ │ │ ith controllers. Default is GSSAPI. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ zookeeper.metadata.migration.enable │ new │ Enable ZK to KRaft migration │ broker │ boolean │ │ high │ read-only │ [ABSENT] │ false │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ broker.heartbeat.interval.ms │ new │ The length of time in milliseconds betw │ broker │ int │ │ medium │ read-only │ [ABSENT] │ 2000 (2 seconds) │
│ │ │ een broker heartbeats. Used when runnin │ │ │ │ │ │ │ │
│ │ │ g in KRaft mode. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ broker.session.timeout.ms │ new │ The length of time in milliseconds that │ broker │ int │ │ medium │ read-only │ [ABSENT] │ 9000 (9 seconds) │
│ │ │ a broker lease lasts if no heartbeats │ │ │ │ │ │ │ │
│ │ │ are made. Used when running in KRaft mo │ │ │ │ │ │ │ │
│ │ │ de. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ connections.max.reauth.ms │ new │ When explicitly set to a positive numbe │ broker │ long │ │ medium │ read-only │ [ABSENT] │ 0 │
│ │ │ r (the default is 0, not a positive num │ │ │ │ │ │ │ │
│ │ │ ber), a session lifetime that will not │ │ │ │ │ │ │ │
│ │ │ exceed the configured value will be com │ │ │ │ │ │ │ │
│ │ │ municated to v2.2.0 or later clients wh │ │ │ │ │ │ │ │
│ │ │ en they authenticate. The broker will d │ │ │ │ │ │ │ │
│ │ │ isconnect any such connection that is n │ │ │ │ │ │ │ │
│ │ │ ot re-authenticated within the session │ │ │ │ │ │ │ │
│ │ │ lifetime and that is then subsequently │ │ │ │ │ │ │ │
│ │ │ used for any purpose other than re-auth │ │ │ │ │ │ │ │
│ │ │ entication. Configuration names can opt │ │ │ │ │ │ │ │
│ │ │ ionally be prefixed with listener prefi │ │ │ │ │ │ │ │
│ │ │ x and SASL mechanism name in lower-case │ │ │ │ │ │ │ │
│ │ │ . For example, listener.name.sasl_ssl.o │ │ │ │ │ │ │ │
│ │ │ authbearer.connections.max.reauth.ms=36 │ │ │ │ │ │ │ │
│ │ │ 00000 │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ controller.quorum.append.linger.ms │ new │ The duration in milliseconds that the l │ broker │ int │ │ medium │ read-only │ [ABSENT] │ 25 │
│ │ │ eader will wait for writes to accumulat │ │ │ │ │ │ │ │
│ │ │ e before flushing them to disk. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ controller.quorum.request.timeout.ms │ new │ The configuration controls the maximum │ broker │ int │ │ medium │ read-only │ [ABSENT] │ 2000 (2 seconds) │
│ │ │ amount of time the client will wait for │ │ │ │ │ │ │ │
│ │ │ the response of a request. If the resp │ │ │ │ │ │ │ │
│ │ │ onse is not received before the timeout │ │ │ │ │ │ │ │
│ │ │ elapses the client will resend the req │ │ │ │ │ │ │ │
│ │ │ uest if necessary or fail the request i │ │ │ │ │ │ │ │
│ │ │ f retries are exhausted. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ delegation.token.secret.key │ new │ Secret key to generate and verify deleg │ broker │ password │ │ medium │ read-only │ [ABSENT] │ null │
│ │ │ ation tokens. The same key must be conf │ │ │ │ │ │ │ │
│ │ │ igured across all the brokers. If the │ │ │ │ │ │ │ │
│ │ │ key is not set or set to empty string, │ │ │ │ │ │ │ │
│ │ │ brokers will disable the delegation tok │ │ │ │ │ │ │ │
│ │ │ en support. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ fetch.max.bytes │ new │ The maximum number of bytes we will ret │ broker │ int │ [1024,...] │ medium │ read-only │ [ABSENT] │ 57671680 (55 mebibytes) │
│ │ │ urn for a fetch request. Must be at lea │ │ │ │ │ │ │ │
│ │ │ st 1024. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ group.max.size │ new │ The maximum number of consumers that a │ broker │ int │ [1,...] │ medium │ read-only │ [ABSENT] │ 2147483647 │
│ │ │ single consumer group can accommodate. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ initial.broker.registration.timeout.ms │ new │ When initially registering with the con │ broker │ int │ │ medium │ read-only │ [ABSENT] │ 60000 (1 minute) │
│ │ │ troller quorum, the number of milliseco │ │ │ │ │ │ │ │
│ │ │ nds to wait before declaring failure an │ │ │ │ │ │ │ │
│ │ │ d exiting the broker process. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ log.cleaner.max.compaction.lag.ms │ new │ The maximum time a message will remain │ broker │ long │ [1,...] │ medium │ cluster-wide │ [ABSENT] │ 9223372036854775807 │
│ │ │ ineligible for compaction in the log. O │ │ │ │ │ │ │ │
│ │ │ nly applicable for logs that are being │ │ │ │ │ │ │ │
│ │ │ compacted. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ max.connection.creation.rate │ new │ The maximum connection creation rate we │ broker │ int │ [0,...] │ medium │ cluster-wide │ [ABSENT] │ 2147483647 │
│ │ │ allow in the broker at any time. Liste │ │ │ │ │ │ │ │
│ │ │ ner-level limits may also be configured │ │ │ │ │ │ │ │
│ │ │ by prefixing the config name with the │ │ │ │ │ │ │ │
│ │ │ listener prefix, for example, listener. │ │ │ │ │ │ │ │
│ │ │ name.internal.max.connection.creation.r │ │ │ │ │ │ │ │
│ │ │ ate.Broker-wide connection rate limit s │ │ │ │ │ │ │ │
│ │ │ hould be configured based on broker cap │ │ │ │ │ │ │ │
│ │ │ acity while listener limits should be c │ │ │ │ │ │ │ │
│ │ │ onfigured based on application requirem │ │ │ │ │ │ │ │
│ │ │ ents. New connections will be throttled │ │ │ │ │ │ │ │
│ │ │ if either the listener or the broker l │ │ │ │ │ │ │ │
│ │ │ imit is reached, with the exception of │ │ │ │ │ │ │ │
│ │ │ inter-broker listener. Connections on t │ │ │ │ │ │ │ │
│ │ │ he inter-broker listener will be thrott │ │ │ │ │ │ │ │
│ │ │ led only when the listener-level rate l │ │ │ │ │ │ │ │
│ │ │ imit is reached. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ max.connections │ new │ The maximum number of connections we al │ broker │ int │ [0,...] │ medium │ cluster-wide │ [ABSENT] │ 2147483647 │
│ │ │ low in the broker at any time. This lim │ │ │ │ │ │ │ │
│ │ │ it is applied in addition to any per-ip │ │ │ │ │ │ │ │
│ │ │ limits configured using max.connection │ │ │ │ │ │ │ │
│ │ │ s.per.ip. Listener-level limits may als │ │ │ │ │ │ │ │
│ │ │ o be configured by prefixing the config │ │ │ │ │ │ │ │
│ │ │ name with the listener prefix, for exa │ │ │ │ │ │ │ │
│ │ │ mple, listener.name.internal.max.connec │ │ │ │ │ │ │ │
│ │ │ tions. Broker-wide limit should be conf │ │ │ │ │ │ │ │
│ │ │ igured based on broker capacity while l │ │ │ │ │ │ │ │
│ │ │ istener limits should be configured bas │ │ │ │ │ │ │ │
│ │ │ ed on application requirements. New con │ │ │ │ │ │ │ │
│ │ │ nections are blocked if either the list │ │ │ │ │ │ │ │
│ │ │ ener or broker limit is reached. Connec │ │ │ │ │ │ │ │
│ │ │ tions on the inter-broker listener are │ │ │ │ │ │ │ │
│ │ │ permitted even if broker-wide limit is │ │ │ │ │ │ │ │
│ │ │ reached. The least recently used connec │ │ │ │ │ │ │ │
│ │ │ tion on another listener will be closed │ │ │ │ │ │ │ │
│ │ │ in this case. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ replica.selector.class │ new │ The fully qualified class name that imp │ broker │ string │ │ medium │ read-only │ [ABSENT] │ null │
│ │ │ lements ReplicaSelector. This is used b │ │ │ │ │ │ │ │
│ │ │ y the broker to find the preferred read │ │ │ │ │ │ │ │
│ │ │ replica. By default, we use an impleme │ │ │ │ │ │ │ │
│ │ │ ntation that returns the leader. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ sasl.client.callback.handler.class │ new │ The fully qualified name of a SASL clie │ broker │ class │ │ medium │ read-only │ [ABSENT] │ null │
│ │ │ nt callback handler class that implemen │ │ │ │ │ │ │ │
│ │ │ ts the AuthenticateCallbackHandler inte │ │ │ │ │ │ │ │
│ │ │ rface. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ sasl.login.callback.handler.class │ new │ The fully qualified name of a SASL logi │ broker │ class │ │ medium │ read-only │ [ABSENT] │ null │
│ │ │ n callback handler class that implement │ │ │ │ │ │ │ │
│ │ │ s the AuthenticateCallbackHandler inter │ │ │ │ │ │ │ │
│ │ │ face. For brokers, login callback handl │ │ │ │ │ │ │ │
│ │ │ er config must be prefixed with listene │ │ │ │ │ │ │ │
│ │ │ r prefix and SASL mechanism name in low │ │ │ │ │ │ │ │
│ │ │ er-case. For example, listener.name.sas │ │ │ │ │ │ │ │
│ │ │ l_ssl.scram-sha-256.sasl.login.callback │ │ │ │ │ │ │ │
│ │ │ .handler.class=com.example.CustomScramL │ │ │ │ │ │ │ │
│ │ │ oginCallbackHandler │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ sasl.login.class │ new │ The fully qualified name of a class tha │ broker │ class │ │ medium │ read-only │ [ABSENT] │ null │
│ │ │ t implements the Login interface. For b │ │ │ │ │ │ │ │
│ │ │ rokers, login config must be prefixed w │ │ │ │ │ │ │ │
│ │ │ ith listener prefix and SASL mechanism │ │ │ │ │ │ │ │
│ │ │ name in lower-case. For example, listen │ │ │ │ │ │ │ │
│ │ │ er.name.sasl_ssl.scram-sha-256.sasl.log │ │ │ │ │ │ │ │
│ │ │ in.class=com.example.CustomScramLogin │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ sasl.login.refresh.buffer.seconds │ new │ The amount of buffer time before creden │ broker │ short │ │ medium │ per-broker │ [ABSENT] │ 300 │
│ │ │ tial expiration to maintain when refres │ │ │ │ │ │ │ │
│ │ │ hing a credential, in seconds. If a ref │ │ │ │ │ │ │ │
│ │ │ resh would otherwise occur closer to ex │ │ │ │ │ │ │ │
│ │ │ piration than the number of buffer seco │ │ │ │ │ │ │ │
│ │ │ nds then the refresh will be moved up t │ │ │ │ │ │ │ │
│ │ │ o maintain as much of the buffer time a │ │ │ │ │ │ │ │
│ │ │ s possible. Legal values are between 0 │ │ │ │ │ │ │ │
│ │ │ and 3600 (1 hour); a default value of │ │ │ │ │ │ │ │
│ │ │ 300 (5 minutes) is used if no value is │ │ │ │ │ │ │ │
│ │ │ specified. This value and sasl.login.re │ │ │ │ │ │ │ │
│ │ │ fresh.min.period.seconds are both ignor │ │ │ │ │ │ │ │
│ │ │ ed if their sum exceeds the remaining l │ │ │ │ │ │ │ │
│ │ │ ifetime of a credential. Currently appl │ │ │ │ │ │ │ │
│ │ │ ies only to OAUTHBEARER. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ sasl.login.refresh.min.period.seconds │ new │ The desired minimum time for the login │ broker │ short │ │ medium │ per-broker │ [ABSENT] │ 60 │
│ │ │ refresh thread to wait before refreshin │ │ │ │ │ │ │ │
│ │ │ g a credential, in seconds. Legal value │ │ │ │ │ │ │ │
│ │ │ s are between 0 and 900 (15 minutes); a │ │ │ │ │ │ │ │
│ │ │ default value of 60 (1 minute) is used │ │ │ │ │ │ │ │
│ │ │ if no value is specified. This value │ │ │ │ │ │ │ │
│ │ │ and sasl.login.refresh.buffer.seconds │ │ │ │ │ │ │ │
│ │ │ are both ignored if their sum exceeds t │ │ │ │ │ │ │ │
│ │ │ he remaining lifetime of a credential. │ │ │ │ │ │ │ │
│ │ │ Currently applies only to OAUTHBEARER. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ sasl.login.refresh.window.factor │ new │ Login refresh thread will sleep until t │ broker │ double │ │ medium │ per-broker │ [ABSENT] │ 0.8 │
│ │ │ he specified window factor relative to │ │ │ │ │ │ │ │
│ │ │ the credential's lifetime has been reac │ │ │ │ │ │ │ │
│ │ │ hed, at which time it will try to refre │ │ │ │ │ │ │ │
│ │ │ sh the credential. Legal values are bet │ │ │ │ │ │ │ │
│ │ │ ween 0.5 (50%) and 1.0 (100%) inclusive │ │ │ │ │ │ │ │
│ │ │ ; a default value of 0.8 (80%) is used │ │ │ │ │ │ │ │
│ │ │ if no value is specified. Currently app │ │ │ │ │ │ │ │
│ │ │ lies only to OAUTHBEARER. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ sasl.login.refresh.window.jitter │ new │ The maximum amount of random jitter rel │ broker │ double │ │ medium │ per-broker │ [ABSENT] │ 0.05 │
│ │ │ ative to the credential's lifetime that │ │ │ │ │ │ │ │
│ │ │ is added to the login refresh thread's │ │ │ │ │ │ │ │
│ │ │ sleep time. Legal values are between 0 │ │ │ │ │ │ │ │
│ │ │ and 0.25 (25%) inclusive; a default va │ │ │ │ │ │ │ │
│ │ │ lue of 0.05 (5%) is used if no value is │ │ │ │ │ │ │ │
│ │ │ specified. Currently applies only to O │ │ │ │ │ │ │ │
│ │ │ AUTHBEARER. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ sasl.oauthbearer.jwks.endpoint.url │ new │ The OAuth/OIDC provider URL from which │ broker │ string │ │ medium │ read-only │ [ABSENT] │ null │
│ │ │ the provider's JWKS (JSON Web Key Set) │ │ │ │ │ │ │ │
│ │ │ can be retrieved. The URL can be HTTP(S │ │ │ │ │ │ │ │
│ │ │ )-based or file-based. If the URL is HT │ │ │ │ │ │ │ │
│ │ │ TP(S)-based, the JWKS data will be retr │ │ │ │ │ │ │ │
│ │ │ ieved from the OAuth/OIDC provider via │ │ │ │ │ │ │ │
│ │ │ the configured URL on broker startup. A │ │ │ │ │ │ │ │
│ │ │ ll then-current keys will be cached on │ │ │ │ │ │ │ │
│ │ │ the broker for incoming requests. If an │ │ │ │ │ │ │ │
│ │ │ authentication request is received for │ │ │ │ │ │ │ │
│ │ │ a JWT that includes a "kid" header cla │ │ │ │ │ │ │ │
│ │ │ im value that isn't yet in the cache, t │ │ │ │ │ │ │ │
│ │ │ he JWKS endpoint will be queried again │ │ │ │ │ │ │ │
│ │ │ on demand. However, the broker polls th │ │ │ │ │ │ │ │
│ │ │ e URL every sasl.oauthbearer.jwks.endpo │ │ │ │ │ │ │ │
│ │ │ int.refresh.ms milliseconds to refresh │ │ │ │ │ │ │ │
│ │ │ the cache with any forthcoming keys bef │ │ │ │ │ │ │ │
│ │ │ ore any JWT requests that include them │ │ │ │ │ │ │ │
│ │ │ are received. If the URL is file-based, │ │ │ │ │ │ │ │
│ │ │ the broker will load the JWKS file fro │ │ │ │ │ │ │ │
│ │ │ m a configured location on startup. In │ │ │ │ │ │ │ │
│ │ │ the event that the JWT includes a "kid" │ │ │ │ │ │ │ │
│ │ │ header value that isn't in the JWKS fi │ │ │ │ │ │ │ │
│ │ │ le, the broker will reject the JWT and │ │ │ │ │ │ │ │
│ │ │ authentication will fail. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ sasl.oauthbearer.token.endpoint.url │ new │ The URL for the OAuth/OIDC identity pro │ broker │ string │ │ medium │ read-only │ [ABSENT] │ null │
│ │ │ vider. If the URL is HTTP(S)-based, it │ │ │ │ │ │ │ │
│ │ │ is the issuer's token endpoint URL to w │ │ │ │ │ │ │ │
│ │ │ hich requests will be made to login bas │ │ │ │ │ │ │ │
│ │ │ ed on the configuration in sasl.jaas.co │ │ │ │ │ │ │ │
│ │ │ nfig. If the URL is file-based, it spec │ │ │ │ │ │ │ │
│ │ │ ifies a file containing an access token │ │ │ │ │ │ │ │
│ │ │ (in JWT serialized form) issued by the │ │ │ │ │ │ │ │
│ │ │ OAuth/OIDC identity provider to use fo │ │ │ │ │ │ │ │
│ │ │ r authorization. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ sasl.server.callback.handler.class │ new │ The fully qualified name of a SASL serv │ broker │ class │ │ medium │ read-only │ [ABSENT] │ null │
│ │ │ er callback handler class that implemen │ │ │ │ │ │ │ │
│ │ │ ts the AuthenticateCallbackHandler inte │ │ │ │ │ │ │ │
│ │ │ rface. Server callback handlers must be │ │ │ │ │ │ │ │
│ │ │ prefixed with listener prefix and SASL │ │ │ │ │ │ │ │
│ │ │ mechanism name in lower-case. For exam │ │ │ │ │ │ │ │
│ │ │ ple, listener.name.sasl_ssl.plain.sasl. │ │ │ │ │ │ │ │
│ │ │ server.callback.handler.class=com.examp │ │ │ │ │ │ │ │
│ │ │ le.CustomPlainCallbackHandler. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ sasl.server.max.receive.size │ new │ The maximum receive size allowed before │ broker │ int │ │ medium │ read-only │ [ABSENT] │ 524288 │
│ │ │ and during initial SASL authentication │ │ │ │ │ │ │ │
│ │ │ . Default receive size is 512KB. GSSAPI │ │ │ │ │ │ │ │
│ │ │ limits requests to 64K, but we allow u │ │ │ │ │ │ │ │
│ │ │ pto 512KB by default for custom SASL me │ │ │ │ │ │ │ │
│ │ │ chanisms. In practice, PLAIN, SCRAM and │ │ │ │ │ │ │ │
│ │ │ OAUTH mechanisms can use much smaller │ │ │ │ │ │ │ │
│ │ │ limits. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ socket.connection.setup.timeout.max.ms │ new │ The maximum amount of time the client w │ broker │ long │ │ medium │ read-only │ [ABSENT] │ 30000 (30 seconds) │
│ │ │ ill wait for the socket connection to b │ │ │ │ │ │ │ │
│ │ │ e established. The connection setup tim │ │ │ │ │ │ │ │
│ │ │ eout will increase exponentially for ea │ │ │ │ │ │ │ │
│ │ │ ch consecutive connection failure up to │ │ │ │ │ │ │ │
│ │ │ this maximum. To avoid connection stor │ │ │ │ │ │ │ │
│ │ │ ms, a randomization factor of 0.2 will │ │ │ │ │ │ │ │
│ │ │ be applied to the timeout resulting in │ │ │ │ │ │ │ │
│ │ │ a random range between 20% below and 20 │ │ │ │ │ │ │ │
│ │ │ % above the computed value. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ socket.connection.setup.timeout.ms │ new │ The amount of time the client will wait │ broker │ long │ │ medium │ read-only │ [ABSENT] │ 10000 (10 seconds) │
│ │ │ for the socket connection to be establ │ │ │ │ │ │ │ │
│ │ │ ished. If the connection is not built b │ │ │ │ │ │ │ │
│ │ │ efore the timeout elapses, clients will │ │ │ │ │ │ │ │
│ │ │ close the socket channel. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ socket.listen.backlog.size │ new │ The maximum number of pending connectio │ broker │ int │ [1,...] │ medium │ read-only │ [ABSENT] │ 50 │
│ │ │ ns on the socket. In Linux, you may als │ │ │ │ │ │ │ │
│ │ │ o need to configure `somaxconn` and `tc │ │ │ │ │ │ │ │
│ │ │ p_max_syn_backlog` kernel parameters ac │ │ │ │ │ │ │ │
│ │ │ cordingly to make the configuration tak │ │ │ │ │ │ │ │
│ │ │ es effect. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ ssl.keystore.certificate.chain │ new │ Certificate chain in the format specifi │ broker │ password │ │ medium │ per-broker │ [ABSENT] │ null │
│ │ │ ed by 'ssl.keystore.type'. Default SSL │ │ │ │ │ │ │ │
│ │ │ engine factory supports only PEM format │ │ │ │ │ │ │ │
│ │ │ with a list of X.509 certificates │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ ssl.keystore.key │ new │ Private key in the format specified by │ broker │ password │ │ medium │ per-broker │ [ABSENT] │ null │
│ │ │ 'ssl.keystore.type'. Default SSL engine │ │ │ │ │ │ │ │
│ │ │ factory supports only PEM format with │ │ │ │ │ │ │ │
│ │ │ PKCS#8 keys. If the key is encrypted, k │ │ │ │ │ │ │ │
│ │ │ ey password must be specified using 'ss │ │ │ │ │ │ │ │
│ │ │ l.key.password' │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ ssl.truststore.certificates │ new │ Trusted certificates in the format spec │ broker │ password │ │ medium │ per-broker │ [ABSENT] │ null │
│ │ │ ified by 'ssl.truststore.type'. Default │ │ │ │ │ │ │ │
│ │ │ SSL engine factory supports only PEM f │ │ │ │ │ │ │ │
│ │ │ ormat with X.509 certificates. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ zookeeper.clientCnxnSocket │ new │ Typically set to org.apache.zookeeper.C │ broker │ string │ │ medium │ read-only │ [ABSENT] │ null │
│ │ │ lientCnxnSocketNetty when using TLS con │ │ │ │ │ │ │ │
│ │ │ nectivity to ZooKeeper. Overrides any e │ │ │ │ │ │ │ │
│ │ │ xplicit value set via the same-named zo │ │ │ │ │ │ │ │
│ │ │ okeeper.clientCnxnSocket system propert │ │ │ │ │ │ │ │
│ │ │ y. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ zookeeper.ssl.client.enable │ new │ Set client to use TLS when connecting t │ broker │ boolean │ │ medium │ read-only │ [ABSENT] │ false │
│ │ │ o ZooKeeper. An explicit value override │ │ │ │ │ │ │ │
│ │ │ s any value set via the zookeeper.clien │ │ │ │ │ │ │ │
│ │ │ t.secure system property (note the diff │ │ │ │ │ │ │ │
│ │ │ erent name). Defaults to false if neith │ │ │ │ │ │ │ │
│ │ │ er is set; when true, zookeeper.clientC │ │ │ │ │ │ │ │
│ │ │ nxnSocket must be set (typically to org │ │ │ │ │ │ │ │
│ │ │ .apache.zookeeper.ClientCnxnSocketNetty │ │ │ │ │ │ │ │
│ │ │ ); other values to set may include zook │ │ │ │ │ │ │ │
│ │ │ eeper.ssl.cipher.suites, zookeeper.ssl. │ │ │ │ │ │ │ │
│ │ │ crl.enable, zookeeper.ssl.enabled.proto │ │ │ │ │ │ │ │
│ │ │ cols, zookeeper.ssl.endpoint.identifica │ │ │ │ │ │ │ │
│ │ │ tion.algorithm, zookeeper.ssl.keystore. │ │ │ │ │ │ │ │
│ │ │ location, zookeeper.ssl.keystore.passwo │ │ │ │ │ │ │ │
│ │ │ rd, zookeeper.ssl.keystore.type, zookee │ │ │ │ │ │ │ │
│ │ │ per.ssl.ocsp.enable, zookeeper.ssl.prot │ │ │ │ │ │ │ │
│ │ │ ocol, zookeeper.ssl.truststore.location │ │ │ │ │ │ │ │
│ │ │ , zookeeper.ssl.truststore.password, zo │ │ │ │ │ │ │ │
│ │ │ okeeper.ssl.truststore.type │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ zookeeper.ssl.keystore.location │ new │ Keystore location when using a client-s │ broker │ string │ │ medium │ read-only │ [ABSENT] │ null │
│ │ │ ide certificate with TLS connectivity t │ │ │ │ │ │ │ │
│ │ │ o ZooKeeper. Overrides any explicit val │ │ │ │ │ │ │ │
│ │ │ ue set via the zookeeper.ssl.keyStore.l │ │ │ │ │ │ │ │
│ │ │ ocation system property (note the camel │ │ │ │ │ │ │ │
│ │ │ Case). │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ zookeeper.ssl.keystore.password │ new │ Keystore password when using a client-s │ broker │ password │ │ medium │ read-only │ [ABSENT] │ null │
│ │ │ ide certificate with TLS connectivity t │ │ │ │ │ │ │ │
│ │ │ o ZooKeeper. Overrides any explicit val │ │ │ │ │ │ │ │
│ │ │ ue set via the zookeeper.ssl.keyStore.p │ │ │ │ │ │ │ │
│ │ │ assword system property (note the camel │ │ │ │ │ │ │ │
│ │ │ Case). Note that ZooKeeper does not sup │ │ │ │ │ │ │ │
│ │ │ port a key password different from the │ │ │ │ │ │ │ │
│ │ │ keystore password, so be sure to set th │ │ │ │ │ │ │ │
│ │ │ e key password in the keystore to be id │ │ │ │ │ │ │ │
│ │ │ entical to the keystore password; other │ │ │ │ │ │ │ │
│ │ │ wise the connection attempt to Zookeepe │ │ │ │ │ │ │ │
│ │ │ r will fail. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ zookeeper.ssl.keystore.type │ new │ Keystore type when using a client-side │ broker │ string │ │ medium │ read-only │ [ABSENT] │ null │
│ │ │ certificate with TLS connectivity to Zo │ │ │ │ │ │ │ │
│ │ │ oKeeper. Overrides any explicit value s │ │ │ │ │ │ │ │
│ │ │ et via the zookeeper.ssl.keyStore.type │ │ │ │ │ │ │ │
│ │ │ system property (note the camelCase). T │ │ │ │ │ │ │ │
│ │ │ he default value of null means the type │ │ │ │ │ │ │ │
│ │ │ will be auto-detected based on the fil │ │ │ │ │ │ │ │
│ │ │ ename extension of the keystore. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ zookeeper.ssl.truststore.location │ new │ Truststore location when using TLS conn │ broker │ string │ │ medium │ read-only │ [ABSENT] │ null │
│ │ │ ectivity to ZooKeeper. Overrides any ex │ │ │ │ │ │ │ │
│ │ │ plicit value set via the zookeeper.ssl. │ │ │ │ │ │ │ │
│ │ │ trustStore.location system property (no │ │ │ │ │ │ │ │
│ │ │ te the camelCase). │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ zookeeper.ssl.truststore.password │ new │ Truststore password when using TLS conn │ broker │ password │ │ medium │ read-only │ [ABSENT] │ null │
│ │ │ ectivity to ZooKeeper. Overrides any ex │ │ │ │ │ │ │ │
│ │ │ plicit value set via the zookeeper.ssl. │ │ │ │ │ │ │ │
│ │ │ trustStore.password system property (no │ │ │ │ │ │ │ │
│ │ │ te the camelCase). │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ zookeeper.ssl.truststore.type │ new │ Truststore type when using TLS connecti │ broker │ string │ │ medium │ read-only │ [ABSENT] │ null │
│ │ │ vity to ZooKeeper. Overrides any explic │ │ │ │ │ │ │ │
│ │ │ it value set via the zookeeper.ssl.trus │ │ │ │ │ │ │ │
│ │ │ tStore.type system property (note the c │ │ │ │ │ │ │ │
│ │ │ amelCase). The default value of null me │ │ │ │ │ │ │ │
│ │ │ ans the type will be auto-detected base │ │ │ │ │ │ │ │
│ │ │ d on the filename extension of the trus │ │ │ │ │ │ │ │
│ │ │ tstore. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ auto.include.jmx.reporter │ new │ Deprecated. Whether to automatically in │ broker │ boolean │ │ low │ read-only │ [ABSENT] │ true │
│ │ │ clude JmxReporter even if it's not list │ │ │ │ │ │ │ │
│ │ │ ed in metric.reporters. This configurat │ │ │ │ │ │ │ │
│ │ │ ion will be removed in Kafka 4.0, users │ │ │ │ │ │ │ │
│ │ │ should instead include org.apache.kafk │ │ │ │ │ │ │ │
│ │ │ a.common.metrics.JmxReporter in metric. │ │ │ │ │ │ │ │
│ │ │ reporters in order to enable the JmxRep │ │ │ │ │ │ │ │
│ │ │ orter. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ client.quota.callback.class │ new │ The fully qualified name of a class tha │ broker │ class │ │ low │ read-only │ [ABSENT] │ null │
│ │ │ t implements the ClientQuotaCallback in │ │ │ │ │ │ │ │
│ │ │ terface, which is used to determine quo │ │ │ │ │ │ │ │
│ │ │ ta limits applied to client requests. B │ │ │ │ │ │ │ │
│ │ │ y default, the <user> and <client-id> q │ │ │ │ │ │ │ │
│ │ │ uotas that are stored in ZooKeeper are │ │ │ │ │ │ │ │
│ │ │ applied. For any given request, the mos │ │ │ │ │ │ │ │
│ │ │ t specific quota that matches the user │ │ │ │ │ │ │ │
│ │ │ principal of the session and the client │ │ │ │ │ │ │ │
│ │ │ -id of the request is applied. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ connection.failed.authentication.delay. │ new │ Connection close delay on failed authen │ broker │ int │ [0,...] │ low │ read-only │ [ABSENT] │ 100 │
│ ms │ │ tication: this is the time (in millisec │ │ │ │ │ │ │ │
│ │ │ onds) by which connection close will be │ │ │ │ │ │ │ │
│ │ │ delayed on authentication failure. Thi │ │ │ │ │ │ │ │
│ │ │ s must be configured to be less than co │ │ │ │ │ │ │ │
│ │ │ nnections.max.idle.ms to prevent connec │ │ │ │ │ │ │ │
│ │ │ tion timeout. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ controller.quorum.retry.backoff.ms │ new │ The amount of time to wait before attem │ broker │ int │ │ low │ read-only │ [ABSENT] │ 20 │
│ │ │ pting to retry a failed request to a gi │ │ │ │ │ │ │ │
│ │ │ ven topic partition. This avoids repeat │ │ │ │ │ │ │ │
│ │ │ edly sending requests in a tight loop u │ │ │ │ │ │ │ │
│ │ │ nder some failure scenarios. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ controller.quota.window.num │ new │ The number of samples to retain in memo │ broker │ int │ [1,...] │ low │ read-only │ [ABSENT] │ 11 │
│ │ │ ry for controller mutation quotas │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ controller.quota.window.size.seconds │ new │ The time span of each sample for contro │ broker │ int │ [1,...] │ low │ read-only │ [ABSENT] │ 1 │
│ │ │ ller mutations quotas │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ kafka.metrics.polling.interval.secs │ new │ The metrics polling interval (in second │ broker │ int │ [1,...] │ low │ read-only │ [ABSENT] │ 10 │
│ │ │ s) which can be used in kafka.metrics.r │ │ │ │ │ │ │ │
│ │ │ eporters implementations. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ kafka.metrics.reporters │ new │ A list of classes to use as Yammer metr │ broker │ list │ │ low │ read-only │ [ABSENT] │ "" │
│ │ │ ics custom reporters. The reporters sho │ │ │ │ │ │ │ │
│ │ │ uld implement kafka.metrics.KafkaMetric │ │ │ │ │ │ │ │
│ │ │ sReporter trait. If a client wants to e │ │ │ │ │ │ │ │
│ │ │ xpose JMX operations on a custom report │ │ │ │ │ │ │ │
│ │ │ er, the custom reporter needs to additi │ │ │ │ │ │ │ │
│ │ │ onally implement an MBean trait that ex │ │ │ │ │ │ │ │
│ │ │ tends kafka.metrics.KafkaMetricsReporte │ │ │ │ │ │ │ │
│ │ │ rMBean trait so that the registered MBe │ │ │ │ │ │ │ │
│ │ │ an is compliant with the standard MBean │ │ │ │ │ │ │ │
│ │ │ convention. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ log.message.downconversion.enable │ new │ This configuration controls whether dow │ broker │ boolean │ │ low │ cluster-wide │ [ABSENT] │ true │
│ │ │ n-conversion of message formats is enab │ │ │ │ │ │ │ │
│ │ │ led to satisfy consume requests. When s │ │ │ │ │ │ │ │
│ │ │ et to false, broker will not perform do │ │ │ │ │ │ │ │
│ │ │ wn-conversion for consumers expecting a │ │ │ │ │ │ │ │
│ │ │ n older message format. The broker resp │ │ │ │ │ │ │ │
│ │ │ onds with UNSUPPORTED_VERSION error for │ │ │ │ │ │ │ │
│ │ │ consume requests from such older clien │ │ │ │ │ │ │ │
│ │ │ ts. This configurationdoes not apply to │ │ │ │ │ │ │ │
│ │ │ any message format conversion that mig │ │ │ │ │ │ │ │
│ │ │ ht be required for replication to follo │ │ │ │ │ │ │ │
│ │ │ wers. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ metadata.max.idle.interval.ms │ new │ This configuration controls how often t │ broker │ int │ [0,...] │ low │ read-only │ [ABSENT] │ 500 │
│ │ │ he active controller should write no-op │ │ │ │ │ │ │ │
│ │ │ records to the metadata partition. If │ │ │ │ │ │ │ │
│ │ │ the value is 0, no-op records are not a │ │ │ │ │ │ │ │
│ │ │ ppended to the metadata partition. The │ │ │ │ │ │ │ │
│ │ │ default value is 500 │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ producer.id.expiration.ms │ new │ The time in ms that a topic partition l │ broker │ int │ [1,...] │ low │ cluster-wide │ [ABSENT] │ 86400000 (1 day) │
│ │ │ eader will wait before expiring produce │ │ │ │ │ │ │ │
│ │ │ r IDs. Producer IDs will not expire whi │ │ │ │ │ │ │ │
│ │ │ le a transaction associated to them is │ │ │ │ │ │ │ │
│ │ │ still ongoing. Note that producer IDs m │ │ │ │ │ │ │ │
│ │ │ ay expire sooner if the last write from │ │ │ │ │ │ │ │
│ │ │ the producer ID is deleted due to the │ │ │ │ │ │ │ │
│ │ │ topic's retention settings. Setting thi │ │ │ │ │ │ │ │
│ │ │ s value the same or higher than deliver │ │ │ │ │ │ │ │
│ │ │ y.timeout.ms can help prevent expiratio │ │ │ │ │ │ │ │
│ │ │ n during retries and protect against me │ │ │ │ │ │ │ │
│ │ │ ssage duplication, but the default shou │ │ │ │ │ │ │ │
│ │ │ ld be reasonable for most use cases. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ sasl.login.connect.timeout.ms │ new │ The (optional) value in milliseconds fo │ broker │ int │ │ low │ read-only │ [ABSENT] │ null │
│ │ │ r the external authentication provider │ │ │ │ │ │ │ │
│ │ │ connection timeout. Currently applies o │ │ │ │ │ │ │ │
│ │ │ nly to OAUTHBEARER. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ sasl.login.read.timeout.ms │ new │ The (optional) value in milliseconds fo │ broker │ int │ │ low │ read-only │ [ABSENT] │ null │
│ │ │ r the external authentication provider │ │ │ │ │ │ │ │
│ │ │ read timeout. Currently applies only to │ │ │ │ │ │ │ │
│ │ │ OAUTHBEARER. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ sasl.login.retry.backoff.max.ms │ new │ The (optional) value in milliseconds fo │ broker │ long │ │ low │ read-only │ [ABSENT] │ 10000 (10 seconds) │
│ │ │ r the maximum wait between login attemp │ │ │ │ │ │ │ │
│ │ │ ts to the external authentication provi │ │ │ │ │ │ │ │
│ │ │ der. Login uses an exponential backoff │ │ │ │ │ │ │ │
│ │ │ algorithm with an initial wait based on │ │ │ │ │ │ │ │
│ │ │ the sasl.login.retry.backoff.ms settin │ │ │ │ │ │ │ │
│ │ │ g and will double in wait length betwee │ │ │ │ │ │ │ │
│ │ │ n attempts up to a maximum wait length │ │ │ │ │ │ │ │
│ │ │ specified by the sasl.login.retry.backo │ │ │ │ │ │ │ │
│ │ │ ff.max.ms setting. Currently applies on │ │ │ │ │ │ │ │
│ │ │ ly to OAUTHBEARER. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ sasl.login.retry.backoff.ms │ new │ The (optional) value in milliseconds fo │ broker │ long │ │ low │ read-only │ [ABSENT] │ 100 │
│ │ │ r the initial wait between login attemp │ │ │ │ │ │ │ │
│ │ │ ts to the external authentication provi │ │ │ │ │ │ │ │
│ │ │ der. Login uses an exponential backoff │ │ │ │ │ │ │ │
│ │ │ algorithm with an initial wait based on │ │ │ │ │ │ │ │
│ │ │ the sasl.login.retry.backoff.ms settin │ │ │ │ │ │ │ │
│ │ │ g and will double in wait length betwee │ │ │ │ │ │ │ │
│ │ │ n attempts up to a maximum wait length │ │ │ │ │ │ │ │
│ │ │ specified by the sasl.login.retry.backo │ │ │ │ │ │ │ │
│ │ │ ff.max.ms setting. Currently applies on │ │ │ │ │ │ │ │
│ │ │ ly to OAUTHBEARER. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ sasl.oauthbearer.clock.skew.seconds │ new │ The (optional) value in seconds to allo │ broker │ int │ │ low │ read-only │ [ABSENT] │ 30 │
│ │ │ w for differences between the time of t │ │ │ │ │ │ │ │
│ │ │ he OAuth/OIDC identity provider and the │ │ │ │ │ │ │ │
│ │ │ broker. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ sasl.oauthbearer.expected.audience │ new │ The (optional) comma-delimited setting │ broker │ list │ │ low │ read-only │ [ABSENT] │ null │
│ │ │ for the broker to use to verify that th │ │ │ │ │ │ │ │
│ │ │ e JWT was issued for one of the expecte │ │ │ │ │ │ │ │
│ │ │ d audiences. The JWT will be inspected │ │ │ │ │ │ │ │
│ │ │ for the standard OAuth "aud" claim and │ │ │ │ │ │ │ │
│ │ │ if this value is set, the broker will m │ │ │ │ │ │ │ │
│ │ │ atch the value from JWT's "aud" claim │ │ │ │ │ │ │ │
│ │ │ to see if there is an exact match. If t │ │ │ │ │ │ │ │
│ │ │ here is no match, the broker will rejec │ │ │ │ │ │ │ │
│ │ │ t the JWT and authentication will fail. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ sasl.oauthbearer.expected.issuer │ new │ The (optional) setting for the broker t │ broker │ string │ │ low │ read-only │ [ABSENT] │ null │
│ │ │ o use to verify that the JWT was create │ │ │ │ │ │ │ │
│ │ │ d by the expected issuer. The JWT will │ │ │ │ │ │ │ │
│ │ │ be inspected for the standard OAuth "is │ │ │ │ │ │ │ │
│ │ │ s" claim and if this value is set, the │ │ │ │ │ │ │ │
│ │ │ broker will match it exactly against wh │ │ │ │ │ │ │ │
│ │ │ at is in the JWT's "iss" claim. If ther │ │ │ │ │ │ │ │
│ │ │ e is no match, the broker will reject t │ │ │ │ │ │ │ │
│ │ │ he JWT and authentication will fail. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ sasl.oauthbearer.jwks.endpoint.refresh. │ new │ The (optional) value in milliseconds fo │ broker │ long │ │ low │ read-only │ [ABSENT] │ 3600000 (1 hour) │
│ ms │ │ r the broker to wait between refreshing │ │ │ │ │ │ │ │
│ │ │ its JWKS (JSON Web Key Set) cache that │ │ │ │ │ │ │ │
│ │ │ contains the keys to verify the signat │ │ │ │ │ │ │ │
│ │ │ ure of the JWT. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ sasl.oauthbearer.jwks.endpoint.retry.ba │ new │ The (optional) value in milliseconds fo │ broker │ long │ │ low │ read-only │ [ABSENT] │ 10000 (10 seconds) │
│ ckoff.max.ms │ │ r the maximum wait between attempts to │ │ │ │ │ │ │ │
│ │ │ retrieve the JWKS (JSON Web Key Set) fr │ │ │ │ │ │ │ │
│ │ │ om the external authentication provider │ │ │ │ │ │ │ │
│ │ │ . JWKS retrieval uses an exponential ba │ │ │ │ │ │ │ │
│ │ │ ckoff algorithm with an initial wait ba │ │ │ │ │ │ │ │
│ │ │ sed on the sasl.oauthbearer.jwks.endpoi │ │ │ │ │ │ │ │
│ │ │ nt.retry.backoff.ms setting and will do │ │ │ │ │ │ │ │
│ │ │ uble in wait length between attempts up │ │ │ │ │ │ │ │
│ │ │ to a maximum wait length specified by │ │ │ │ │ │ │ │
│ │ │ the sasl.oauthbearer.jwks.endpoint.retr │ │ │ │ │ │ │ │
│ │ │ y.backoff.max.ms setting. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ sasl.oauthbearer.jwks.endpoint.retry.ba │ new │ The (optional) value in milliseconds fo │ broker │ long │ │ low │ read-only │ [ABSENT] │ 100 │
│ ckoff.ms │ │ r the initial wait between JWKS (JSON W │ │ │ │ │ │ │ │
│ │ │ eb Key Set) retrieval attempts from the │ │ │ │ │ │ │ │
│ │ │ external authentication provider. JWKS │ │ │ │ │ │ │ │
│ │ │ retrieval uses an exponential backoff │ │ │ │ │ │ │ │
│ │ │ algorithm with an initial wait based on │ │ │ │ │ │ │ │
│ │ │ the sasl.oauthbearer.jwks.endpoint.ret │ │ │ │ │ │ │ │
│ │ │ ry.backoff.ms setting and will double i │ │ │ │ │ │ │ │
│ │ │ n wait length between attempts up to a │ │ │ │ │ │ │ │
│ │ │ maximum wait length specified by the sa │ │ │ │ │ │ │ │
│ │ │ sl.oauthbearer.jwks.endpoint.retry.back │ │ │ │ │ │ │ │
│ │ │ off.max.ms setting. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ sasl.oauthbearer.scope.claim.name │ new │ The OAuth claim for the scope is often │ broker │ string │ │ low │ read-only │ [ABSENT] │ scope │
│ │ │ named "scope", but this (optional) sett │ │ │ │ │ │ │ │
│ │ │ ing can provide a different name to use │ │ │ │ │ │ │ │
│ │ │ for the scope included in the JWT payl │ │ │ │ │ │ │ │
│ │ │ oad's claims if the OAuth/OIDC provider │ │ │ │ │ │ │ │
│ │ │ uses a different name for that claim. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ sasl.oauthbearer.sub.claim.name │ new │ The OAuth claim for the subject is ofte │ broker │ string │ │ low │ read-only │ [ABSENT] │ sub │
│ │ │ n named "sub", but this (optional) sett │ │ │ │ │ │ │ │
│ │ │ ing can provide a different name to use │ │ │ │ │ │ │ │
│ │ │ for the subject included in the JWT pa │ │ │ │ │ │ │ │
│ │ │ yload's claims if the OAuth/OIDC provid │ │ │ │ │ │ │ │
│ │ │ er uses a different name for that claim │ │ │ │ │ │ │ │
│ │ │ . │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ security.providers │ new │ A list of configurable creator classes │ broker │ string │ │ low │ read-only │ [ABSENT] │ null │
│ │ │ each returning a provider implementing │ │ │ │ │ │ │ │
│ │ │ security algorithms. These classes shou │ │ │ │ │ │ │ │
│ │ │ ld implement the org.apache.kafka.commo │ │ │ │ │ │ │ │
│ │ │ n.security.auth.SecurityProviderCreator │ │ │ │ │ │ │ │
│ │ │ interface. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ ssl.engine.factory.class │ new │ The class of type org.apache.kafka.comm │ broker │ class │ │ low │ per-broker │ [ABSENT] │ null │
│ │ │ on.security.auth.SslEngineFactory to pr │ │ │ │ │ │ │ │
│ │ │ ovide SSLEngine objects. Default value │ │ │ │ │ │ │ │
│ │ │ is org.apache.kafka.common.security.ssl │ │ │ │ │ │ │ │
│ │ │ .DefaultSslEngineFactory │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ ssl.principal.mapping.rules │ new │ A list of rules for mapping from distin │ broker │ string │ │ low │ read-only │ [ABSENT] │ DEFAULT │
│ │ │ guished name from the client certificat │ │ │ │ │ │ │ │
│ │ │ e to short name. The rules are evaluate │ │ │ │ │ │ │ │
│ │ │ d in order and the first rule that matc │ │ │ │ │ │ │ │
│ │ │ hes a principal name is used to map it │ │ │ │ │ │ │ │
│ │ │ to a short name. Any later rules in the │ │ │ │ │ │ │ │
│ │ │ list are ignored. By default, distingu │ │ │ │ │ │ │ │
│ │ │ ished name of the X.500 certificate wil │ │ │ │ │ │ │ │
│ │ │ l be the principal. For more details on │ │ │ │ │ │ │ │
│ │ │ the format please see security author │ │ │ │ │ │ │ │
│ │ │ ization and acls. Note that this config │ │ │ │ │ │ │ │
│ │ │ uration is ignored if an extension of K │ │ │ │ │ │ │ │
│ │ │ afkaPrincipalBuilder is provided by the │ │ │ │ │ │ │ │
│ │ │ principal.builder.class configuration. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ zookeeper.ssl.cipher.suites │ new │ Specifies the enabled cipher suites to │ broker │ list │ │ low │ read-only │ [ABSENT] │ null │
│ │ │ be used in ZooKeeper TLS negotiation (c │ │ │ │ │ │ │ │
│ │ │ sv). Overrides any explicit value set v │ │ │ │ │ │ │ │
│ │ │ ia the zookeeper.ssl.ciphersuites syste │ │ │ │ │ │ │ │
│ │ │ m property (note the single word "ciphe │ │ │ │ │ │ │ │
│ │ │ rsuites"). The default value of null me │ │ │ │ │ │ │ │
│ │ │ ans the list of enabled cipher suites i │ │ │ │ │ │ │ │
│ │ │ s determined by the Java runtime being │ │ │ │ │ │ │ │
│ │ │ used. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ zookeeper.ssl.crl.enable │ new │ Specifies whether to enable Certificate │ broker │ boolean │ │ low │ read-only │ [ABSENT] │ false │
│ │ │ Revocation List in the ZooKeeper TLS p │ │ │ │ │ │ │ │
│ │ │ rotocols. Overrides any explicit value │ │ │ │ │ │ │ │
│ │ │ set via the zookeeper.ssl.crl system pr │ │ │ │ │ │ │ │
│ │ │ operty (note the shorter name). │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ zookeeper.ssl.enabled.protocols │ new │ Specifies the enabled protocol(s) in Zo │ broker │ list │ │ low │ read-only │ [ABSENT] │ null │
│ │ │ oKeeper TLS negotiation (csv). Override │ │ │ │ │ │ │ │
│ │ │ s any explicit value set via the zookee │ │ │ │ │ │ │ │
│ │ │ per.ssl.enabledProtocols system propert │ │ │ │ │ │ │ │
│ │ │ y (note the camelCase). The default val │ │ │ │ │ │ │ │
│ │ │ ue of null means the enabled protocol w │ │ │ │ │ │ │ │
│ │ │ ill be the value of the zookeeper.ssl.p │ │ │ │ │ │ │ │
│ │ │ rotocol configuration property. │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ zookeeper.ssl.endpoint.identification.a │ new │ Specifies whether to enable hostname ve │ broker │ string │ │ low │ read-only │ [ABSENT] │ HTTPS │
│ lgorithm │ │ rification in the ZooKeeper TLS negotia │ │ │ │ │ │ │ │
│ │ │ tion process, with (case-insensitively) │ │ │ │ │ │ │ │
│ │ │ "https" meaning ZooKeeper hostname ver │ │ │ │ │ │ │ │
│ │ │ ification is enabled and an explicit bl │ │ │ │ │ │ │ │
│ │ │ ank value meaning it is disabled (disab │ │ │ │ │ │ │ │
│ │ │ ling it is only recommended for testing │ │ │ │ │ │ │ │
│ │ │ purposes). An explicit value overrides │ │ │ │ │ │ │ │
│ │ │ any "true" or "false" value set via th │ │ │ │ │ │ │ │
│ │ │ e zookeeper.ssl.hostnameVerification sy │ │ │ │ │ │ │ │
│ │ │ stem property (note the different name │ │ │ │ │ │ │ │
│ │ │ and values; true implies https and fals │ │ │ │ │ │ │ │
│ │ │ e implies blank). │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ zookeeper.ssl.ocsp.enable │ new │ Specifies whether to enable Online Cert │ broker │ boolean │ │ low │ read-only │ [ABSENT] │ false │
│ │ │ ificate Status Protocol in the ZooKeepe │ │ │ │ │ │ │ │
│ │ │ r TLS protocols. Overrides any explicit │ │ │ │ │ │ │ │
│ │ │ value set via the zookeeper.ssl.ocsp s │ │ │ │ │ │ │ │
│ │ │ ystem property (note the shorter name). │ │ │ │ │ │ │ │
├─────────────────────────────────────────┼────────────┼─────────────────────────────────────────┼─────────┼──────────┼──────────────────────┼──────────────┼───────────────┼─────────────────────┼───────────────────────────┤
│ zookeeper.ssl.protocol │ new │ Specifies the protocol to be used in Zo │ broker │ string │ │ low │ read-only │ [ABSENT] │ TLSv1.2 │
│ │ │ oKeeper TLS negotiation. An explicit va │ │ │ │ │ │ │ │
│ │ │ lue overrides any value set via the sam │ │ │ │ │ │ │ │
│ │ │ e-named zookeeper.ssl.protocol system p │ │ │ │ │ │ │ │
│ │ │ roperty. │ │ │ │ │ │ │ │
╘═════════════════════════════════════════╧════════════╧═════════════════════════════════════════╧═════════╧══════════╧══════════════════════╧══════════════╧═══════════════╧═════════════════════╧═══════════════════════════╛

Event Timeline

Also available as JSON

brouberol changed the title of this paste from untitled to Kafka configuration diff between 1.1 and 3.5.Apr 4 2024, 8:11 AM
❯ cat kafka-config-diff-from-1_1-to-3_5.json | jq 'map(select(.name | contains("socket") or contains("buffer") or contains("thread")))'
[
  {
	"name": "sasl.login.refresh.buffer.seconds",
	"status": "new",
	"description": "The amount of buffer time before credential expiration to maintain when refreshing a credential, in seconds. If a refresh would otherwise occur closer to expiration than the number of buffer seconds then the refresh will be moved up to maintain as much of the buffer time as possible. Legal values are between 0 and 3600 (1 hour); a default value of  300 (5 minutes) is used if no value is specified. This value and sasl.login.refresh.min.period.seconds are both ignored if their sum exceeds the remaining lifetime of a credential. Currently applies only to OAUTHBEARER.",
	"scope": "broker",
	"type": "short",
	"valid_values": null,
	"importance": "medium",
	"update_mode": "per-broker",
	"default (1.1)": "[ABSENT]",
	"default (3.5)": "300"
  },
  {
	"name": "socket.connection.setup.timeout.max.ms",
	"status": "new",
	"description": "The maximum amount of time the client will wait for the socket connection to be established. The connection setup timeout will increase exponentially for each consecutive connection failure up to this maximum. To avoid connection storms, a randomization factor of 0.2 will be applied to the timeout resulting in a random range between 20% below and 20% above the computed value.",
	"scope": "broker",
	"type": "long",
	"valid_values": null,
	"importance": "medium",
	"update_mode": "read-only",
	"default (1.1)": "[ABSENT]",
	"default (3.5)": "30000 (30 seconds)"
  },
  {
	"name": "socket.connection.setup.timeout.ms",
	"status": "new",
	"description": "The amount of time the client will wait for the socket connection to be established. If the connection is not built before the timeout elapses, clients will close the socket channel.",
	"scope": "broker",
	"type": "long",
	"valid_values": null,
	"importance": "medium",
	"update_mode": "read-only",
	"default (1.1)": "[ABSENT]",
	"default (3.5)": "10000 (10 seconds)"
  },
  {
	"name": "socket.listen.backlog.size",
	"status": "new",
	"description": "The maximum number of pending connections on the socket. In Linux, you may also need to configure `somaxconn` and `tcp_max_syn_backlog` kernel parameters accordingly to make the configuration takes effect.",
	"scope": "broker",
	"type": "int",
	"valid_values": "[1,...]",
	"importance": "medium",
	"update_mode": "read-only",
	"default (1.1)": "[ABSENT]",
	"default (3.5)": "50"
  }
]