Modifiable Broker Settings
Instaclustr Apache Kafka clusters are configured with optimal settings for our managed service. If required, the Kafka broker configuration items can be changed by submitting a support request, following are a few common configurations:
| Name | Description | Type | Default |
| auto.create.topics.enable | Enable automatic creation of a topic when a client produces to or consumes from a topic that does not exist | boolean | true |
| delete.topic.enable | Allow topics to be deleted. If this is off, a delete request has no effect | boolean | true |
| default.replication.factor | Replication factor used for topics that are created automatically | int | 3 |
| num.partitions | Number of partitions used for topics that are created automatically | int | 3 |
| compression.type | Specify the final compression type for a given topic. This configuration accepts the standard compression codecs (‘gzip’, ‘snappy’, ‘lz4’). It additionally accepts ‘uncompressed’ which is equivalent to no compression; and ‘producer’ which means retain the original compression codec set by the producer. | string | producer |
| connections.max.idle.ms | How long a client connection can stay idle before the broker closes it | int | 600000 |
| group.initial.rebalance.delay.ms | How long the group coordinator waits for more consumers to join a new group before the first rebalance | int | 3000 |
| jute.maxbuffer | Maximum size, in bytes, of data stored in a ZooKeeper znode. Applies to ZooKeeper-based clusters | int | null |
| leader.imbalance.check.interval.seconds | How often the partition leader rebalance check runs | int | 600 |
| log.cleaner.threads | Number of background threads used for log cleaning | int | 1 |
| log.retention.bytes * | Maximum size of a log before deleting it, in bytes. -1 means no size limit. This is the default for topics that do not set their own retention | long | -1 |
| log.retention.ms * | How long to keep a log before deleting it, in milliseconds. -1 means no time limit. This is the default for topics that do not set their own retention | long | null |
| message.max.bytes | Maximum size of a message the broker will accept | int | 1048588 |
| min.insync.replicas | Minimum number of in-sync replicas required for a write with acks=all to succeed | int | 1 |
| num.network.threads | The number of threads that the server uses for receiving requests from the network and sending responses to the network | int | 3 |
| offsets.retention.minutes | How long committed offsets are kept after a consumer group becomes inactive | int | 10080 |
| remote.log.reader.max.pending.tasks | Maximum number of queued remote-log read tasks. Applies when Tiered Storage is enabled | int | 100 |
| remote.log.reader.threads | Thread pool size for remote-log reads. Applies when Tiered Storage is enabled | int | 10 |
| replica.fetch.max.bytes | Maximum bytes a follower fetches from the leader in one request | int | 1048576 |
| replica.selector.class | Class that chooses which replica serves a consumer fetch. Set this to enable follower fetching | string | null |
| replica.socket.receive.buffer.bytes | Receive buffer for sockets used when replicating from the leader. -1 uses the operating system default | int | 65536 |
| socket.listen.backlog.size | Maximum number of pending connections on a broker socket | int | 50 |
| socket.receive.buffer.bytes | Receive buffer for broker sockets. -1 uses the operating system default | int | 102400 |
| socket.send.buffer.bytes | Send buffer for broker sockets. -1 uses the operating system default | int | 102400 |
| transaction.state.log.min.isr | Minimum number of replicas that must acknowledge a write to the transaction topic | int | 2 |
| unclean.leader.election.enable | Allow a replica that is not in the in-sync replica set to be elected leader. This can lose data | boolean | false |
* These log settings are only applicable for topics that are created via auto topic creation. These settings can be specified on a per topic basis when the topic is created explicitly.
The first four are chosen in the cluster creation form and written into server.properties from that saved choice. leader.imbalance.check.interval.seconds is 600 on current clusters. Kafka’s own default is 300, and that is what clusters on Kafka 3.5.0 and earlier still use.