Menerapkan toleransi kesalahan dalam Layanan Terkelola untuk Apache Flink - Layanan Terkelola untuk Apache Flink

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.

Menerapkan toleransi kesalahan dalam Layanan Terkelola untuk Apache Flink

Checkpointing adalah metode yang digunakan untuk menerapkan toleransi kesalahan di Amazon Managed Service untuk Apache Flink. Pos pemeriksaan adalah up-to-date cadangan dari aplikasi yang sedang berjalan yang digunakan untuk memulihkan segera dari gangguan atau kegagalan aplikasi yang tidak terduga.

Untuk detail tentang checkpointing di aplikasi Apache Flink, lihat Checkpoints di Apache Flink Documentation.

Snapshot adalah cadangan status aplikasi yang dibuat dan dikelola secara manual. Snapshot memungkinkan Anda memulihkan aplikasi Anda ke status sebelumnya dengan memanggil UpdateApplication. Untuk informasi selengkapnya, lihat Kelola cadangan aplikasi menggunakan snapshot.

Jika checkpointing diaktifkan untuk aplikasi Anda, layanan menyediakan toleransi kesalahan dengan membuat dan memuat cadangan data aplikasi jika terjadi mulai ulang aplikasi tak terduga. Mulai ulang aplikasi tak terduga ini dapat disebabkan oleh mulai ulang tugas tak terduga, kegagalan instans, dll. Ini memberi aplikasi semantik yang sama seperti eksekusi bebas kegagalan selama mulai ulang ini.

Jika snapshot diaktifkan untuk aplikasi, dan dikonfigurasi menggunakan aplikasi ApplicationRestoreConfiguration, maka layanan menyediakan semantik pemrosesan tepat sekali selama pembaruan aplikasi, atau selama penskalaan atau pemeliharaan terkait layanan.

Konfigurasikan checkpointing di Managed Service untuk Apache Flink

Anda dapat mengonfigurasi perilaku checkpointing aplikasi Anda. Anda dapat menentukan apakah ini mempertahankan status checkpointing, seberapa sering status untuk titik pemeriksaan disimpan, dan interval minimum antara akhir dari satu operasi titik pemeriksaan dan awal dari operasi lainnya.

Anda mengonfigurasi pengaturan berikut menggunakan UpdateApplicationAPIoperasi CreateApplicationatau:

  • CheckpointingEnabled — Menunjukkan apakah checkpointing diaktifkan dalam aplikasi.

  • CheckpointInterval — Berisi waktu dalam milidetik di antara operasi titik pemeriksaan (persistensi).

  • ConfigurationType — Atur nilai ini ke DEFAULT untuk menggunakan perilaku checkpointing default. Atur nilai ini ke CUSTOM untuk mengonfigurasi nilai lainnya.

    catatan

    Perilaku titik pemeriksaan default adalah sebagai berikut:

    • CheckpointingEnabled: benar

    • CheckpointInterval: 60000

    • MinPauseBetweenCheckpoints: 5000

    Jika ConfigurationTypediatur keDEFAULT, nilai sebelumnya akan digunakan, bahkan jika mereka diatur ke nilai lain menggunakan baik menggunakan AWS Command Line Interface, atau dengan menetapkan nilai-nilai dalam kode aplikasi.

    catatan

    Untuk Flink 1.15 dan seterusnya, Layanan Terkelola untuk Apache Flink akan digunakan stop-with-savepoint selama Pembuatan Snapshot Otomatis, yaitu pembaruan aplikasi, penskalaan, atau penghentian.

  • MinPauseBetweenCheckpoints — Waktu minimum dalam milidetik antara akhir dari satu operasi titik pemeriksaan dan awal dari operasi lainnya. Mengatur nilai ini mencegah aplikasi dari melakukan checkpointing terus-menerus ketika operasi titik pemeriksaan memakan waktu lebih lama dari CheckpointInterval.

Tinjau contoh pos pemeriksaan API

Bagian ini mencakup contoh permintaan API tindakan untuk mengonfigurasi pos pemeriksaan untuk aplikasi. Untuk informasi tentang cara menggunakan JSON file untuk masukan API tindakan, lihatLayanan Terkelola untuk kode contoh API Apache Flink.

Konfigurasikan checkpointing untuk aplikasi baru

Contoh permintaan untuk tindakan CreateApplication berikut mengonfigurasi checkpointing saat Anda membuat aplikasi:

{ "ApplicationName": "MyApplication", "RuntimeEnvironment":"FLINK-1_19", "ServiceExecutionRole":"arn:aws:iam::123456789123:role/myrole", "ApplicationConfiguration": { "ApplicationCodeConfiguration":{ "CodeContent":{ "S3ContentLocation":{ "BucketARN":"arn:aws:s3:::mybucket", "FileKey":"myflink.jar", "ObjectVersion":"AbCdEfGhIjKlMnOpQrStUvWxYz12345" } }, "FlinkApplicationConfiguration": { "CheckpointConfiguration": { "CheckpointingEnabled": "true", "CheckpointInterval": 20000, "ConfigurationType": "CUSTOM", "MinPauseBetweenCheckpoints": 10000 } } }

Nonaktifkan checkpointing untuk aplikasi baru

Contoh permintaan untuk tindakan CreateApplication berikut menonaktifkan checkpointing saat Anda membuat aplikasi:

{ "ApplicationName": "MyApplication", "RuntimeEnvironment":"FLINK-1_19", "ServiceExecutionRole":"arn:aws:iam::123456789123:role/myrole", "ApplicationConfiguration": { "ApplicationCodeConfiguration":{ "CodeContent":{ "S3ContentLocation":{ "BucketARN":"arn:aws:s3:::mybucket", "FileKey":"myflink.jar", "ObjectVersion":"AbCdEfGhIjKlMnOpQrStUvWxYz12345" } }, "FlinkApplicationConfiguration": { "CheckpointConfiguration": { "CheckpointingEnabled": "false" } } }

Konfigurasikan checkpointing untuk aplikasi yang sudah ada

Contoh permintaan untuk tindakan UpdateApplication berikut mengonfigurasi checkpointing untuk aplikasi yang ada:

{ "ApplicationName": "MyApplication", "ApplicationConfigurationUpdate": { "FlinkApplicationConfigurationUpdate": { "CheckpointConfigurationUpdate": { "CheckpointingEnabledUpdate": true, "CheckpointIntervalUpdate": 20000, "ConfigurationTypeUpdate": "CUSTOM", "MinPauseBetweenCheckpointsUpdate": 10000 } } } }

Nonaktifkan checkpointing untuk aplikasi yang sudah ada

Contoh permintaan untuk tindakan UpdateApplication berikut menonaktifkan checkpointing untuk aplikasi yang ada:

{ "ApplicationName": "MyApplication", "ApplicationConfigurationUpdate": { "FlinkApplicationConfigurationUpdate": { "CheckpointConfigurationUpdate": { "CheckpointingEnabledUpdate": false, "CheckpointIntervalUpdate": 20000, "ConfigurationTypeUpdate": "CUSTOM", "MinPauseBetweenCheckpointsUpdate": 10000 } } } }