Bermigrasi dari Kafka ke Pub/Sub Lite

Dokumen ini berguna jika Anda mempertimbangkan untuk bermigrasi dari Apache Kafka yang dikelola sendiri ke Pub/Sub Lite.

Ringkasan Pub/Sub Lite

Pub/Sub Lite adalah layanan pesan bervolume tinggi yang dibuat untuk biaya operasi yang rendah. Pub/Sub Lite menawarkan Penyimpanan Zonal dan Regional beserta kapasitas yang telah disediakan. Dalam Pub/Sub Lite, Anda dapat memilih topik Lite zona atau regional. Topik Regional Lite menawarkan SLA ketersediaan yang sama dengan topik Pub/Sub. Namun, ada perbedaan keandalan antara Pub/Sub dan Pub/Sub Lite dalam hal replikasi pesan.

Untuk mempelajari Pub/Sub dan Pub/Sub Lite lebih lanjut, baca artikel Apa yang dimaksud dengan Pub/Sub.

Untuk mempelajari lebih lanjut region dan zona yang didukung Lite, lihat lokasi Pub/Sub Lite.

Terminologi dalam Pub/Sub Lite

Berikut adalah beberapa istilah kunci untuk Pub/Sub Lite.

  • Pesan. Data yang berpindah melalui layanan Pub/Sub Lite.

  • Topik. Resource bernama yang mewakili feed pesan. Dalam Pub/Sub Lite, Anda dapat memilih untuk membuat topik Lite zona atau regional. Topik regional Pub/Sub Lite menyimpan data di dua zona dari satu region. Topik zona Pub/Sub Lite mereplikasi data hanya dalam satu zona.

  • Reservasi. Kumpulan kapasitas throughput bernama yang digunakan bersama oleh beberapa topik Lite di satu region.

  • Langganan Resource bernama yang mewakili minat dalam menerima pesan dari topik Lite tertentu. Langganan mirip dengan grup konsumen di Kafka yang hanya terhubung ke satu topik.

  • Pelanggan. Klien Pub/Sub Lite yang menerima pesan dari topik Lite dan langganan tertentu. Satu langganan dapat memiliki beberapa klien pelanggan. Dalam kasus semacam ini, pesan di-load balanced di seluruh klien pelanggan. Di Kafka, pelanggan disebut konsumen.

  • Penayang. Aplikasi yang membuat pesan dan mengirim (memublikasikan) pesan ke topik Lite tertentu. Sebuah topik dapat memiliki beberapa penerbit. Di Kafka, penerbit disebut produser.

Perbedaan antara Kafka dan Pub/Sub Lite

Meskipun secara konseptual mirip dengan Kafka, Pub/Sub Lite adalah sistem yang berbeda dengan API yang lebih sempit dan lebih berfokus pada penyerapan data. Meskipun perbedaannya tidak penting dalam penyerapan dan pemrosesan streaming, ada beberapa kasus penggunaan spesifik yang mana perbedaan ini penting.

Kafka sebagai database

Tidak seperti Kafka, Pub/Sub Lite saat ini tidak mendukung publikasi transaksional atau pemadatan log, meskipun idempotensi didukung. Fitur Kafka ini lebih berguna saat Anda menggunakan Kafka sebagai database daripada sebagai sistem pesan. Jika Anda menggunakan Kafka terutama sebagai database, pertimbangkan untuk menjalankan cluster Kafka Anda sendiri atau menggunakan solusi Kafka terkelola seperti Confluent Cloud. Jika kedua solusi tersebut tidak dapat digunakan, Anda juga dapat mempertimbangkan untuk menggunakan database yang skalabel secara horizontal seperti Cloud Spanner.

Aliran Kafka

Kafka stream adalah sistem pemrosesan data yang dibuat berdasarkan Kafka. Meskipun mengizinkan injeksi klien konsumen, metode ini memerlukan akses ke semua operasi administrator. Kafka Streams juga menggunakan properti database transaksional Kafka untuk menyimpan metadata internal. Jadi, Pub/Sub Lite saat ini tidak dapat digunakan untuk aplikasi Kafka Streams.

Apache Beam adalah sistem pemrosesan data streaming serupa yang terintegrasi dengan Kafka, Pub/Sub, dan Pub/Sub Lite. Anda dapat menjalankan pipeline Beam secara terkelola sepenuhnya dengan Dataflow, atau di cluster Apache Flink dan Apache Spark yang sudah ada sebelumnya.

