Amazon Managed Service untuk Apache Flink sebelumnya dikenal sebagai Amazon Kinesis Data Analytics untuk Apache Flink.
Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Mencapai kesiapan produksi untuk Managed Service Anda untuk aplikasi Apache Flink
Ini adalah kumpulan aspek penting dari menjalankan aplikasi produksi pada Managed Service untuk Apache Flink. Ini bukan daftar lengkap, melainkan minimum dari apa yang harus Anda perhatikan sebelum memasukkan aplikasi ke dalam produksi.
Load-test aplikasi Anda
Beberapa masalah dengan aplikasi hanya bermanifestasi di bawah beban berat. Kami telah melihat kasus di mana aplikasi tampak sehat, namun peristiwa operasional secara substansional memperkuat beban pada aplikasi. Ini dapat terjadi sepenuhnya independen dari aplikasi itu sendiri. Jika sumber data atau data sink tidak tersedia selama beberapa jam, aplikasi Flink tidak dapat membuat kemajuan. Ketika masalah itu diperbaiki, ada tumpukan data yang belum diproses yang telah terakumulasi, yang dapat sepenuhnya menghabiskan sumber daya yang tersedia. Beban kemudian dapat memperkuat bug atau masalah kinerja yang belum muncul sebelumnya.
Oleh karena itu penting bahwa Anda menjalankan tes beban yang tepat untuk aplikasi produksi. Pertanyaan yang harus dijawab selama tes beban tersebut meliputi:
Apakah aplikasi stabil di bawah beban tinggi yang berkelanjutan?
Bisakah aplikasi masih mengambil savepoint di bawah beban puncak?
Berapa lama waktu yang dibutuhkan untuk memproses backlog 1 jam? Dan berapa lama selama 24 jam (tergantung pada retensi maksimal data dalam aliran)?
Apakah throughput aplikasi meningkat saat aplikasi diskalakan?
Ketika mengkonsumsi dari aliran data, skenario ini dapat disimulasikan dengan memproduksi ke dalam aliran untuk beberapa waktu. Kemudian mulai aplikasi dan minta itu mengkonsumsi data dari awal waktu. Misalnya, gunakan posisi awal TRIM_HORIZON
dalam kasus aliran data Kinesis.
Tentukan paralelisme Max
Paralelisme maks mendefinisikan paralelisme maksimum yang dapat diskalakan oleh aplikasi stateful. Ini didefinisikan ketika status pertama kali dibuat dan tidak ada cara untuk menskalakan operator melebihi maksimum ini tanpa membuang status.
Paralelisme maks diatur saat status pertama kali dibuat.
Secara default, paralelisme Max diatur ke:
128, jika paralelisme <= 128
MIN(nextPowerOfTwo(parallelism + (parallelism / 2)), 2^15)
: jika paralelisme> 128
Jika Anda berencana untuk menskalakan paralelisme aplikasi > 128, Anda harus secara eksplisit mendefinisikan paralelisme Max.
Anda dapat menentukan paralelisme Max pada tingkat aplikasi, dengan env.setMaxParallelism(x)
atau operator tunggal. Kecuali ditentukan secara berbeda, semua operator mewarisi paralelisme Max aplikasi.
Untuk informasi selengkapnya, lihat Mengatur Paralelisme Maksimum di Dokumentasi
Tetapkan a UUID untuk semua operator
A UUID digunakan dalam operasi di mana Flink memetakan savepoint kembali ke operator individu. Menyetel spesifik UUID untuk setiap operator memberikan pemetaan yang stabil agar proses savepoint dipulihkan.
.map(...).uid("my-map-function")
Untuk informasi selengkapnya, lihat Daftar Periksa Kesiapan Produksi