Resharding, Scaling, dan Pemrosesan Paralel - Amazon Kinesis Data Streams

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

Resharding, Scaling, dan Pemrosesan Paralel

Resharding memungkinkan Anda untuk menambah atau mengurangi jumlah pecahan dalam aliran untuk beradaptasi dengan perubahan laju data yang mengalir melalui aliran. Resharding biasanya dilakukan oleh aplikasi administratif yang memantau metrik penanganan data shard. Meskipun KCL itu sendiri tidak memulai operasi resharding, KCL dirancang untuk beradaptasi dengan perubahan jumlah pecahan yang dihasilkan dari resharding.

Seperti disebutkan dalamMenggunakan Meja Sewa untuk Melacak Pecahan yang Diproses oleh Aplikasi Konsumen KCL, KCL melacak pecahan dalam aliran menggunakan tabel Amazon DynamoDB. Ketika pecahan baru dibuat sebagai hasil dari resharding, KCL menemukan pecahan baru dan mengisi baris baru dalam tabel. Para pekerja secara otomatis menemukan pecahan baru dan membuat prosesor untuk menangani data dari mereka. KCL juga mendistribusikan pecahan di sungai di semua pekerja yang tersedia dan prosesor rekaman.

KCL memastikan bahwa setiap data yang ada dalam pecahan sebelum resharding diproses terlebih dahulu. Setelah data diproses, data dari pecahan baru dikirim ke prosesor rekaman. Dengan cara ini, KCL mempertahankan urutan di mana catatan data ditambahkan ke aliran untuk kunci partisi tertentu.

Contoh: Resharding, Scaling, dan Parallel Processing

Contoh berikut menggambarkan bagaimana KCL membantu Anda menangani penskalaan dan resharding:

  • Misalnya, jika aplikasi Anda berjalan pada satu instans EC2, dan sedang memproses satu aliran data Kinesis yang memiliki empat pecahan. Contoh yang satu ini memiliki satu pekerja KCL dan empat prosesor rekaman (satu prosesor rekaman untuk setiap pecahan). Keempat prosesor rekaman ini berjalan secara paralel dalam proses yang sama.

  • Selanjutnya, jika Anda menskalakan aplikasi untuk menggunakan instance lain, Anda memiliki dua instance yang memproses satu aliran yang memiliki empat pecahan. Ketika pekerja KCL memulai pada instance kedua, ia menyeimbangkan beban dengan instance pertama, sehingga setiap instance sekarang memproses dua pecahan.

  • Jika Anda kemudian memutuskan untuk membagi empat pecahan menjadi lima pecahan. KCL kembali mengoordinasikan pemrosesan di seluruh instance: satu instance memproses tiga pecahan, dan yang lainnya memproses dua pecahan. Koordinasi serupa terjadi saat Anda menggabungkan pecahan.

Biasanya, ketika Anda menggunakan KCL, Anda harus memastikan bahwa jumlah instance tidak melebihi jumlah pecahan (kecuali untuk tujuan siaga kegagalan). Setiap pecahan diproses oleh tepat satu pekerja KCL dan memiliki persis satu prosesor rekaman yang sesuai, jadi Anda tidak perlu beberapa contoh untuk memproses satu pecahan. Namun, satu pekerja dapat memproses sejumlah pecahan, jadi tidak apa-apa jika jumlah pecahan melebihi jumlah instance.

Untuk meningkatkan pemrosesan dalam aplikasi Anda, Anda harus menguji kombinasi dari pendekatan ini:

  • Meningkatkan ukuran instans (karena semua prosesor rekaman berjalan secara paralel dalam suatu proses)

  • Meningkatkan jumlah instance hingga jumlah maksimum pecahan terbuka (karena pecahan dapat diproses secara independen)

  • Meningkatkan jumlah pecahan (yang meningkatkan tingkat paralelisme)

Perhatikan bahwa Anda dapat menggunakan Auto Scaling untuk menskalakan instans secara otomatis berdasarkan metrik yang sesuai. Untuk informasi selengkapnya, lihat Panduan Pengguna Amazon EC2 Auto Scaling.

Ketika resharding meningkatkan jumlah pecahan dalam aliran, peningkatan yang sesuai dalam jumlah prosesor rekaman meningkatkan beban pada instans EC2 yang menghosting mereka. Jika instans merupakan bagian dari grup Auto Scaling, dan beban meningkat cukup, grup Auto Scaling menambahkan lebih banyak instance untuk menangani peningkatan beban. Anda harus mengonfigurasi instans untuk meluncurkan aplikasi Amazon Kinesis Data Streams saat startup, sehingga pekerja tambahan dan prosesor rekaman langsung aktif di instans baru.

Untuk informasi lebih lanjut tentang resharding, lihat. Membagikan Ulang Aliran