

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
<a name="how-fault"></a>

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](https://nightlies.apache.org/flink/flink-docs-release-1.19/docs/ops/state/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 [https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_UpdateApplication.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_UpdateApplication.html). Untuk informasi selengkapnya, lihat [Kelola cadangan aplikasi menggunakan snapshot](how-snapshots.md).

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](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_ApplicationRestoreConfiguration.html), 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
<a name="how-fault-configure"></a>

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 operasi API [https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_CreateApplication.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_CreateApplication.html) atau [https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_UpdateApplication.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_UpdateApplication.html):
+ `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 **ConfigurationType**diatur ke`DEFAULT`, 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 API pos pemeriksaan
<a name="how-fault-examples"></a>

Bagian ini mencakup contoh permintaan tindakan API untuk mengonfigurasi checkpointing untuk aplikasi. Untuk informasi tentang cara menggunakan file JSON untuk input tindakan API, lihat [Layanan Terkelola untuk kode contoh API Apache Flink](api-examples.md).

### Konfigurasikan checkpointing untuk aplikasi baru
<a name="how-fault-examples-create-config"></a>

Contoh permintaan untuk tindakan [https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_CreateApplication.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_CreateApplication.html) 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:::amzn-s3-demo-bucket",
          "FileKey":"myflink.jar",
          "ObjectVersion":"AbCdEfGhIjKlMnOpQrStUvWxYz12345"
        }
      },
      "FlinkApplicationConfiguration": { 
         "CheckpointConfiguration": { 
            "CheckpointingEnabled": "true",
            "CheckpointInterval": 20000,
            "ConfigurationType": "CUSTOM",
            "MinPauseBetweenCheckpoints": 10000
         }
      }
}
```

### Nonaktifkan checkpointing untuk aplikasi baru
<a name="how-fault-examples-create-disable"></a>

Contoh permintaan untuk tindakan [https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_CreateApplication.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_CreateApplication.html) 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:::amzn-s3-demo-bucket",
          "FileKey":"myflink.jar",
          "ObjectVersion":"AbCdEfGhIjKlMnOpQrStUvWxYz12345"
        }
      },
      "FlinkApplicationConfiguration": { 
         "CheckpointConfiguration": { 
            "CheckpointingEnabled": "false"
         }
      }
}
```

### Konfigurasikan checkpointing untuk aplikasi yang sudah ada
<a name="how-fault-examples-update-config"></a>

Contoh permintaan untuk tindakan [https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_UpdateApplication.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_UpdateApplication.html) 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
<a name="how-fault-examples-update-update-disable"></a>

Contoh permintaan untuk tindakan [https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_UpdateApplication.html](https://docs.aws.amazon.com/managed-service-for-apache-flink/latest/apiv2/API_UpdateApplication.html) berikut menonaktifkan checkpointing untuk aplikasi yang ada:

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