Memantau

Klien Kafka dapat membaca metrik sisi server. Di Pub/Sub Lite, metrik yang relevan dengan perilaku penayang dan pelanggan dikelola melalui Cloud Monitoring tanpa konfigurasi tambahan.

Pengelolaan kapasitas

Kapasitas topik Kafka ditentukan oleh kapasitas cluster. Replikasi, pemadatan kunci, dan setelan batch menentukan kapasitas yang diperlukan untuk melayani topik tertentu di cluster Kafka. Throughput topik Kafka dibatasi oleh kapasitas mesin tempat broker berjalan. Sebaliknya, Anda harus menentukan kapasitas penyimpanan dan throughput untuk topik Pub/Sub Lite. Kapasitas penyimpanan Pub/Sub Lite adalah properti topik yang dapat dikonfigurasi. Kapasitas throughput didasarkan pada kapasitas reservasi yang dikonfigurasi, dan batas per partisi yang dikonfigurasi atau inheren.

Autentikasi dan keamanan

Apache Kafka mendukung beberapa mekanisme enkripsi dan autentikasi terbuka. Dengan Pub/Sub Lite, autentikasi didasarkan pada sistem IAM. Keamanan terjamin melalui enkripsi dalam penyimpanan dan saat transit. Baca selengkapnya tentang autentikasi Pub/Sub Lite di bagian alur kerja Migrasi, nanti dalam dokumen ini.

Memetakan properti Kafka ke properti Pub/Sub Lite

Kafka memiliki banyak opsi konfigurasi yang mengontrol struktur topik, batas, dan properti broker. Beberapa metode umum yang berguna untuk penyerapan data dibahas di bagian ini, dengan padanannya di Pub/Sub Lite. Karena Pub/Sub Lite adalah sistem terkelola, Anda tidak perlu mempertimbangkan banyak properti broker.

Properti konfigurasi topik

Properti Kafka Properti Pub/Sub Lite Deskripsi
<aclass="external" l10n-attrs-original-order="href,class" l10n-encrypted-href="dV7DQA4y7L7qKMxOHGc8kmZb6gHWkZLxLSo7Ja3t8sQHgM1RbUvT8FDCmfNOUyfqRES8FDCmfNOUyfqProEiKpJVektertekasa</b> Penyimpanan per partisi Semua partisi dalam topik Lite memiliki kapasitas penyimpanan terkonfigurasi yang sama. Total kapasitas penyimpanan topik Lite adalah jumlah kapasitas penyimpanan semua partisi dalam topik tersebut.
<aclass="external" l10n-attrs-original-order="href,class" l10n-encrypted-href="QnWVoAipx5CRcevnGcXwAGZb6gHWkZLxLSo7Ja3t8sQHgM1RbUvT8FDCmfNOUyfqProEiKpRj Periode retensi pesan Jumlah waktu maksimum saat topik Lite menyimpan pesan. Jika Anda tidak menentukan periode retensi pesan, topik Lite akan menyimpan pesan hingga kapasitas penyimpanannya terlampaui.
<aclass="external" l10n-attrs-original-order="href,class" l10n-encrypted-href="1EnWqBFYsbXCkJvluoFZHWZb6gHWkZLxLSo7Ja3t8sQHgM1RbUvT8FDCmfNOUyfqabn4TWexternalw Tidak dapat dikonfigurasi di Pub/Sub Lite Publikasi tidak dikonfirmasi hingga dijamin dipertahankan pada penyimpanan yang direplikasi.
<aclass="external" l10n-attrs-original-order="href,class" l10n-encrypted-href="w2C6ltfFLx0WhPQQ+xq7GMZb6gHWkZLxLSo7Ja3t8sQHgM1RbUvT8FDCmfNOUyfq+EJHREW9vg Tidak dapat dikonfigurasi di Pub/Sub Lite 3,5 MiB adalah ukuran pesan maksimum yang dapat dikirim ke Pub/Sub Lite. Ukuran pesan dihitung dengan cara yang dapat diulang.
<aclass="external" l10n-attrs-original-order="href,class" l10n-encrypted-href="uByJEasoVxsHiHGi2vZFpWZb6gHWkZLxLSo7Ja3t8sQHgM1RbUvT8FDCmfNOUyfqQgNEpwJEasoVxsHiHGi2vZFpWZb6gHWkZLxLSo7Ja3t8sQHgM1RbUvT8FDCmfNOUyfqQgNEpY+vg Tidak dapat dikonfigurasi di Pub/Sub Lite Saat menggunakan implementasi konsumen, stempel waktu peristiwa dipilih saat ada atau stempel waktu publikasi digunakan sebagai gantinya. Stempel waktu publikasi dan peristiwa tersedia saat menggunakan Beam.

