View a markdown version of this page

Konfigurasi KCL - Amazon Kinesis Data Streams

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

Konfigurasi KCL

Anda dapat mengatur properti konfigurasi untuk menyesuaikan fungsionalitas Perpustakaan Klien Kinesis untuk memenuhi persyaratan spesifik Anda. Tabel berikut menjelaskan properti konfigurasi dan kelas.

penting

Di KCL 3.x, algoritma penyeimbangan beban bertujuan untuk mencapai pemanfaatan CPU yang merata di seluruh pekerja, bukan jumlah sewa yang sama per pekerja. Meng maxLeasesForWorker atur terlalu rendah, Anda mungkin membatasi kemampuan KCL untuk menyeimbangkan beban kerja secara efektif. Jika Anda menggunakan maxLeasesForWorker konfigurasi, pertimbangkan untuk meningkatkan nilainya untuk memungkinkan distribusi beban sebaik mungkin.

Tabel ini menunjukkan properti konfigurasi untuk KCL
Properti konfigurasi Kelas konfigurasi Deskripsi Nilai default
applicationName ConfigsBuilder Nama untuk aplikasi KCL ini. Digunakan sebagai default untuk tableName danconsumerName. Tidak berlaku
tableName ConfigsBuilder

Mengizinkan penggantian nama tabel yang digunakan untuk tabel sewa Amazon DynamoDB.

Tidak berlaku
streamName ConfigsBuilder

Nama aliran tempat aplikasi ini memproses rekaman.

Tidak berlaku
workerIdentifier ConfigsBuilder

Pengidentifikasi unik yang mewakili instansiasi prosesor aplikasi ini. Ini harus unik.

Tidak berlaku
failoverTimeMillis LeaseManagementConfig

Jumlah milidetik yang harus lewat sebelum Anda dapat menganggap pemilik sewa telah gagal. Untuk aplikasi yang memiliki sejumlah besar pecahan, ini dapat diatur ke angka yang lebih tinggi untuk mengurangi jumlah IOPS DynamoDB yang diperlukan untuk melacak sewa.

10.000 (10 detik)
shardSyncIntervalMillis LeaseManagementConfig

Waktu antara panggilan sinkronisasi pecahan.

60,000 (60 detik)
cleanupLeasesUponShardCompletion LeaseManagementConfig

Ketika ditetapkan, sewa dihapus segera setelah sewa anak mulai diproses.

BETUL
ignoreUnexpectedChildShards LeaseManagementConfig

Saat disetel, pecahan anak yang memiliki pecahan terbuka diabaikan. Ini terutama untuk Streams DynamoDB.

SALAH
maxLeasesForWorker LeaseManagementConfig

Jumlah maksimum sewa yang harus diterima seorang pekerja. Mengaturnya terlalu rendah dapat menyebabkan hilangnya data jika pekerja tidak dapat memproses semua pecahan, dan menyebabkan penugasan sewa yang kurang optimal di antara pekerja. Pertimbangkan jumlah pecahan total, jumlah pekerja, dan kapasitas pemrosesan pekerja saat mengonfigurasinya.

Tidak terbatas.
maxLeaseRenewalThreads LeaseManagementConfig

Mengontrol ukuran kumpulan thread pembaharui sewa. Semakin banyak sewa yang bisa diambil aplikasi Anda, semakin besar kumpulan ini seharusnya.

20
billingMode LeaseManagementConfig

Menentukan mode kapasitas tabel sewa yang dibuat di DynamoDB. Ada dua opsi: mode on-demand (PAY_PER_REQUEST) dan mode disediakan. Sebaiknya gunakan pengaturan default mode on-demand karena secara otomatis menskalakan untuk mengakomodasi beban kerja Anda tanpa perlu perencanaan kapasitas.

PAY_PER_REQUEST (mode sesuai permintaan)
initialLeaseTableReadCapacity LeaseManagementConfig Kapasitas baca DynamoDB yang digunakan jika Kinesis Client Library perlu membuat tabel sewa DynamoDB baru dengan mode kapasitas yang disediakan. Anda dapat mengabaikan konfigurasi ini jika Anda menggunakan mode kapasitas sesuai permintaan default dalam billingMode konfigurasi. 10
initialLeaseTableWriteCapacity LeaseManagementConfig Kapasitas baca DynamoDB yang digunakan jika Kinesis Client Library perlu membuat tabel sewa DynamoDB baru. Anda dapat mengabaikan konfigurasi ini jika Anda menggunakan mode kapasitas sesuai permintaan default dalam billingMode konfigurasi. 10
initialPositionInStreamExtended LeaseManagementConfig

