MSKKonfigurasi Amazon khusus - Amazon Managed Streaming untuk Apache Kafka

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

MSKKonfigurasi Amazon khusus

Anda dapat menggunakan Amazon MSK untuk membuat MSK konfigurasi kustom tempat Anda mengatur properti berikut. Properti yang tidak Anda tetapkan secara eksplisit mendapatkan nilai yang mereka miliki. MSKKonfigurasi Amazon default Untuk informasi selengkapnya tentang properti konfigurasi, lihat Konfigurasi Apache Kafka.

Properti konfigurasi Apache Kafka
Nama Penjelasan
allow.everyone.if.no.acl.found Jika Anda ingin mengatur properti inifalse, pertama-tama pastikan Anda mendefinisikan Apache Kafka ACLs untuk cluster Anda. Jika Anda mengatur properti ini false dan Anda tidak mendefinisikan Apache Kafka terlebih dahuluACLs, Anda kehilangan akses ke cluster. Jika itu terjadi, Anda dapat memperbarui konfigurasi lagi dan mengatur properti ini true untuk mendapatkan kembali akses ke cluster.
auto.create.topics.enable Mengaktifkan pembuatan otomatis topik di server.
kompresi.type Jenis kompresi akhir untuk topik tertentu. Anda dapat mengatur properti ini ke codec kompresi standar (gzip,, snappylz4, danzstd). Ini juga menerima. uncompressed Nilai ini setara dengan tidak ada kompresi. Jika Anda menetapkan nilainyaproducer, itu berarti mempertahankan codec kompresi asli yang ditetapkan oleh produsen.

koneksi.max.idle.ms

Batas waktu koneksi idle dalam milidetik. Thread prosesor soket server menutup koneksi yang menganggur lebih dari nilai yang Anda tetapkan untuk properti ini.
default.replication.factor Faktor replikasi default untuk topik yang dibuat secara otomatis.
delete.topic.enable Mengaktifkan operasi menghapus topik. Jika Anda mematikan setelan ini, Anda tidak dapat menghapus topik melalui alat admin.
group.initial.rebalance.delay.ms Jumlah waktu koordinator grup menunggu lebih banyak konsumen data untuk bergabung dengan grup baru sebelum koordinator grup melakukan penyeimbangan ulang pertama. Penundaan yang lebih lama berarti berpotensi lebih sedikit penyeimbangan kembali, tetapi ini meningkatkan waktu sampai pemrosesan dimulai.
group.max.session.timeout.ms Batas waktu sesi maksimum untuk konsumen terdaftar. Batas waktu yang lebih lama memberi konsumen lebih banyak waktu untuk memproses pesan di antara detak jantung dengan mengorbankan waktu yang lebih lama untuk mendeteksi kegagalan.
group.min.session.timeout.ms Batas waktu sesi minimum untuk konsumen terdaftar. Batas waktu yang lebih pendek menghasilkan deteksi kegagalan yang lebih cepat dengan mengorbankan detak jantung konsumen yang lebih sering. Ini dapat membanjiri sumber daya broker.
leader.imbalance.per.broker.percentage Rasio ketidakseimbangan pemimpin diperbolehkan per broker. Pengontrol memicu saldo pemimpin jika melebihi nilai ini per broker. Nilai ini ditentukan dalam persentase.
log.cleaner.delete.retention.ms Jumlah waktu yang Anda inginkan Apache Kafka untuk menyimpan catatan yang dihapus. Nilai minimum adalah 0.
log.cleaner.min.cleanable.ratio

Properti konfigurasi ini dapat memiliki nilai antara 0 dan 1. Nilai ini menentukan seberapa sering pemadat log mencoba membersihkan log (jika pemadatan log diaktifkan). Secara default, Apache Kafka menghindari pembersihan log jika lebih dari 50% log telah dipadatkan. Rasio ini membatasi ruang maksimum yang terbuang log dengan duplikat (pada 50%, ini berarti paling banyak 50% dari log dapat berupa duplikat). Rasio yang lebih tinggi berarti pembersihan yang lebih sedikit dan lebih efisien, tetapi lebih banyak ruang yang terbuang di log.

