Jika perlu memindahkan data dari topik Apache Kafka open source ke Managed Service untuk Apache Kafka, Anda dapat melakukannya dengan template Dataflow. Anda dapat menggunakan konsol Google Cloud , REST API, atau Google Cloud CLI. Pesan dalam topik Kafka harus dipublikasikan menggunakan skema dan encoding AVRO atau JSON.
Dokumen ini membantu Anda mengonfigurasi template Kafka ke Kafka Dataflow menggunakan konsol Google Cloud .
Google Cloud produk yang digunakan
Template Dataflow Kafka ke Kafka menggunakan produk Google Cloud yang dapat ditagih berikut. Gunakan Kalkulator harga untuk membuat perkiraan biaya berdasarkan penggunaan yang Anda proyeksikan.
- Dataflow: Dataflow adalah layanan pemrosesan data terkelola sepenuhnya. Template Kafka ke Kafka Dataflow menggunakan Dataflow untuk membuat pipeline yang membaca data dari topik Kafka eksternal Anda dan menuliskannya ke topik Managed Service untuk Apache Kafka. Kemampuan penskalaan otomatis dan pemulihan mandiri Dataflow memastikan pipeline Anda berjalan dengan andal dan efisien.
- Cloud Storage: Cloud Storage menyediakan penyimpanan objek. Opsi ini hanya digunakan jika Anda menggunakan autentikasi TLS untuk sumber Kafka eksternal. Anda menyimpan file Keystore dan Truststore yang berisi sertifikat TLS di Cloud Storage, dan pipeline Dataflow mengaksesnya dari Cloud Storage.
- Secret Manager: Secret Manager adalah layanan pengelolaan kredensial dan secret.Produk ini hanya digunakan jika Anda memilih autentikasi TLS atau SASL_PLAIN untuk sumber Kafka eksternal. Aplikasi ini menyimpan kredensial autentikasi Anda seperti nama pengguna, sandi, dan sertifikat. Kredensial ini digunakan untuk terhubung ke cluster Kafka eksternal secara aman.
Selain itu, solusi ini juga menggunakan Managed Service untuk Apache Kafka.
- Managed Service untuk Apache Kafka: Layanan Google Cloud yang membantu Anda menjalankan Apache Kafka. Dalam solusi ini, Managed Service untuk Apache Kafka digunakan sebagai tujuan data Anda. Anda melakukan streaming data dari topik Kafka eksternal ke topik dalam cluster Managed Service untuk Apache Kafka. Untuk mengetahui informasi selengkapnya tentang harga Managed Service untuk Apache Kafka, lihat panduan harga.
Sebelum memulai
Sebelum meluncurkan template Kafka ke Kafka Dataflow, pastikan Anda telah menyelesaikan langkah-langkah berikut:
Buat cluster dan topik Managed Service untuk Apache Kafka.
Salah satu cara untuk membuat cluster dan topik adalah dengan mengikuti Panduan memulai Managed Service untuk Apache Kafka.
Jika topik Anda berisi rekaman Avro, untuk persyaratan resource tambahan, lihat Mengonfigurasi format pesan Kafka.
Aktifkan Google Cloud API berikut:
Dataflow
Secret Manager (Hanya jika Anda menggunakan autentikasi SASL_PLAIN atau TLS untuk sumber Kafka eksternal)
Cloud Storage (Hanya jika Anda menggunakan autentikasi TLS untuk sumber Kafka eksternal)
gcloud services enable dataflow.googleapis.com \ secretmanager.googleapis.com storage.googleapis.com
Siapkan resource autentikasi SASL_PLAIN
Ikuti petunjuk di bagian ini jika Anda berencana menggunakan kredensial autentikasi SASL_PLAIN untuk sumber Kafka eksternal.
Di konsol Google Cloud , buka Secret Manager.
Buat dua secret: satu untuk nama pengguna Kafka dan satu untuk sandi Kafka Anda.
Untuk setiap secret, berikan nama deskriptif seperti "kafka-username" dan "kafka-password".
Untuk mengetahui informasi selengkapnya tentang cara membuat secret, termasuk peran dan izin yang diperlukan, lihat Membuat secret.
Siapkan resource autentikasi TLS
Ikuti petunjuk di bagian ini jika Anda berencana menggunakan kredensial autentikasi TLS untuk sumber Kafka eksternal Anda.
Di konsol Google Cloud , buka Secret Manager.
Pastikan file Keystore Anda (format JKS) berisi sertifikat TLS dan kunci pribadi yang diperlukan untuk mengautentikasi klien Anda dengan cluster Kafka.
Pastikan file Truststore Anda (format JKS) berisi sertifikat tepercaya yang diperlukan untuk memverifikasi identitas broker Kafka.
Upload file Keystore dan Truststore Anda ke Cloud Storage.
Untuk mengetahui informasi selengkapnya tentang cara mengupload file ke Cloud Storage, lihat Mengupload objek dari sistem file.
Buat tiga secret untuk konfigurasi TLS Anda:
Sandi Truststore: Menyimpan sandi yang digunakan untuk mengakses file Truststore Anda.
Sandi keystore: Menyimpan sandi yang digunakan untuk mengakses file Keystore Anda.
Sandi kunci pribadi: Menyimpan sandi yang digunakan untuk mengakses kunci pribadi dalam file Keystore Anda.
Untuk setiap rahasia, berikan nama deskriptif.
Untuk mengetahui informasi selengkapnya tentang cara membuat secret, termasuk peran dan izin yang diperlukan, lihat Membuat secret.
Memberikan peran klien Managed Kafka ke akun layanan pekerja Dataflow
Untuk menghubungkan tugas Dataflow Anda ke Managed Service untuk Apache Kafka, Anda harus memberikan izin tertentu ke akun layanan pekerja Dataflow. Akun layanan ini adalah identitas yang digunakan untuk semua VM pekerja dalam tugas Dataflow Anda, dan setiap permintaan yang dibuat dari VM ini menggunakan akun ini.
Untuk mengizinkan akses ke resource Kafka, Anda harus memberikan
peran roles/managedkafka.client pada
akun layanan worker Dataflow. Peran ini mencakup izin managedkafka.clusters.connect yang diperlukan untuk membuat koneksi.
Untuk mengetahui informasi selengkapnya tentang akun layanan pekerja, lihat Keamanan dan izin untuk pipeline di Google Cloud.
Untuk memberikan peran klien Managed Kafka ke akun layanan Dataflow, ikuti langkah-langkah berikut:
Konsol
- Di konsol Google Cloud , buka halaman IAM.
Buka IAM - Pastikan project disetel ke project konsumen yang akan diakses oleh klien Managed Service untuk Apache Kafka.
- Klik Grant access.
- Di halaman baru, untuk Add Principals, masukkan alamat email akun layanan pekerja Dataflow yang Anda gunakan.
- Untuk Assign roles, pilih peran Managed Kafka client.
- Klik Simpan.
gcloud CLI
-
Di konsol Google Cloud , aktifkan Cloud Shell.
Di bagian bawah konsol Google Cloud , sesi Cloud Shell akan dimulai dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi pada sesi.
-
Jalankan perintah
gcloud projects add-iam-policy-binding:gcloud projects add-iam-policy-binding PROJECT_ID \ --member serviceAccount:SERVICE_ACCOUNT_EMAIL \ --role roles/managedkafka.client
Ganti kode berikut:
-
PROJECT_ID adalah project ID.
-
SERVICE_ACCOUNT_EMAIL adalah alamat email akun layanan worker Dataflow.
-
Luncurkan template Dataflow Kafka ke Kafka
Anda dapat meluncurkan template Kafka to Kafka Dataflow dari halaman detail cluster di konsol.
-
Di konsol Google Cloud , buka halaman Cluster.
Cluster yang Anda buat dalam project akan dicantumkan.
- Untuk melihat halaman detail cluster, klik nama cluster.
- Di halaman detail cluster, klik Impor data.
Halaman Buat tugas Dataflow menggunakan template "Kafka ke Kafka" akan terbuka.
Konfigurasi kolom dalam template sesuai dengan informasi yang disertakan di bagian berikut.
Masukkan nama tugas
Untuk kolom Nama tugas, masukkan nama untuk tugas Dataflow Anda.
Nama harus unik di antara semua tugas yang sedang berjalan dalam project.
Memilih endpoint regional untuk pipeline Anda
Untuk kolom Regional endpoint, tetapkan endpoint regional ke lokasi cluster Kafka Anda untuk meminimalkan biaya transfer data lintas region.
Worker Dataflow dapat berjalan secara independen dari region cluster Kafka Anda. Namun, Anda akan dikenai biaya traffic keluar antar-region jika meluncurkan pekerja di luar region cluster Kafka Anda.
Untuk melihat lokasi cluster, ikuti langkah-langkah di Mencantumkan cluster Managed Service untuk Apache Kafka Anda.
Konfigurasikan sumber
Untuk Source, pilih Self-managed or External Kafka.
Untuk Kafka bootstrap server, masukkan alamat server bootstrap cluster Kafka eksternal.
Untuk Server dan topik Bootstrap Kafka sumber, masukkan alamat server dan topik bootstrap Kafka eksternal.
Untuk Kafka source authentication mode, pilih mode autentikasi Anda dari pilihan yang tersedia. Untuk Kafka eksternal, Anda memiliki tiga opsi:
SASL_PLAIN
TLS
Tidak ada
Untuk autentikasi sumber Kafka SASL_PLAIN
Sebelum melanjutkan bagian ini, lihat Siapkan resource autentikasi SASL_PLAIN.
Jika Anda memilih SASL_PLAIN sebagai autentikasi sumber Kafka, isi kolom tambahan berikut.
Untuk ID versi secret untuk nama pengguna SASL/PLAIN Kafka, masukkan ID versi untuk nama pengguna.
Untuk ID versi secret untuk sandi SASL/PLAIN Kafka, masukkan ID versi untuk sandi.
Untuk autentikasi sumber TLS Kafka
Sebelum melanjutkan bagian ini, lihat Menyiapkan resource autentikasi TLS.
Jika Anda memilih TLS sebagai autentikasi sumber Kafka, isi kolom tambahan berikut.
Untuk Location of keystore, masukkan jalur Cloud Storage ke file Java Keystore (JKS) Anda. File ini berisi sertifikat TLS dan kunci pribadi yang diperlukan untuk mengautentikasi pipeline Anda dengan cluster Kafka. Misalnya: gs://your-bucket/keystore.jks
Untuk kolom Truststore file location, masukkan jalur Cloud Storage ke file Java Truststore (JKS) Anda. File ini berisi sertifikat tepercaya yang digunakan untuk memverifikasi identitas broker Kafka.
Untuk Secret Version ID for Truststore password, berikan ID secret Secret Manager yang menyimpan sandi untuk mengakses file JKS Truststore Anda.
Untuk Secret Version ID of Keystore password, berikan ID secret Secret Manager yang menyimpan sandi untuk mengakses file JKS Anda.
Untuk kolom Secret Version ID of private key password, jika kunci pribadi Anda dalam Keystore memiliki sandi terpisah, masukkan ID secret Secret Manager yang berisi sandi tersebut.
Mengirimkan offset ke Kafka
Setelan ini mengontrol cara pipeline melacak pesan mana dari sumber Kafka eksternal yang diproses. Mengaktifkan setelan ini membantu memastikan bahwa pipeline Anda memproses pesan secara andal dan menghindari error saat dimulai ulang.
Kafka melacak pesan menggunakan offset. Anggap ini sebagai penanda, yang mengingat posisi pipeline di setiap aliran pesan. Saat Anda mengaktifkan setelan, pipeline akan menyimpan bookmarknya secara rutin di Kafka. Jika pipeline dimulai ulang karena error, update, atau pemeliharaan terencana, pipeline dapat menggunakan penanda yang disimpan untuk melanjutkan dari tempat terakhir pipeline berhenti. Hal ini mencegah pipeline kehilangan pesan atau memproses pesan yang sama dua kali secara tidak sengaja.
Aktifkan Commit offset ke Kafka.
Berikan ID grup konsumen. Ini adalah nama yang mengidentifikasi pipeline Anda ke Kafka.
Untuk Default Kafka start offset, pilih salah satu opsi berikut:
Paling Awal: Memproses pesan dari awal topik Kafka.
Terbaru: Memproses pesan mulai dari pesan terbaru.
Konfigurasikan tujuan
Untuk tujuan, pilih Managed Service untuk Apache Kafka.
Untuk Kafka cluster, pilih cluster yang sudah Anda buat.
Anda dapat memilih topik yang ada atau membuat topik baru.
Untuk Kafka destination authentication method, pilih Kredensial Default Aplikasi.
Mengonfigurasi enkripsi
Secara default, semua data dalam penyimpanan dan dalam pengiriman dienkripsi oleh Google-owned and Google-managed encryption key. Jika memiliki kunci enkripsi yang dikelola pelanggan (CMEK), Anda dapat memilih kunci Anda sendiri. Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi CMEK, lihat Mengonfigurasi enkripsi pesan.
Mengonfigurasi jaringan
Anda harus menentukan jaringan dan subnetwork cluster dalam template Dataflow. Bagian Optional parameters template memungkinkan Anda menentukan jaringan untuk pekerja Dataflow.
Template Kafka to Kafka Dataflow menyediakan pekerja Dataflow di jaringan default project Anda secara default. Agar cluster Kafka eksternal Anda dapat mengirim data ke Managed Service untuk Apache Kafka melalui Dataflow, pastikan pekerja Dataflow Anda dapat mengakses jaringan cluster Anda.
Sebaiknya, jika cluster Kafka Anda tidak terhubung ke subnet di jaringan default project, gunakan jaringan default project untuk cluster Kafka Anda.
Untuk mengetahui informasi selengkapnya tentang cara menyiapkan jaringan dengan pipeline Dataflow, lihat artikel berikut:
Jika Anda mengalami kesulitan saat mengonfigurasi jaringan Dataflow, lihat panduan pemecahan masalah jaringan Dataflow.
Mengonfigurasi parameter Dataflow opsional
Konfigurasikan parameter Dataflow opsional hanya jika Anda mengetahui dampak konfigurasi pada pekerja Dataflow. Setelan yang salah dapat memengaruhi performa atau biaya. Untuk penjelasan mendetail tentang setiap opsi, lihat Parameter opsional.
Pemantauan
Template Dataflow untuk Kafka ke Managed Service untuk Apache Kafka memberikan pengalaman pemantauan yang memungkinkan Anda menjelajahi log, metrik, dan error dalam konsol. Rangkaian alat pemantauan ini tersedia sebagai bagian dari antarmuka pengguna Dataflow.
Tab Metrik Tugas memungkinkan Anda membuat dasbor kustom. Untuk template Kafka ke Managed Service untuk Apache Kafka, sebaiknya siapkan dasbor Metrik Tugas yang memantau hal berikut:
Throughput: Volume data yang diproses pada waktu tertentu. Hal ini berguna untuk memantau aliran data melalui tugas Anda dan mengidentifikasi potensi masalah performa.
Untuk mengetahui informasi selengkapnya, lihat Pemantauan throughput Dataflow.
Keaktualan data: Perbedaan dalam detik antara stempel waktu pada elemen data dan waktu saat peristiwa diproses dalam pipeline Anda. Hal ini membantu mengidentifikasi bottleneck performa dan sumber data atau percobaan ulang yang sering.
Untuk mengetahui informasi selengkapnya, lihat artikel berikut: Pemantauan keaktualan Dataflow.
Backlog: Jumlah byte yang menunggu untuk diproses. Informasi ini memengaruhi keputusan penskalaan otomatis.
Untuk mengetahui informasi selengkapnya tentang pemantauan Dataflow, lihat dokumentasi pemantauan Dataflow.
Pemecahan masalah
Jika Anda mengalami masalah performa dengan pipeline Dataflow, Dataflow menyediakan serangkaian alat diagnostik dan pemecahan masalah yang komprehensif.
Berikut adalah dua skenario umum dan panduan pemecahan masalahnya masing-masing:
Untuk ringkasan umum proses debug pipeline Dataflow, lihat Memecahkan masalah dan melakukan proses debug pipeline Dataflow.