Untuk mempelajari properti topik Lite lebih lanjut, lihat Properti topik Lite.

Properti konfigurasi produsen

Pub/Sub Lite mendukung protokol kabel Produser. Beberapa properti mengubah perilaku Library Klien Cloud produsen; beberapa properti umum dibahas dalam tabel berikut.

Properti Kafka Properti Pub/Sub Lite Deskripsi
<aclass="external" l10n-attrs-original-order="href,class" l10n-encrypted-href="ka6ek6z5j1AUV6h0GyHmOWZb6gHWkZLxLSo7Ja3t8sRw5UOg9XUG3SbKp/CA/UGEa9PU2/IZKI Tidak dapat dikonfigurasi di Pub/Sub Lite Buat topik dan langganan yang kira-kira setara dengan grup konsumen untuk satu topik di Pub/Sub Lite. Anda dapat menggunakan konsol, gcloud CLI, API, atau Library Klien Cloud.
<aclass="external" l10n-attrs-original-order="href,class" l10n-encrypted-href="w2C6ltfFLx0WhPQQ+xq7GMZb6gHWkZLxLSo7Ja3t8sRqk6OxyqMTCHV662ootwKEX+WHjyP6Bz5 Tidak dapat dikonfigurasi di Pub/Sub Lite

Diperlukan saat menggunakan Kafka prod atau library yang setara dan berkomunikasi menggunakan protokol kabel.

<aclass="external" l10n-attrs-original-order="href,class" l10n-encrypted-href="/nUcmkQCz7NdVnO/fs/U8WZb6gHWkZLxLSo7Ja3t8sRqk6OxyqMTCHV662ootwKEp3gb5Htxs2O Didukung di Pub/Sub Lite Pengelompokan didukung. Nilai yang direkomendasikan untuk nilai ini adalah 10 MiB untuk performa terbaik.
<aclass="external" l10n-attrs-original-order="href,class" l10n-encrypted-href="QnWVoAipx5CRcevnGcXwAGZb6gHWkZLxLSo7Ja3t8sRqk6OxyqMTCHV662ootwKE5j8zTWzynZ+Madak Didukung di Pub/Sub Lite Pengelompokan didukung. Nilai yang direkomendasikan untuk nilai ini adalah 50 md untuk performa terbaik.
<aclass="external" l10n-attrs-original-order="href,class" l10n-encrypted-href="pSX6SpdSWGS3KbkuJBUem2Zb6gHWkZLxLSo7Ja3t8sRqk6OxyqMTCHV662ootwKEj7ilyCdDp4ec Didukung di Pub/Sub Lite Server memberlakukan batas 20 MiB per batch. Setel nilai ini lebih rendah dari 20 MiB di klien Kafka.
<aclass="external" l10n-attrs-original-order="href,class" l10n-encrypted-href="9mE3X9aIpBVps4x1lRMwdGZb6gHWkZLxLSo7Ja3t8sRqk6OxyqMTCHV662ootwKE8lAxDO6s Didukung di Pub/Sub Lite
<aclass="external" l10n-attrs-original-order="href,class" l10n-encrypted-href="pSX6SpdSWGS3KbkuJBUem2Zb6gHWkZLxLSo7Ja3t8sRqk6OxyqMTCHV662ootwKEufyeVlB0ORvuX Tidak didukung di Pub/Sub Lite Anda harus menetapkan nilai ini secara eksplisit ke none.

Properti konfigurasi konsumen

Pub/Sub Lite mendukung Protokol konsumen kabel. Beberapa properti mengubah perilaku Library Klien Cloud konsumen; beberapa properti umum dibahas dalam tabel berikut.