log.cleanup.policy Kebijakan pembersihan default untuk segmen di luar jendela retensi. Daftar kebijakan valid yang dipisahkan koma. Kebijakan yang valid adalah delete dancompact. Untuk klaster berkemampuan Penyimpanan Berjenjang, kebijakan yang valid hanya berlaku. delete
log.flush.interval.messages Jumlah pesan yang terakumulasi pada partisi log sebelum pesan dibuang ke disk.
log.flush.interval.ms Waktu maksimum dalam milidetik bahwa pesan dalam topik apa pun tetap dalam memori sebelum dibuang ke disk. Jika Anda tidak menetapkan nilai ini, nilai di log.flush.scheduler.interval.ms akan digunakan. Nilai minimum adalah 0.
log.message.timestamp.difference.max.ms Perbedaan waktu maksimum antara stempel waktu ketika broker menerima pesan dan stempel waktu yang ditentukan dalam pesan. Jika log.message.timestamp.type=CreateTime, pesan ditolak jika perbedaan stempel waktu melebihi ambang batas ini. Konfigurasi ini diabaikan jika log.message.timestamp.type=. LogAppendTime
log.message.timestamp.type Menentukan apakah stempel waktu dalam pesan adalah waktu pembuatan pesan atau log menambahkan waktu. Nilai yang diizinkan adalah CreateTime danLogAppendTime.
log.retention.bytes Ukuran maksimum log sebelum menghapusnya.
log.retention.hours Jumlah jam untuk menyimpan file log sebelum menghapusnya, tersier ke properti log.retention.ms.
log.retention.minutes Jumlah menit untuk menyimpan file log sebelum menghapusnya, sekunder ke properti log.retention.ms. Jika Anda tidak menyetel nilai ini, nilai di log.retention.hours akan digunakan.
log.retention.ms Jumlah milidetik untuk menyimpan file log sebelum menghapusnya (dalam milidetik), Jika tidak disetel, nilai dalam log.retention.minutes digunakan.
log.roll.ms Waktu maksimum sebelum segmen log baru diluncurkan (dalam milidetik). Jika Anda tidak menyetel properti ini, nilai di log.roll.hours digunakan. Nilai minimum yang mungkin untuk properti ini adalah 1.
log.segment.bytes Ukuran maksimum dari satu file log.
max.incremental.fetch.session.cache.slots Jumlah maksimum sesi pengambilan inkremental yang dipertahankan.
message.max.bytes

Ukuran batch rekor terbesar yang diizinkan Kafka. Jika Anda meningkatkan nilai ini dan ada konsumen yang lebih tua dari 0.10.2, Anda juga harus meningkatkan ukuran pengambilan konsumen sehingga mereka dapat mengambil batch rekaman sebesar ini.

Versi format pesan terbaru selalu mengelompokkan pesan ke dalam batch untuk efisiensi. Versi format pesan sebelumnya tidak mengelompokkan catatan yang tidak terkompresi ke dalam batch, dan dalam kasus seperti itu, batas ini hanya berlaku untuk satu rekaman.

Anda dapat mengatur nilai ini per topik dengan konfigurasi max.message.bytes level topik.

min.insync.replika

Ketika produser menetapkan acks ke "all" (or"-1"), nilai dalam min.insync.replicas menentukan jumlah minimum replika yang harus mengakui penulisan agar penulisan dianggap berhasil. Jika minimum ini tidak dapat dipenuhi, produsen menimbulkan pengecualian (salah satu NotEnoughReplicas atau NotEnoughReplicasAfterAppend).

Anda dapat menggunakan nilai di min.insync.replicas dan acks untuk menerapkan jaminan daya tahan yang lebih besar. Misalnya, Anda dapat membuat topik dengan faktor replikasi 3, mengatur min.insync.replicas ke 2, dan menghasilkan dengan acks of. "all" Ini memastikan bahwa produser memunculkan pengecualian jika sebagian besar replika tidak menerima penulisan.