Posisi awal dalam aliran tempat aplikasi harus dimulai. Ini hanya digunakan selama pembuatan sewa awal.

InitialPositionInStream.TRIM_CAKRAWALA

reBalanceThresholdPercentage LeaseManagementConfig

Nilai persentase yang menentukan kapan algoritma penyeimbangan beban harus mempertimbangkan untuk menetapkan kembali pecahan di antara pekerja.

Ini adalah konfigurasi baru yang diperkenalkan di KCL 3.x.

10
dampeningPercentage LeaseManagementConfig

Nilai persentase yang digunakan untuk meredam jumlah beban yang akan dipindahkan dari pekerja yang kelebihan beban dalam operasi rebalance tunggal.

Ini adalah konfigurasi baru yang diperkenalkan di KCL 3.x.

60
allowThroughputOvershoot LeaseManagementConfig

Menentukan apakah sewa tambahan masih perlu diambil dari pekerja yang kelebihan beban meskipun hal itu menyebabkan jumlah total throughput sewa yang diambil melebihi jumlah throughput yang diinginkan.

Ini adalah konfigurasi baru yang diperkenalkan di KCL 3.x.

BETUL
disableWorkerMetrics LeaseManagementConfig

Menentukan apakah KCL harus mengabaikan metrik sumber daya dari pekerja (seperti pemanfaatan CPU) saat menetapkan kembali sewa dan penyeimbangan beban. Setel ini ke TRUE jika Anda ingin mencegah KCL dari penyeimbangan beban berdasarkan pemanfaatan CPU.

Ini adalah konfigurasi baru yang diperkenalkan di KCL 3.x.

SALAH
maxThroughputPerHostKBps LeaseManagementConfig

Jumlah throughput maksimum untuk ditetapkan ke pekerja selama penugasan sewa.

Ini adalah konfigurasi baru yang diperkenalkan di KCL 3.x.

Tidak terbatas.
isGracefulLeaseHandoffEnabled LeaseManagementConfig

Mengontrol perilaku serah terima sewa antar pekerja. Ketika disetel ke true, KCL akan mencoba mentransfer sewa dengan anggun dengan memberikan waktu yang RecordProcessor cukup bagi pecahan untuk menyelesaikan pemrosesan sebelum menyerahkan sewa kepada pekerja lain. Ini dapat membantu memastikan integritas data dan transisi yang mulus tetapi dapat meningkatkan waktu serah tangan.

Ketika diatur ke false, sewa akan segera diserahkan tanpa menunggu RecordProcessor hingga ditutup dengan anggun. Hal ini dapat menyebabkan serah tangan yang lebih cepat tetapi dapat berisiko pemrosesan yang tidak lengkap.

Catatan: Checkpointing harus diimplementasikan di dalam metode shutdownRequested () RecordProcessor untuk mendapatkan manfaat dari fitur serah terima sewa yang anggun.

Ini adalah konfigurasi baru yang diperkenalkan di KCL 3.x.

BETUL
gracefulLeaseHandoffTimeoutMillis LeaseManagementConfig

Menentukan waktu minimum (dalam milidetik) untuk menunggu pecahan saat ini ditutup dengan anggun sebelum secara paksa mentransfer sewa ke pemilik berikutnya. RecordProcessor

Jika metode processRecords biasanya berjalan lebih lama dari nilai default, pertimbangkan untuk meningkatkan pengaturan ini. Ini memastikan RecordProcessor memiliki waktu yang cukup untuk menyelesaikan prosesnya sebelum transfer sewa terjadi.

Ini adalah konfigurasi baru yang diperkenalkan di KCL 3.x.

30.000 (30 detik)
maxRecords PollingConfig

Memungkinkan pengaturan jumlah maksimum rekaman yang dikembalikan Kinesis.

10,000
retryGetRecordsInSeconds PollingConfig

Mengkonfigurasi penundaan antara GetRecords upaya untuk kegagalan.

Tidak ada
maxGetRecordsThreadPool PollingConfig

Ukuran kumpulan utas yang digunakan untuk GetRecords.

Tidak ada
idleTimeBetweenReadsInMillis PollingConfig

Menentukan berapa lama KCL menunggu di antara GetRecords panggilan untuk melakukan polling data dari aliran data. Satuannya adalah milidetik.

