ApsaraMQ for Kafka membatasi jumlah total topik dan partisi per kluster untuk menjaga kinerja dan stabilitas. Setiap partisi mengonsumsi sumber daya broker—seperti file handles, memori, dan thread replikasi—sehingga jumlah partisi yang berlebihan dapat menurunkan throughput dan meningkatkan latensi di seluruh kluster.
Cara partisi memengaruhi kinerja kluster
Di ApsaraMQ for Kafka, pesan disimpan dan dijadwalkan berdasarkan partisi. Setiap partisi dipetakan ke direktori pada setiap broker yang menyimpan replika. Direktori tersebut berisi satu file indeks dan satu file data per segmen log. Seiring peningkatan jumlah partisi, masalah berikut menjadi semakin parah:
| Area dampak | Apa yang terjadi |
|---|---|
| Konsumsi file handle | Setiap partisi memerlukan file handle terbuka untuk segmen indeks dan datanya. Ribuan partisi dapat menghabiskan batas deskriptor file sistem operasi. |
| Latensi replikasi | Broker mereplikasi data partisi untuk menjaga sinkronisasi replika. Semakin banyak partisi, semakin lama waktu yang diperlukan untuk melakukan commit pesan, sehingga meningkatkan latensi end-to-end pesan. |
| Waktu pemulihan | Saat broker melakukan restart atau failover, broker tersebut harus memuat ulang metadata dan mengejar ketinggalan pada setiap partisi yang dihostingnya. Semakin banyak partisi, semakin lama jendela ketidaktersediaan selama proses pemulihan. |
Yang harus dilakukan saat mencapai batas
Jika beban kerja Anda memerlukan lebih banyak topik atau partisi daripada yang diizinkan oleh kluster saat ini:
Konsolidasikan topik. Periksa apakah beberapa topik dengan lalu lintas rendah dapat digabungkan ke dalam jumlah partisi yang lebih sedikit. Over-partitioning merupakan penyebab umum tercapainya batas lebih awal.
Submit a ticket. Untuk informasi lebih lanjut atau permintaan peningkatan kuota, submit a ticket.