Properti Kafka Deskripsi
<aclass="external" l10n-attrs-original-order="href,class" l10n-encrypted-href="pSX6SpdSWGS3KbkuJBUem2Zb6gHWkZLxLSo7Ja3t8sQyhicHhp9oG2sYdjqrOOFMesHcoabWpmR

Wajib saat menggunakan Kafka Consumer atau library yang setara dan berkomunikasi menggunakan protokol kabel.

<aclass="external" l10n-attrs-original-order="href,class" l10n-encrypted-href="6Yq99Si1ofpPBF++wTnR6WZb6gHWkZLxLSo7Ja3t8sQyhicHhp9oG2sYdjqrOOFMfirdQRfA+0/F Konfigurasi ini tidak didukung atau diperlukan. Langganan dijamin memiliki lokasi offset yang ditentukan setelah dibuat.
<aclass="external" l10n-attrs-original-order="href,class" l10n-encrypted-href="uByJEasoVxsHiHGi2vZFpWZb6gHWkZLxLSo7Ja3t8sQHgM1RbUvT8FDCmfNOUyfqQgNEpwJEasoVxsHiHGi2vZFpWZb6gHWkZLxLSo7Ja3t8sQHgM1RbUvT8FDCmfNOUyfqQgNEpY+v Stempel waktu publikasi selalu tersedia dari Pub/Sub Lite dan dijamin tidak akan menurun per partisi. Stempel waktu acara mungkin ada atau tidak ada, bergantung pada apakah stempel waktu dilampirkan pada pesan saat dipublikasikan. Stempel waktu publikasi dan peristiwa tersedia secara bersamaan saat menggunakan Dataflow.
<aclass="external" l10n-attrs-original-order="href,class" l10n-encrypted-href="C1w6rZRsJ3qdhnqUpePxxmZb6gHWkZLxLSo7Ja3t8sQyhicHhp9oG2sYdjqrOOFMUP9pWM0gsH8 Menerapkan batas pada jumlah kumpulan data dan byte yang ditampilkan dari panggilan polling() dan jumlah byte yang ditampilkan dari permintaan pengambilan internal. Nilai default untuk `max.partition.fetch.bytes` sebesar 1MiB dapat membatasi throughput klien. Pertimbangkan untuk menaikkan nilai ini.

Bandingkan fitur Kafka dan Pub/Sub Lite

Tabel berikut membandingkan fitur Apache Kafka dengan fitur Pub/Sub Lite:

Fitur Kafka Pub/Sub Lite
Pengurutan pesan Ya Ya
Penghapusan duplikat pesan Ya Ya, menggunakan Dataflow
Langganan push Tidak Ya menggunakan ekspor Pub/Sub
Transaksi Ya Tidak
Penyimpanan pesan Dibatasi oleh penyimpanan mesin yang tersedia Tak terbatas
Putar ulang pesan Ya Ya
Logging dan pemantauan Dikelola sendiri Otomatis dengan Cloud Monitoring
Stream processing Ya, untuk Streaming Kafka, Apache Beam, atau Dataproc. Ya, dengan Beam atau Dataproc.

Tabel berikut membandingkan fungsi apa yang dihosting sendiri dengan Kafka dan fungsi apa yang dikelola oleh Google menggunakan Pub/Sub Lite:

Fitur Kafka Pub/Sub Lite
Ketersediaan Men-deploy Kafka ke lokasi tambahan secara manual. Di-deploy di seluruh dunia. Lihat lokasi.
Pemulihan dari bencana Rancang dan kelola cadangan dan replikasi Anda sendiri. Dikelola oleh Google.
Pengelolaan infrastruktur Men-deploy dan mengoperasikan virtual machine (VM) atau mesin secara manual. Pertahankan konsistensi pembuatan versi dan patch. Dikelola oleh Google.
Perencanaan kapasitas Rencanakan kebutuhan penyimpanan dan komputasi secara manual di awal. Dikelola oleh Google. Anda dapat meningkatkan komputasi dan penyimpanan kapan saja.
Support Tidak ada. Tersedia staf siaga dan dukungan 24 jam.

Perbandingan biaya Kafka dan Pub/Sub Lite