num.io.thread Jumlah thread yang digunakan server untuk memproses permintaan, yang mungkin termasuk disk I/O.
num.network.threads Jumlah thread yang digunakan server untuk menerima permintaan dari jaringan dan mengirim tanggapan ke sana.
num.partisi Jumlah default partisi log per topik.
num.recovery.threads.per.data.dir Jumlah thread per direktori data yang akan digunakan untuk memulihkan log saat startup dan dan untuk flush mereka saat shutdown.
num.replica.fetchers Jumlah utas fetcher yang digunakan untuk mereplikasi pesan dari broker sumber. Jika Anda meningkatkan nilai ini, Anda dapat meningkatkan derajat paralelisme I/O di broker pengikut.
offsets.retention.minutes Setelah kelompok konsumen kehilangan semua konsumennya (yaitu, menjadi kosong) offsetnya disimpan untuk periode retensi ini sebelum dibuang. Untuk konsumen mandiri (yaitu, mereka yang menggunakan penugasan manual), offset kedaluwarsa setelah waktu komit terakhir ditambah periode retensi ini.
offsets.topic.replication.factor Faktor replikasi untuk topik offset. Tetapkan nilai ini lebih tinggi untuk memastikan ketersediaan. Pembuatan topik internal gagal hingga ukuran cluster memenuhi persyaratan faktor replikasi ini.
replica.fetch.max.bytes Jumlah byte pesan untuk mencoba untuk mengambil untuk setiap partisi. Ini bukan maksimum absolut. Jika kumpulan rekaman pertama di partisi pengambilan yang tidak kosong pertama lebih besar dari nilai ini, kumpulan rekaman dikembalikan untuk memastikan kemajuan. Message.max.bytes (konfigurasi broker) atau max.message.bytes (konfigurasi topik) mendefinisikan ukuran batch rekaman maksimum yang diterima broker.
replica.fetch.response.max.bytes Jumlah maksimum byte yang diharapkan untuk seluruh respons pengambilan. Rekaman diambil dalam batch, dan jika kumpulan rekaman pertama di partisi pengambilan yang tidak kosong pertama lebih besar dari nilai ini, kumpulan rekaman akan tetap dikembalikan untuk memastikan kemajuan. Ini bukan maksimum absolut. Properti message.max.bytes (broker config) atau max.message.bytes (topic config) menentukan ukuran batch record maksimum yang diterima broker.
replica.lag.time.max.ms Jika pengikut belum mengirim permintaan pengambilan apa pun atau belum menghabiskan offset akhir log pemimpin setidaknya dalam jumlah milidetik ini, pemimpin akan menghapus pengikut dari. ISR

MinValue: 10000

MaxValue = 30000

replica.selector.class Nama kelas yang sepenuhnya memenuhi syarat yang mengimplementasikan. ReplicaSelector Broker menggunakan nilai ini untuk menemukan replika baca yang disukai. Jika Anda menggunakan Apache Kafka versi 2.4.1 atau lebih tinggi, dan ingin mengizinkan konsumen mengambil dari replika terdekat, atur properti ini ke. org.apache.kafka.common.replica.RackAwareReplicaSelector Untuk informasi selengkapnya, lihat Apache Kafka versi 2.4.1 (gunakan 2.4.1.1 sebagai gantinya).
replica.socket.receive.buffer.bytes Soket menerima buffer untuk permintaan jaringan.
socket.receive.buffer.bytes RCVBUFBuffer SO_ dari soket server soket. Nilai minimum yang dapat Anda atur untuk properti ini adalah -1. Jika nilainya -1, Amazon MSK menggunakan default OS.
socket.request.max.bytes Jumlah maksimum byte dalam permintaan soket.
socket.send.buffer.bytes SNDBUFBuffer SO_ dari soket server soket. Nilai minimum yang dapat Anda atur untuk properti ini adalah -1. Jika nilainya -1, Amazon MSK menggunakan default OS.
transaksi.max.timeout.ms Batas waktu maksimum untuk transaksi. Jika waktu transaksi yang diminta dari klien melebihi nilai ini, broker mengembalikan kesalahan InitProducerIdRequest. Ini mencegah klien dari batas waktu yang terlalu besar, dan ini dapat menghambat konsumen yang membaca dari topik yang termasuk dalam transaksi.
transaction.state.log.min.isr Mengganti konfigurasi min.insync.replicas untuk topik transaksi.
transaction.state.log.replication.factor Faktor replikasi untuk topik transaksi. Tetapkan properti ini ke nilai yang lebih tinggi untuk meningkatkan ketersediaan. Pembuatan topik internal gagal hingga ukuran cluster memenuhi persyaratan faktor replikasi ini.
transactional.id.expiration.ms Waktu dalam milidetik koordinator transaksi menunggu untuk menerima pembaruan status transaksi untuk transaksi saat ini sebelum koordinator kedaluwarsa ID transaksionalnya. Pengaturan ini juga memengaruhi kedaluwarsa ID produsen karena menyebabkan produser IDs kedaluwarsa ketika waktu ini berlalu setelah penulisan terakhir dengan ID produser yang diberikan. Produser IDs mungkin kedaluwarsa lebih cepat jika penulisan terakhir dari ID produsen dihapus karena pengaturan retensi untuk topik tersebut. Nilai minimum untuk properti ini adalah 1 milidetik.
unclean.leader.election.enable Menunjukkan jika replika yang tidak ada dalam ISR set harus berfungsi sebagai pemimpin sebagai upaya terakhir, meskipun ini dapat mengakibatkan hilangnya data.
zookeeper.connection.timeout.ms

