Kafka Partition
Định nghĩa
Kafka Partition là một append-only ordered log bên trong topic Kafka, nơi event có offset tăng dần và được replicate giữa brokers.
Cách hiểu bằng lời của tôi
Partition là đơn vị vừa giữ ordering vừa tạo scale. Muốn nhiều throughput hơn thì tăng partition/broker, nhưng ordering chỉ được đảm bảo trong từng partition. Vì vậy chọn partition key là quyết định kiến trúc, không phải chi tiết config.
Cơ chế
- Producer ghi event vào partition, thường theo key/hash.
- Event trong partition có offset tăng dần.
- Một broker giữ leader replica; follower replica fetch để bắt kịp.
- Consumer trong cùng group được assign partition; một partition chỉ thuộc một consumer trong group tại một thời điểm.
- Rebalance xảy ra khi consumer join/leave hoặc partition assignment đổi.
Trade-off
- Partition quá ít giới hạn parallelism.
- Partition quá nhiều tăng metadata, file handle, rebalance và operational overhead.
- Hot key tạo hot partition dù tổng cluster còn rảnh.
- Migration Kafka phải bảo vệ partition leadership, replica placement và metadata.