Topik ini menjelaskan aturan untuk mengonfigurasi parameter klien Message Queue for Apache Kafka. Disarankan untuk menentukan nilai yang sesuai untuk parameter ini berdasarkan kebutuhan bisnis Anda.
Tabel berikut menjelaskan parameter untuk berbagai jenis klien:
| Parameter | Deskripsi |
| retries | Jumlah percobaan ulang yang diizinkan untuk pesan yang gagal dikirim. |
| retry.backoff.ms | Interval antara percobaan ulang ketika pesan gagal dikirim. Kami menyarankan Anda mengatur parameter ini menjadi 1000. Satuan: milidetik. |
| acks | Mekanisme persistensi untuk mengirim pesan. Untuk meningkatkan performa pengiriman pesan, kami menyarankan Anda mengatur parameter ini menjadi 1.
|
| batch.size | Volume pesan yang di-cache untuk dikirim ke setiap partisi. Ketika volume pesan yang di-cache mencapai batas atas yang ditentukan, permintaan jaringan dipicu. Kemudian, produser mengirim pesan ke broker dalam batch. Jika Anda mengatur parameter batch.size ke nilai kecil, performa pengiriman pesan dan stabilitas mungkin terpengaruh. Kami menyarankan Anda menggunakan nilai default 16384. Satuan: byte. |
| linger.ms | Durasi penyimpanan maksimum untuk setiap pesan dalam cache. Jika pesan disimpan dalam cache selama periode waktu yang melebihi durasi penyimpanan maksimum, produser segera mengirim pesan ke broker tanpa menggunakan parameter batch.size. Kami menyarankan Anda mengatur parameter linger.ms ke nilai yang berkisar antara 100 hingga 1000 berdasarkan kebutuhan bisnis Anda. Satuan: milidetik. |
| partitioner.class | Strategi yang Anda gunakan untuk partisi. Kami menyarankan Anda menggunakan strategi partisi sticky untuk meningkatkan performa pengiriman pesan. Jika versi klien produser Anda adalah 2.4 atau lebih baru, strategi partisi sticky digunakan secara default. |
| buffer.memory | Ukuran kolam memori pada klien. Jika Anda mengatur parameter ini ke nilai kecil, waktu yang dibutuhkan untuk mengajukan memori mungkin lama. Hal ini menyebabkan performa pengiriman pesan rendah atau timeout pengiriman pesan. Kami menyarankan Anda mengatur parameter ini ke nilai yang sama dengan atau lebih besar dari nilai Nilai parameter batch.size × Jumlah partisi × 2. Satuan: byte. |
| Parameter | Deskripsi |
| fetch.min.bytes | Jumlah minimum data yang dapat ditarik konsumen dari broker. Sebelum mengonfigurasi parameter ini, Anda harus mengevaluasi jumlah pesan yang akan dikirim oleh produser. Jika Anda mengatur parameter ini ke nilai yang terlalu besar, penundaan pesan mungkin meningkat ketika konsumen mengonsumsi pesan. Jika Anda mengatur parameter ini ke nilai yang terlalu kecil, frekuensi konsumen menarik pesan mungkin meningkat. Satuan: byte. |
| fetch.max.wait.ms | Jumlah waktu maksimum yang ditunggu broker untuk mengembalikan respons. Satuan: milidetik.
|
| max.partion.fetch.bytes | Jumlah data maksimum yang dikembalikan oleh setiap partisi. Satuan: byte. |
| session.timeout.ms | Interval konsumen mengirimkan sinyal heartbeat. Jika tidak ada sinyal heartbeat yang dikirimkan dalam interval tersebut, broker menentukan bahwa konsumen mati, dan rebalance dipicu. Selama rebalance, klien berhenti mengonsumsi data dan menunggu rebalance selesai. Kami menyarankan Anda mengatur parameter ini ke nilai yang berkisar antara 30000 hingga 60000. Satuan: milidetik. Nilai valid: 6000 hingga 300000. |
| max.poll.records | Jumlah maksimum pesan yang dikembalikan dalam satu panggilan ke poll(). Jika Anda mengatur parameter ini ke nilai yang terlalu besar, Anda harus memproses logika konsumsi pesan secepat mungkin. Jika logika konsumsi pesan diproses dengan kecepatan rendah, data dalam panggilan berikutnya ke poll() terpengaruh. Akibatnya, tidak ada sinyal heartbeat yang dikirimkan selama interval yang ditentukan oleh parameter session.timeout.ms, dan rebalance dipicu. Kami menyarankan Anda mengatur parameter ini ke nilai yang lebih kecil dari nilai Penting Dalam Java Client 0.10.1 dan versi lebih baru, thread terpisah digunakan untuk mengirimkan sinyal heartbeat. Jika Anda menggunakan Java Client versi sebelumnya atau klien dalam bahasa lain, Anda harus menentukan nilai yang sesuai untuk parameter yang terkait dengan waktu pemrosesan data dan interval pengiriman sinyal heartbeat. Ini membantu mencegah rebalance yang sering memengaruhi konsumsi normal. |
| max.poll.interval.ms | Interval maksimum antara pemanggilan poll(). Parameter ini hanya diperlukan dalam Java client 0.10.1 dan versi lebih baru. Jika konsumen tidak memanggil poll() selama interval yang ditentukan oleh parameter session.timeout.ms, broker menentukan bahwa konsumen mati, dan rebalance dipicu. Oleh karena itu, Anda harus mengatur parameter ini ke nilai yang sesuai. Kami menyarankan Anda mengatur parameter ini ke nilai yang lebih besar dari nilai <Waktu yang dibutuhkan untuk mengonsumsi pesan> × <Jumlah catatan data yang ditarik oleh poll()>. Dalam banyak kasus, Anda dapat menggunakan nilai default. Satuan: milidetik. Nilai default: 300000. |
| enable.auto.commit | Menentukan apakah offset konsumen dikomit otomatis. Nilai valid:
Nilai default: true. |
| auto.commit.interval.ms | Interval offset konsumen dikomit secara otomatis. Nilai default: 1000. Satuan: milidetik. |
| auto.offset.reset | Kebijakan yang digunakan untuk mereset offset konsumen.
Catatan
|