Cara Anda memperkirakan dan mengelola biaya di Pub/Sub Lite berbeda dengan di Kafka. Biaya untuk cluster Kafka di infrastruktur lokal atau di cloud mencakup biaya mesin, disk, jaringan, pesan masuk, dan pesan keluar. Ini juga termasuk biaya {i>overhead<i} untuk mengelola dan memelihara sistem ini dan infrastruktur terkait. Saat mengelola cluster Kafka, Anda harus mengupgrade mesin secara manual, merencanakan kapasitas cluster, dan menerapkan pemulihan dari bencana (disaster recovery) yang mencakup perencanaan dan pengujian ekstensif. Anda harus menggabungkan semua biaya ini untuk menentukan total biaya kepemilikan (TCO) yang sebenarnya.

Harga Pub/Sub Lite mencakup biaya reservasi (byte yang dipublikasikan, byte langganan, byte yang ditangani oleh proxy Kafka) dan biaya penyimpanan yang disediakan. Anda hanya membayar untuk resource yang dicadangkan selain biaya pesan keluar. Anda dapat menggunakan kalkulator harga untuk memberikan perkiraan biaya.

Alur kerja migrasi

Untuk memigrasikan topik dari cluster Kafka ke Pub/Sub Lite, gunakan petunjuk berikut.

Mengonfigurasi resource Pub/Sub Lite

  1. Buat reservasi Pub/Sub Lite untuk throughput yang diharapkan untuk semua topik yang Anda migrasikan.

    Gunakan kalkulator harga Pub/Sub Lite untuk menghitung metrik throughput gabungan dari topik Kafka yang sudah ada. Untuk mengetahui informasi selengkapnya tentang cara membuat reservasi, lihat Membuat dan mengelola reservasi Lite.

  2. Buat satu topik Pub/Sub Lite untuk setiap topik yang sesuai di Kafka.

    Untuk mengetahui informasi selengkapnya tentang cara membuat topik Lite, lihat Membuat dan mengelola topik Lite.

  3. Buat satu langganan Pub/Sub Lite untuk setiap pasangan grup konsumen dan topik yang sesuai di cluster Kafka.

    Misalnya, untuk grup konsumen bernama consumers yang menggunakan dari topic-a dan topic-b, Anda harus membuat langganan consumers-a yang dilampirkan ke topic-a dan langganan consumers-b yang dilampirkan ke topic-b. Untuk informasi selengkapnya tentang cara membuat langganan, lihat Membuat dan mengelola langganan Lite.

Melakukan autentikasi ke Pub/Sub Lite

Berdasarkan jenis klien Kafka Anda, pilih salah satu metode berikut:

Klien Kafka berbasis Java versi 3.1.0 atau yang lebih baru dengan proses build ulang

Untuk klien Kafka berbasis Java versi 3.1.0 atau yang lebih baru yang dapat dibuat ulang pada instance tempat Anda menjalankan klien Kafka:

  1. Instal paket com.google.cloud:pubsublite-kafka-auth.

  2. Dapatkan parameter yang diperlukan untuk mengautentikasi ke Pub/Sub Lite dengan bantuan com.google.cloud.pubsublite.kafka.ClientParameters.getParams.

    Metode getParams() (lihat contoh kode ) melakukan inisialisasi konfigurasi JAAS dan SASL berikut sebagai parameter untuk mengautentikasi ke Pub/Sub Lite:

    security.protocol=SASL_SSL
    sasl.mechanism=OAUTHBEARER
    sasl.oauthbearer.token.endpoint.url=http://localhost:14293
    sasl.jaas.config=org.apache.kafka.common.security.oauthbearer.secured.OAuthBearerLoginCallbackHandler
    

Klien Kafka berbasis Java yang menjalankan versi 3.1.0 atau yang lebih baru tanpa membangun kembali

Untuk klien Kafka yang mendukung KIP-768, kami mendukung autentikasi OAUTHBEARER khusus konfigurasi yang menggunakan skrip file bantuan Python. Versi ini mencakup Java versi 3.1.0 atau yang lebih baru pada Januari 2022.

