Konfigurasi yang disarankan untuk klien Apache Kafka
Berikut adalah konfigurasi yang disarankan untuk menggunakan Azure Event Hubs dari aplikasi klien Apache Kafka.
Properti konfigurasi klien Java
Konfigurasi produsen dan konsumen
Properti | Nilai yang disarankan | Rentang yang diizinkan | Catatan |
---|---|---|---|
metadata.max.age.ms |
180000 (perkiraan) | < 240000 | Dapat diturunkan untuk mengambil perubahan metadata lebih cepat. |
connections.max.idle.ms |
180000 | < 240000 | Azure menutup TCP masuk yang diam selama > 240.000 md, yang dapat mengakibatkan pengiriman pada koneksi yang mati (ditampilkan sebagai batch kedaluwarsa karena waktu pengiriman habis). |
Konfigurasi khusus produsen
Konfigurasi produsen dapat ditemukan di sini.
Properti | Nilai yang Disarankan | Rentang yang Diizinkan | Catatan |
---|---|---|---|
max.request.size |
1000000 | < 1046528 | Layanan akan menutup koneksi jika permintaan lebih besar dari 1.046.528 byte dikirim. Nilai ini harus diubah dan akan menyebabkan masalah dalam skenario hasil throughput tinggi. |
retries |
> 0 | Mungkin memerlukan peningkatan nilai delivery.timeout.ms, lihat dokumentasi. | |
request.timeout.ms |
30000 .. 60000 | > 20000 | Azure Event Hubs secara internal akan menjadi default minimal 20.000 md. Meskipun permintaan dengan nilai batas waktu yang lebih rendah diterima, perilaku klien tidak dijamin.. Pastikan request.timeout.ms Anda setidaknya bernilai 60000 seperti yang disarankan dan session.timeout.ms Anda setidaknya bernilai 30000 seperti yang disarankan. Memiliki pengaturan ini terlalu rendah dapat menyebabkan konsumen kehabisan waktu, yang kemudian menyebabkan penyeimbangan ulang (yang kemudian menyebabkan lebih banyak batas waktu, yang menyebabkan lebih banyak penyeimbangan ulang, dan seterusnya). |
metadata.max.idle.ms |
180000 | > 5000 | Mengontrol berapa lama produser akan menyimpan metadata untuk topik yang tidak ada aktivitas. Jika waktu yang berlalu sejak topik terakhir diproduksi melebihi durasi tidak ada aktivitas metadata, maka metadata topik akan dilupakan dan akses berikutnya ke topik tersebut akan memaksa permintaan pengambilan metadata. |
linger.ms |
> 0 | Untuk skenario throughput tinggi, nilai aktif harus sama dengan nilai tertinggi yang dapat ditoleransi untuk memanfaatkan pembuatan batch. | |
delivery.timeout.ms |
Atur sesuai dengan rumus (request.timeout.ms + linger.ms ) * retries . |
||
compression.type |
none |
Pemadatan saat ini tidak didukung.. |
Konfigurasi khusus konsumen
Konfigurasi konsumen dapat ditemukan di sini.
Properti | Nilai yang Disarankan | Rentang yang Diizinkan | Catatan |
---|---|---|---|
heartbeat.interval.ms |
3000 | 3000 adalah nilai defaultnya dan tidak boleh diubah. | |
session.timeout.ms |
30000 | 6000 .. 300000 | Mulailah dengan 30000, tingkatkan jika sering melihat penyeimbangan ulang karena heartbeat yang terlewatkan. Pastikan request.timeout.ms Anda setidaknya bernilai 60000 seperti yang disarankan dan session.timeout.ms Anda setidaknya bernilai 30000 seperti yang disarankan. Memiliki pengaturan ini terlalu rendah dapat menyebabkan konsumen kehabisan waktu, yang kemudian menyebabkan penyeimbangan ulang (yang kemudian menyebabkan lebih banyak batas waktu, yang menyebabkan lebih banyak penyeimbangan ulang, dan seterusnya). |
max.poll.interval.ms |
300000 (default) | >session.timeout.ms | Digunakan untuk batas waktu penyeimbangan ulang, jadi ini tidak boleh diatur terlalu rendah. Harus lebih besar dari session.timeout.ms. |
properti konfigurasi librdkafka
File konfigurasi utama librdkafka
(tautan) berisi tambahan untuk properti di bawah ini.
Konfigurasi produsen dan konsumen
Properti | Nilai yang Disarankan | Rentang yang Diizinkan | Catatan |
---|---|---|---|
socket.keepalive.enable |
benar | Diperlukan jika koneksi diharapkan tidak ada aktivitas. Azure akan menutup TCP masuk yang diam > 240.000 md. | |
metadata.max.age.ms |
~ 180000 | < 240000 | Dapat diturunkan untuk mengambil perubahan metadata lebih cepat. |
Konfigurasi khusus produsen
Properti | Nilai yang Disarankan | Rentang yang Diizinkan | Catatan |
---|---|---|---|
retries |
2 | Default-nya adalah 2147483647. | |
request.timeout.ms |
30000 .. 60000 | > 20000 | Azure Event Hubs secara internal akan menjadi default minimal 20.000 md. Nilai default librdkafka adalah 5000, yang bisa menimbulkan masalah. Meskipun permintaan dengan nilai batas waktu yang lebih rendah diterima, perilaku klien tidak dijamin. |
partitioner |
consistent_random |
Lihat dokumentasi librdkafka | consistent_random adalah defaultnya dan yang terbaik. Kunci null dan kosong ditangani secara ideal untuk sebagian besar kasus. |
compression.codec |
none |
Pemadatan saat ini tidak didukung. |
Konfigurasi khusus konsumen
Properti | Nilai yang Disarankan | Rentang yang Diizinkan | Catatan |
---|---|---|---|
heartbeat.interval.ms |
3000 | 3000 adalah nilai defaultnya dan tidak boleh diubah. | |
session.timeout.ms |
30000 | 6000 .. 300000 | Mulailah dengan 30000, tingkatkan jika sering melihat penyeimbangan ulang karena heartbeat yang terlewatkan. |
max.poll.interval.ms |
300000 (default) | >session.timeout.ms | Digunakan untuk batas waktu penyeimbangan ulang, jadi ini tidak boleh diatur terlalu rendah. Harus lebih besar dari session.timeout.ms. |
Catatan lebih lanjut
Periksa tabel skenario kesalahan terkait konfigurasi umum berikut ini.
Gejala | Masalah | Solusi |
---|---|---|
Offset melakukan kegagalan karena penyeimbangan ulang | Konsumen Anda menunggu terlalu lama di antara panggilan ke poll() dan layanan mengeluarkan konsumen dari grup. | Anda memiliki beberapa opsi:
|
Pengecualian jaringan pada throughput hasil tinggi | Apakah Anda menggunakan klien Java + max.request.size default? Permintaan Anda mungkin terlalu besar. | Lihat konfigurasi Java di atas. |
Langkah berikutnya
Lihat Batas, kuota, dan batasan langganan dan layanan Azure untuk mengetahui kuota dan batasan semua layanan Azure.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk