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
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.
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.
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 daritopic-a
dantopic-b
, Anda harus membuat langgananconsumers-a
yang dilampirkan ketopic-a
dan langgananconsumers-b
yang dilampirkan ketopic-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:
Instal paket
com.google.cloud:pubsublite-kafka-auth
.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:
Instal Python 3.6 atau yang lebih tinggi.
Lihat Menginstal Python.
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
.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:
Download file JSON kunci akun layanan untuk akun layanan yang ingin digunakan bagi klien Anda.
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.