1500
callProcessRecordsEvenForEmptyRecordList ProcessorConfig

Ketika diatur, prosesor rekaman dipanggil bahkan ketika tidak ada catatan yang disediakan dari Kinesis.

SALAH
parentShardPollIntervalMillis CoordinatorConfig

Seberapa sering prosesor rekaman harus melakukan polling untuk melihat apakah pecahan induk telah selesai. Satuannya adalah milidetik.

10.000 (10 detik)
skipShardSyncAtWorkerInitializationIfLeaseExist CoordinatorConfig

Nonaktifkan sinkronisasi data pecahan jika tabel sewa berisi sewa yang ada.

SALAH

shardPrioritization CoordinatorConfig

Prioritas pecahan mana yang akan digunakan.

NoOpShardPrioritization

ClientVersionConfig CoordinatorConfig

Menentukan mode kompatibilitas versi KCL mana yang akan dijalankan aplikasi. Konfigurasi ini hanya untuk migrasi dari versi KCL sebelumnya. Saat bermigrasi ke 3.x, Anda perlu mengatur konfigurasi ini ke. CLIENT_VERSION_CONFIG_COMPATIBLE_WITH_2X Anda dapat menghapus konfigurasi ini setelah menyelesaikan migrasi.

CLIENT_VERSION_CONFIG_3X
taskBackoffTimeMillis LifecycleConfig

Waktu menunggu untuk mencoba lagi tugas KCL yang gagal. Satuannya adalah milidetik.

500 (0,5 detik)
logWarningForTaskAfterMillis LifecycleConfig

Berapa lama menunggu sebelum peringatan dicatat jika tugas belum selesai.

Tidak ada
listShardsBackoffTimeInMillis RetrievalConfig Jumlah milidetik untuk menunggu di antara panggilan ListShards saat kegagalan terjadi. Satuannya adalah milidetik. 1.500 (1,5 detik)
maxListShardsRetryAttempts RetrievalConfig Jumlah maksimum kali ListShards mencoba lagi sebelum menyerah. 50
metricsBufferTimeMillis MetricsConfig

Menentukan durasi maksimum (dalam milidetik) untuk menyangga metrik sebelum menerbitkannya ke. CloudWatch

10.000 (10 detik)
metricsMaxQueueSize MetricsConfig

Menentukan jumlah maksimum metrik yang akan disangga sebelum dipublikasikan ke CloudWatch.

10,000
metricsLevel MetricsConfig

Menentukan tingkat perincian CloudWatch metrik yang akan diaktifkan dan dipublikasikan.

Nilai yang mungkin: TIDAK ADA, RINGKASAN, DETAIL.

MetricsLevel.DETAILED

metricsEnabledDimensions MetricsConfig

Kontrol dimensi yang diizinkan untuk CloudWatch Metrik.

Semua dimensi

Konfigurasi yang dihentikan di KCL 3.x

Properti konfigurasi berikut dihentikan di KCL 3.x:

Tabel menunjukkan properti konfigurasi yang dihentikan untuk KCL 3.x
Properti konfigurasi Kelas konfigurasi Deskripsi
maxLeasesToStealAtOneTime LeaseManagementConfig

Jumlah maksimum sewa yang harus dicuri oleh aplikasi pada satu waktu. KCL 3.x akan mengabaikan konfigurasi ini dan menetapkan kembali sewa berdasarkan pemanfaatan sumber daya pekerja.

enablePriorityLeaseAssignment LeaseManagementConfig

Mengontrol apakah pekerja harus memprioritaskan mengambil sewa yang sangat kedaluwarsa (sewa tidak diperpanjang untuk 3x waktu failover) dan sewa shard baru, terlepas dari jumlah target sewa tetapi tetap menghormati batas sewa maksimum. KCL 3.x akan mengabaikan konfigurasi ini dan selalu menyebarkan sewa yang kedaluwarsa di seluruh pekerja.

penting

Anda masih harus memiliki properti konfigurasi yang tidak terhubung selama migrasi dari versi KCL sebelumnya ke KCL 3.x. Selama migrasi, pekerja KCL pertama-tama akan memulai dengan mode kompatibel KCL 2.x dan beralih ke mode fungsionalitas KCL 3.x ketika mendeteksi bahwa semua pekerja KCL aplikasi siap menjalankan KCL 3.x. Konfigurasi yang dihentikan ini diperlukan saat pekerja KCL menjalankan mode yang kompatibel dengan KCL 2.x.