Secara default, tugas streaming Dataflow menjalankan beberapa resource backend-nya di satu zona Compute Engine, sehingga tugas tersebut rentan terhadap kehilangan data selama pemadaman layanan zona. Ketersediaan tinggi streaming menjadikan tugas Streaming Engine sebagai resource regional dengan mereplikasi status backend di beberapa zona dalam region. Saat Anda mengaktifkan ketersediaan tinggi streaming, kegagalan zona tunggal tidak akan menyebabkan tugas streaming Anda berhenti.
Dukungan dan batasan
Ketersediaan tinggi streaming memiliki persyaratan dan batasan berikut:
- Streaming Engine diperlukan: Tugas harus berupa pipeline streaming yang menggunakan Streaming Engine.
- Penempatan pekerja regional diperlukan: Pekerja Compute Engine harus menggunakan penempatan regional.
Jika tugas hanya memiliki worker di zona tertentu dan zona tersebut menjadi tidak tersedia, tugas tidak dapat memproses data karena worker-nya tidak tersedia, meskipun status backend direplikasi. Oleh karena itu, Dataflow menolak tugas yang menentukan zona pekerja tertentu (seperti
--workerZone,--worker_zone, atau--zone) saat ketersediaan tinggi streaming diaktifkan. - Hanya dikonfigurasi saat pembuatan tugas: Anda hanya dapat mengaktifkan ketersediaan tinggi streaming saat memulai tugas baru. Anda tidak dapat mengaktifkan atau menonaktifkan ketersediaan tinggi streaming saat melakukan update pipeline di tempat. Untuk mengubah setelan ini pada pipeline yang sedang berjalan, lakukan update penghentian dan penggantian otomatis, atau hentikan atau kosongkan pipeline dan mulai tugas baru tanpa flag
--update. - Jeda watermark tambahan: Saat Anda mengaktifkan ketersediaan tinggi streaming, watermark tugas hanya akan maju setelah data diproses dan direplikasi di seluruh zona. Karena watermark menunggu replikasi lintas zona, Anda mungkin melihat beberapa detik jeda watermark tambahan.
- Penagihan berbasis resource diperlukan: Tugas ketersediaan tinggi streaming selalu menggunakan penagihan berbasis resource dan tidak pernah menggunakan penagihan berbasis data yang diproses. Meskipun tugas menggunakan penagihan berbasis resource, tidak ada biaya tambahan untuk streaming ketersediaan tinggi selama Pratinjau; untuk mengetahui informasi selengkapnya, lihat Harga.
Mengaktifkan ketersediaan tinggi streaming
Untuk mengaktifkan ketersediaan tinggi streaming saat Anda meluncurkan tugas streaming Dataflow baru, tetapkan opsi layanan requires_high_availability.
Java
--dataflowServiceOptions=requires_high_availability
Python
--dataflow_service_options=requires_high_availability
Go
--dataflow_service_options=requires_high_availability
gcloud
Saat Anda menjalankan template menggunakan perintah gcloud dataflow jobs run atau Template Flex menggunakan perintah gcloud dataflow flex-template
run, sertakan flag --enable-streaming-engine dan --additional-experiments:
--enable-streaming-engine \
--additional-experiments=requires_high_availability
Misalnya, untuk menjalankan Template Flex dengan ketersediaan tinggi streaming diaktifkan:
gcloud dataflow flex-template run JOB_NAME \
--project=PROJECT_ID \
--template-file-gcs-location=TEMPLATE_LOCATION \
--region=REGION \
--parameters=KEY_1=VALUE_1,KEY_2=VALUE_2 \
--enable-streaming-engine \
--additional-experiments=requires_high_availability
Ganti nilai berikut:
JOB_NAME: nama tugas Dataflow AndaPROJECT_ID: Project ID Google Cloud AndaTEMPLATE_LOCATION: jalur Cloud Storage ke file spesifikasi Template Flex AndaREGION: region tempat tugas berjalanKEY_1=VALUE_1,KEY_2=VALUE_2: pasangan parameter nilai kunci untuk Template Fleksibel
Konsol
Untuk mengaktifkan ketersediaan tinggi streaming saat Anda menjalankan template atau Template Flex di konsol Google Cloud :
Di konsol Google Cloud , buka halaman Tugas Dataflow.
Klik Create job from template.
Pilih template yang ingin Anda jalankan dari menu Dataflow template.
Luaskan Optional parameters.
Di kolom Additional experiments, masukkan
requires_high_availability.Klik Jalankan tugas.
REST
Gunakan kolom additionalExperiments di objek
RuntimeEnvironment, atau di objek
FlexTemplateRuntimeEnvironment
saat meluncurkan Template Flex:
{
"additionalExperiments": ["requires_high_availability"]
}
Perilaku failover
Jika terjadi failover zona yang jarang terjadi, Anda mungkin akan melihat penurunan throughput selama beberapa detik hingga beberapa menit saat tugas beralih ke status utama baru dan membuat replika sekunder baru di zona lain. Failover terjadi secara otomatis tanpa menghapus data, dan Anda tidak perlu melakukan tindakan apa pun. Anda dapat melacak peristiwa failover menggunakan metrik yang dijelaskan dalam Memantau ketersediaan tinggi.
Sumber dan sink
Mengonfigurasi tugas Dataflow sebagai resource regional tidak otomatis membuat sumber dan tujuan tugas menjadi regional atau global. Sumber dan sink regional dan global berfungsi dengan baik dengan ketersediaan tinggi streaming, karena keduanya tidak bergantung pada satu zona. Ketersediaan setiap sumber atau tujuan bergantung pada konfigurasi layanan tersebut:
- Banyak Google Cloud sumber dan tujuan, seperti Pub/Sub, BigQuery, dan Google Cloud Managed Service untuk Apache Kafka, menyediakan ketersediaan regional atau global secara default.
- Jika Anda menggunakan sumber dan sink kustom atau yang dikelola sendiri, seperti Apache Kafka atau Apache Iceberg yang dihosting sendiri, Anda harus mengonfigurasi dan mengelola ketersediaan regionalnya secara independen.
Memantau ketersediaan tinggi
Anda dapat memantau status ketersediaan tinggi tugas di Cloud Monitoring menggunakan metrik dataflow.googleapis.com/job/high_availability_mode. Metrik pengukur boolean ini mencakup label status yang true untuk status
tugas saat ini dan false untuk status lainnya. Label status memiliki kemungkinan nilai berikut:
Disabled: Ketersediaan tinggi streaming tidak diaktifkan untuk tugas ini.Highly Available: Ketersediaan tinggi streaming diaktifkan dan status backend direplikasi di seluruh zona.Establishing High Availability: Status backend sementara tidak direplikasi (misalnya, setelah kegagalan zona), tetapi replika sekunder baru sedang dibuat.
Saat Anda mengaktifkan ketersediaan tinggi streaming, metrik watermark Dataflow standar hanya akan maju setelah data diproses dan direplikasi di seluruh zona. Untuk mengetahui informasi selengkapnya tentang cara melihat metrik, lihat Menggunakan Monitoring.
Harga
Selama Pratinjau, tidak ada biaya tambahan untuk menggunakan ketersediaan tinggi streaming.
Pada ketersediaan umum (GA), penggunaan replikasi ditagih dengan tarif yang sama dengan penggunaan status utama. Penggunaan status diukur sebagai bagian dari Unit Komputasi Streaming Engine.
Langkah berikutnya
- Pelajari lebih lanjut region Dataflow dan penempatan regional.
- Pelajari Streaming Engine lebih lanjut.
- Pantau pipeline Anda dengan Monitoring.