Lakukan langkah-langkah berikut pada instance tempat Anda menjalankan klien Kafka:

  1. Instal Python 3.6 atau yang lebih tinggi.

    Lihat Menginstal Python.

  2. Instal paket autentikasi Google: pip install google-auth

    Library ini menyederhanakan berbagai mekanisme autentikasi server ke server untuk mengakses Google API. Lihat halaman google-auth.

  3. Jalankan skrip kafka_gcp_credentials.py.

    Skrip ini memulai server HTTP lokal dan mengambil kredensial Google Cloud default di lingkungan menggunakan google.auth.default().

    Akun utama dalam kredensial yang diambil harus memiliki izin pubsublite.locations.openKafkaStream untuk project Google Cloud yang Anda gunakan dan lokasi yang akan Anda hubungkan. Peran Pub/Sub Lite Publisher (roles/pubsublite.publisher) dan Pub/Sub Lite Subscriber (roles/pubsublite.subscriber) memiliki izin yang diperlukan ini. Tambahkan peran ini ke akun utama Anda.

    Kredensial digunakan dalam autentikasi SASL/OAUTHBEARER untuk klien Kafka.

    Parameter berikut diperlukan dalam properti Anda untuk melakukan autentikasi ke Pub/Sub Lite dari klien Kafka:

    security.protocol=SASL_SSL
    sasl.mechanism=OAUTHBEARER
    sasl.oauthbearer.token.endpoint.url=localhost:14293
    sasl.login.callback.handler.class=org.apache.kafka.common.security.oauthbearer.secured.OAuthBearerLoginCallbackHandler
    sasl.jaas.config=org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule \
      required clientId="unused" clientSecret="unused" \
      extension_pubsubProject="PROJECT_ID";
    

    Ganti PROJECT_ID dengan ID project Anda yang menjalankan Pub/Sub Lite.

Semua klien lain yang tidak perlu membangun ulang

Untuk semua klien lainnya, lakukan langkah-langkah berikut:

  1. Download file JSON kunci akun layanan untuk akun layanan yang ingin digunakan bagi klien Anda.

  2. Lakukan enkode file akun layanan menggunakan enkode base64 untuk digunakan sebagai string autentikasi Anda.

    Pada sistem Linux atau macOS, Anda dapat menggunakan perintah base64 (sering kali diinstal secara default) sebagai berikut:

    base64 < my_service_account.json > password.txt
    

    Anda dapat menggunakan isi file sandi untuk autentikasi dengan parameter berikut.

    Java

    security.protocol=SASL_SSL
    sasl.mechanism=PLAIN
    sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \
     username="PROJECT_ID" \
     password="contents of base64 encoded password file";
    

    Ganti PROJECT_ID dengan ID project Anda yang menjalankan Pub/Sub.

    Librdkafka

    security.protocol=SASL_SSL
    sasl.mechanism=PLAIN
    sasl.username=PROJECT_ID
    sasl.password=contents of base64 encoded password file
    

    Ganti PROJECT_ID dengan ID project Anda yang menjalankan Pub/Sub.

Meng-clone data menggunakan Kafka Connect

Tim Pub/Sub Lite mempertahankan implementasi Sink Kafka Connect. Anda dapat mengonfigurasi implementasi ini untuk menyalin data dari topik Kafka ke topik Pub/Sub Lite menggunakan cluster Kafka Connect.

Untuk mengonfigurasi konektor agar dapat melakukan penyalinan data, lihat Konektor Kafka Pub/Sub Group.

Jika Anda ingin memastikan bahwa afinitas partisi tidak terpengaruh oleh proses migrasi, pastikan topik kafka dan topik Pub/Sub Lite memiliki jumlah partisi yang sama, dan properti pubsublite.ordering.mode ditetapkan ke KAFKA. Hal ini menyebabkan konektor merutekan pesan ke partisi Pub/Sub Lite dengan indeks yang sama dengan partisi kafka tempat pesan tersebut dipublikasikan.

Migrasikan konsumen

Model resource Pub/Sub Lite berbeda dengan model resource Kafka. Terutama, tidak seperti kelompok konsumen, langganan adalah resource eksplisit dan terkait dengan tepat satu topik. Karena perbedaan ini, setiap tempat di Kafka Consumer API yang memerlukan topic untuk diteruskan, jalur langganan lengkap harus diteruskan.

Selain konfigurasi SASL untuk klien Kafka, setelan berikut juga diperlukan saat menggunakan Kafka Consumer API untuk berinteraksi dengan Pub/Sub Lite.

bootstrap.servers=REGION-kafka-pubsub.googleapis.com:443
group.id=unused

Ganti REGION dengan region tempat langganan Pub/Sub Lite Anda ada.

