Kafka Reference
Quick reference documentation for Apache Kafka.
Configuration Quick Reference
Section titled “Configuration Quick Reference”Broker (server.properties)
Section titled “Broker (server.properties)”| Configuration | Default | Description |
|---|---|---|
broker.id | -1 | Unique broker identifier |
log.dirs | /tmp/kafka-logs | Log directory paths |
num.partitions | 1 | Default partition count |
default.replication.factor | 1 | Default replication factor |
min.insync.replicas | 1 | Minimum ISR for writes |
log.retention.hours | 168 | Log retention time |
log.retention.bytes | -1 | Log retention size |
log.segment.bytes | 1073741824 | Segment file size |
num.network.threads | 3 | Network I/O threads |
num.io.threads | 8 | Disk I/O threads |
Producer
Section titled “Producer”| Configuration | Default | Description |
|---|---|---|
acks | all | Acknowledgment level |
retries | MAX_INT | Retry attempts |
batch.size | 16384 | Batch size bytes |
linger.ms | 0 | Batching delay |
buffer.memory | 33554432 | Total buffer memory |
compression.type | none | Compression algorithm |
max.in.flight.requests.per.connection | 5 | In-flight requests |
enable.idempotence | true | Idempotent producer |
Consumer
Section titled “Consumer”| Configuration | Default | Description |
|---|---|---|
group.id | null | Consumer group ID |
auto.offset.reset | latest | Offset reset policy |
enable.auto.commit | true | Auto commit offsets |
auto.commit.interval.ms | 5000 | Auto commit interval |
fetch.min.bytes | 1 | Minimum fetch bytes |
fetch.max.wait.ms | 500 | Maximum fetch wait |
max.poll.records | 500 | Records per poll |
session.timeout.ms | 45000 | Session timeout |
heartbeat.interval.ms | 3000 | Heartbeat interval |
CLI Commands
Section titled “CLI Commands”kafka-topics.sh
Section titled “kafka-topics.sh”# List topicskafka-topics.sh --bootstrap-server kafka:9092 --list
# Create topickafka-topics.sh --bootstrap-server kafka:9092 \ --create --topic my-topic --partitions 12 --replication-factor 3
# Describe topickafka-topics.sh --bootstrap-server kafka:9092 \ --describe --topic my-topic
# Delete topickafka-topics.sh --bootstrap-server kafka:9092 \ --delete --topic my-topic
# Alter partitionskafka-topics.sh --bootstrap-server kafka:9092 \ --alter --topic my-topic --partitions 24kafka-consumer-groups.sh
Section titled “kafka-consumer-groups.sh”# List groupskafka-consumer-groups.sh --bootstrap-server kafka:9092 --list
# Describe groupkafka-consumer-groups.sh --bootstrap-server kafka:9092 \ --describe --group my-group
# Reset offsetskafka-consumer-groups.sh --bootstrap-server kafka:9092 \ --group my-group --reset-offsets --to-earliest --topic my-topic --execute
# Delete groupkafka-consumer-groups.sh --bootstrap-server kafka:9092 \ --delete --group my-groupkafka-configs.sh
Section titled “kafka-configs.sh”# Describe topic configkafka-configs.sh --bootstrap-server kafka:9092 \ --entity-type topics --entity-name my-topic --describe
# Alter topic configkafka-configs.sh --bootstrap-server kafka:9092 \ --entity-type topics --entity-name my-topic \ --alter --add-config retention.ms=86400000
# Delete topic configkafka-configs.sh --bootstrap-server kafka:9092 \ --entity-type topics --entity-name my-topic \ --alter --delete-config retention.mskafka-acls.sh
Section titled “kafka-acls.sh”# List ACLskafka-acls.sh --bootstrap-server kafka:9092 --list
# Add ACLkafka-acls.sh --bootstrap-server kafka:9092 \ --add --allow-principal User:producer \ --operation Write --topic my-topic
# Remove ACLkafka-acls.sh --bootstrap-server kafka:9092 \ --remove --allow-principal User:producer \ --operation Write --topic my-topicMetrics Reference
Section titled “Metrics Reference”Broker Metrics
Section titled “Broker Metrics”| Metric | Type | Description |
|---|---|---|
kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec | Rate | Messages produced |
kafka.server:type=BrokerTopicMetrics,name=BytesInPerSec | Rate | Bytes produced |
kafka.server:type=BrokerTopicMetrics,name=BytesOutPerSec | Rate | Bytes consumed |
kafka.controller:type=KafkaController,name=ActiveControllerCount | Gauge | Active controllers |
kafka.controller:type=KafkaController,name=OfflinePartitionsCount | Gauge | Offline partitions |
kafka.server:type=ReplicaManager,name=UnderReplicatedPartitions | Gauge | Under-replicated |
Request Metrics
Section titled “Request Metrics”| Metric | Type | Description |
|---|---|---|
kafka.network:type=RequestMetrics,name=TotalTimeMs | Histogram | Request latency |
kafka.network:type=RequestMetrics,name=RequestQueueTimeMs | Histogram | Queue time |
kafka.network:type=RequestMetrics,name=LocalTimeMs | Histogram | Processing time |
kafka.network:type=RequestMetrics,name=RemoteTimeMs | Histogram | Replication time |
Consumer Metrics
Section titled “Consumer Metrics”| Metric | Type | Description |
|---|---|---|
kafka.consumer:type=consumer-fetch-manager-metrics,records-lag | Gauge | Consumer lag |
kafka.consumer:type=consumer-fetch-manager-metrics,fetch-rate | Rate | Fetch rate |
kafka.consumer:type=consumer-coordinator-metrics,commit-rate | Rate | Commit rate |
Error Codes
Section titled “Error Codes”| Code | Name | Retriable | Description |
|---|---|---|---|
| 0 | UNKNOWN_SERVER_ERROR | Yes | Unknown error |
| 1 | OFFSET_OUT_OF_RANGE | No | Invalid offset |
| 2 | CORRUPT_MESSAGE | No | CRC check failed |
| 3 | UNKNOWN_TOPIC_OR_PARTITION | Yes | Topic/partition not found |
| 5 | LEADER_NOT_AVAILABLE | Yes | Leader election in progress |
| 6 | NOT_LEADER_OR_FOLLOWER | Yes | Stale metadata |
| 7 | REQUEST_TIMED_OUT | Yes | Request timeout |
| 19 | NOT_ENOUGH_REPLICAS | Yes | ISR too small |
| 29 | TOPIC_AUTHORIZATION_FAILED | No | No topic ACL |
| 30 | GROUP_AUTHORIZATION_FAILED | No | No group ACL |
Protocol Reference
Section titled “Protocol Reference”Record Batch Format
Section titled “Record Batch Format”| Field | Size | Description |
|---|---|---|
| baseOffset | int64 | First offset in batch |
| batchLength | int32 | Batch size bytes |
| partitionLeaderEpoch | int32 | Leader epoch |
| magic | int8 | Version (2) |
| crc | int32 | CRC32-C |
| attributes | int16 | Compression, timestamp type |
| lastOffsetDelta | int32 | Offset of last record |
| firstTimestamp | int64 | First record timestamp |
| maxTimestamp | int64 | Maximum timestamp |
| producerId | int64 | Producer ID |
| producerEpoch | int16 | Producer epoch |
| baseSequence | int32 | First sequence number |
| records | [Record] | Record array |
API Keys
Section titled “API Keys”| Key | Name | Description |
|---|---|---|
| 0 | Produce | Produce messages |
| 1 | Fetch | Fetch messages |
| 2 | ListOffsets | Get offsets |
| 3 | Metadata | Get cluster metadata |
| 8 | OffsetCommit | Commit consumer offsets |
| 9 | OffsetFetch | Fetch consumer offsets |
| 10 | FindCoordinator | Find group coordinator |
| 11 | JoinGroup | Join consumer group |
| 12 | Heartbeat | Consumer heartbeat |
| 13 | LeaveGroup | Leave consumer group |
| 14 | SyncGroup | Sync group state |
Related Documentation
Section titled “Related Documentation”- Configuration - Full configuration guide
- CLI Tools - CLI reference
- Monitoring - Metrics guide
- Troubleshooting - Error reference