ZooKeeper mode cluster. Waktu maksimum yang ditunggu klien untuk membuat koneksi. ZooKeeper Jika Anda tidak menetapkan nilai ini, nilai di zookeeper.session.timeout.ms digunakan.

MinValue = 6000

MaxValue (inklusif) = 18000

zookeeper.session.timeout.ms

ZooKeeper mode cluster. Batas waktu ZooKeeper sesi Apache dalam milidetik.

MinValue = 6000

MaxValue (inklusif) = 18000

Untuk mempelajari cara membuat MSK konfigurasi kustom, daftar semua konfigurasi, atau menjelaskannya, lihatOperasi MSK konfigurasi Amazon. Untuk membuat MSK klaster dengan MSK konfigurasi kustom, atau memperbarui klaster dengan konfigurasi kustom baru, lihatAmazonMSK: Cara kerjanya.

Saat Anda memperbarui MSK klaster yang ada dengan MSK konfigurasi khusus, Amazon MSK melakukan restart bergulir bila perlu, dan menggunakan praktik terbaik untuk meminimalkan waktu henti pelanggan. Misalnya, setelah Amazon MSK memulai ulang setiap broker, Amazon MSK mencoba membiarkan broker mengejar data yang mungkin terlewatkan oleh broker selama pembaruan konfigurasi sebelum pindah ke broker berikutnya.

MSKKonfigurasi Amazon dinamis

Selain properti konfigurasi yang MSK disediakan Amazon, Anda dapat secara dinamis mengatur properti konfigurasi tingkat klaster dan tingkat broker yang tidak memerlukan restart broker. Anda dapat secara dinamis mengatur beberapa properti konfigurasi. Ini adalah properti yang tidak ditandai sebagai hanya-baca dalam tabel di bawah Konfigurasi Broker dalam dokumentasi Apache Kafka. Untuk informasi tentang konfigurasi dinamis dan perintah contoh, lihat Memperbarui Konfigurasi Broker dalam dokumentasi Apache Kafka.

catatan

Anda dapat mengatur advertised.listeners properti, tetapi bukan listeners properti.

Konfigurasi Amazon tingkat topik MSK

Anda dapat menggunakan perintah Apache Kafka untuk mengatur atau memodifikasi properti konfigurasi tingkat topik untuk topik baru dan yang sudah ada. Untuk informasi selengkapnya tentang properti konfigurasi tingkat topik dan contoh tentang cara mengaturnya, lihat Konfigurasi Tingkat Topik dalam dokumentasi Apache Kafka.

Status MSK konfigurasi Amazon

MSKKonfigurasi Amazon dapat berada di salah satu status berikut. Untuk melakukan operasi pada konfigurasi, konfigurasi harus dalam DELETE_FAILED keadaan ACTIVE atau:

  • ACTIVE

  • DELETING

  • DELETE_FAILED