Sebelum memulai tugas konsumen Pub/Sub Lite pertama untuk langganan tertentu, Anda dapat memulai (tetapi jangan menunggu) operasi pencarian admin untuk menetapkan lokasi awal bagi konsumen Anda.

Saat Anda memulai, konsumen akan terhubung kembali ke offset saat ini di backlog pesan. Jalankan klien lama dan baru secara paralel selama yang diperlukan untuk memverifikasi perilaku mereka, lalu tolak klien konsumen lama.

Memigrasikan produser

Selain konfigurasi SASL untuk klien Kafka, hal berikut juga diperlukan sebagai parameter produser saat menggunakan Kafka Produsen API untuk berinteraksi dengan Pub/Sub Lite.

bootstrap.servers=REGION-kafka-pubsub.googleapis.com:443

Ganti REGION dengan region tempat topik Pub/Sub Lite Anda berada.

Setelah Anda memigrasikan semua konsumen topik untuk dibaca dari Pub/Sub Lite, pindahkan traffic produser untuk menulis ke Pub/Sub Lite secara langsung.

Migrasikan klien produser secara bertahap untuk menulis ke topik Pub/Sub Lite, bukan topik Kafka.

Mulai ulang klien produser untuk mengambil konfigurasi baru.

Menonaktifkan Kafka Connect

Setelah Anda memigrasikan semua produser untuk menulis ke Pub/Sub Lite secara langsung, konektor tidak akan menyalin data lagi.

Anda dapat menonaktifkan instance Kafka Connect.

Memecahkan masalah koneksi Kafka

Karena klien Kafka berkomunikasi melalui protokol kabel kustom, kami tidak dapat memberikan pesan error untuk kegagalan di semua permintaan. Andalkan kode error yang dikirim sebagai bagian dari pesan.

Anda dapat melihat detail lebih lanjut tentang error yang terjadi di klien dengan menetapkan level logging untuk awalan org.apache.kafka ke FINEST.

Throughput rendah dan backlog yang meningkat

Ada beberapa alasan mengapa throughput rendah dan backlog yang meningkat. Salah satu alasannya mungkin kapasitas yang tidak memadai.

Anda dapat mengonfigurasi kapasitas throughput pada level topik atau dengan menggunakan reservasi. Jika kapasitas throughput yang tidak memadai untuk berlangganan dan publikasi akan dibatasi, throughput yang sesuai untuk berlangganan dan publikasi akan di-throttle.

Error throughput ini ditandai oleh metrik topic/flow_control_status untuk penayang, dan metrik subscription/flow_control_status untuk pelanggan. Metrik ini memberikan status berikut:

  • NO_PARTITION_CAPACITY: Pesan ini menunjukkan bahwa batas throughput per partisi tercapai.

  • NO_RESERVATION_CAPACITY: Pesan ini menunjukkan bahwa batas throughput per reservasi telah tercapai.

Anda dapat melihat grafik pemanfaatan untuk topik atau reservasi publikasi dan kuota berlangganan, serta memeriksa apakah penggunaan mencapai atau mendekati 100%.

Untuk mengatasi masalah ini, tingkatkan kapasitas throughput pada topik atau reservasi.

Pesan error gagal otorisasi topik

Memublikasikan menggunakan Kafka API mengharuskan agen layanan Lite memiliki izin yang tepat untuk memublikasikan ke topik Pub/Sub Lite.

Anda akan mendapatkan error TOPIC_AUTHORIZATION_FAILED di klien jika Anda tidak memiliki izin yang benar untuk memublikasikan ke topik Pub/Sub Lite.

Untuk mengatasi masalah ini, periksa apakah agen layanan Lite untuk project diteruskan dalam konfigurasi autentikasi.

Pesan error topik tidak valid

Berlangganan menggunakan Kafka API mengharuskan penerusan jalur langganan lengkap semua tempat topic yang diharapkan di Kafka Consumer API.

Anda akan mendapatkan error INVALID_TOPIC_EXCEPTION di klien Konsumen jika tidak meneruskan jalur langganan yang diformat dengan baik.

Permintaan tidak valid jika tidak menggunakan reservasi

Untuk menggunakan dukungan protokol kafka wire, semua topik harus memiliki reservasi terkait agar dapat ditagih.