Setelah topik dibuat, Anda dapat mengedit konfigurasi topik untuk memperbarui properti berikut: jumlah partisi dan konfigurasi topik yang tidak menggunakan properti default yang sudah ditetapkan di tingkat cluster. Anda hanya dapat meningkatkan jumlah partisi, tidak dapat menguranginya.
Untuk memperbarui satu topik, Anda dapat menggunakan Google Cloud konsol, Google Cloud CLI, library klien, Managed Kafka API, atau Apache Kafka API open source.
Peran dan izin yang diperlukan untuk mengedit topik
Untuk mendapatkan izin yang diperlukan untuk mengedit topik, minta administrator Anda untuk memberi Anda peran IAM Editor Topik Managed Kafka(roles/managedkafka.topicEditor) di project Anda.
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran bawaan ini berisi izin yang diperlukan untuk mengedit topik. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk mengedit topik:
-
Memperbarui topik:
managedkafka.topics.update
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Mengedit topik
Untuk mengedit topik, ikuti langkah-langkah berikut:
Konsol
Di Google Cloud konsol, buka halaman Clusters.
Cluster yang Anda buat dalam project akan tercantum.
Klik cluster yang berisi topik yang ingin Anda edit.
Halaman Cluster details akan terbuka. Di halaman detail cluster, untuk tab Resources, topik akan tercantum.
Klik topik yang ingin Anda edit.
Halaman Topic details akan terbuka.
Untuk melakukan pengeditan, klik Edit.
Klik Save setelah melakukan perubahan.
gcloud
-
Di konsol, aktifkan Cloud Shell. Google Cloud
Di bagian bawah konsol Google Cloud , sesi Cloud Shell akan dimulai dan menampilkan prompt 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 managed-kafka topics update:gcloud managed-kafka topics update TOPIC_ID \ --cluster=CLUSTER_ID \ --location=LOCATION_ID \ --partitions=PARTITIONS \ --configs=CONFIGSPerintah ini mengubah konfigurasi topik yang ada di cluster Managed Service untuk Apache Kafka yang ditentukan. Anda dapat menggunakan perintah ini untuk meningkatkan jumlah partisi dan memperbarui setelan konfigurasi tingkat topik.
Ganti kode berikut:
- TOPIC_ID: ID topik.
- CLUSTER_ID: ID cluster yang berisi topik.
- LOCATION_ID: Lokasi cluster.
- PARTITIONS: Opsional: Jumlah partisi terbaru untuk topik. Anda hanya dapat meningkatkan jumlah partisi, tidak dapat menguranginya.
- CONFIGS: Opsional: Daftar setelan konfigurasi
yang akan diperbarui. Tentukan sebagai daftar pasangan kunci-nilai yang dipisahkan koma. Contoh:
retention.ms=604800000,retention.bytes=10000000.
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
-
PROJECT_ID: ID proyek Google Cloud Anda -
LOCATION: lokasi cluster -
CLUSTER_ID: ID cluster -
TOPIC_ID: ID topik -
UPDATE_MASK: kolom yang akan diperbarui, sebagai daftar yang dipisahkan koma dari nama yang sepenuhnya memenuhi syarat. Contoh:partitionCount -
PARTITION_COUNT: jumlah partisi terbaru untuk topik
Metode HTTP dan URL:
PATCH https://managedkafka.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_ID/topics/TOPIC_ID?updateMask=UPDATE_MASK
Meminta isi JSON:
{
"name": "TOPIC_ID",
"partitionCount": PARTITION_COUNT
}
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan melihat respons JSON seperti berikut:
{
"name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.managedkafka.v1.OperationMetadata",
"createTime": "CREATE_TIME",
"target": "projects/PROJECT_ID/locations/LOCATION/clusters/CLUSTER_ID",
"verb": "update",
"requestedCancellation": false,
"apiVersion": "v1"
},
"done": false
}
Go
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Go di Menginstal library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Managed Service untuk Apache Kafka Go.
Untuk melakukan autentikasi ke Managed Service untuk Apache Kafka, siapkan Kredensial Default Aplikasi(ADC). Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.
Java
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Java di Menginstal library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi API Managed Service untuk Apache Kafka Java.
Untuk melakukan autentikasi ke Managed Service untuk Apache Kafka, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.
Python
Sebelum mencoba contoh ini, ikuti petunjuk penyiapan Python di Menginstal library klien. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi Managed Service untuk Apache Kafka Python API.
Untuk melakukan autentikasi ke Managed Service untuk Apache Kafka, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.
Mengonfigurasi retensi pesan
Kafka menyimpan pesan dalam file segmen log. Secara default, Kafka menghapus file segmen setelah periode retensi atau saat partisi melebihi batas ukuran data. Anda dapat mengubah perilaku ini dengan mengaktifkan pemadatan log. Jika pemadatan log diaktifkan, Kafka hanya akan menyimpan nilai terbaru untuk setiap kunci.
Google Cloud Managed Service untuk Apache Kafka menggunakan penyimpanan bertingkat, yang berarti segmen log yang telah selesai disimpan dari jarak jauh, bukan penyimpanan lokal. Untuk mempelajari penyimpanan bertingkat lebih lanjut, lihat Penyimpanan Bertingkat dalam dokumentasi Apache Kafka.
Menetapkan nilai retensi
Jika pemadatan log tidak diaktifkan, setelan berikut akan mengontrol cara Kafka menyimpan file segmen log:
retention.ms: Durasi maksimum untuk menyimpan file segmen, dalam milidetik.retention.bytes: Jumlah byte maksimum yang akan disimpan per partisi. Jika data dalam partisi melebihi nilai ini, Kafka akan menghapus file segmen yang lebih lama.
Untuk memperbarui setelan ini, gunakan gcloud CLI atau Kafka CLI:
gcloud
Untuk menetapkan retensi pesan, jalankan
gcloud managed-kafka topics update
perintah.
gcloud managed-kafka topics update TOPIC_ID \
--cluster=CLUSTER_ID \
--location=LOCATION_ID \
--configs=retention.ms=RETENTION_PERIOD,retention.bytes=MAX_BYTES
Ganti kode berikut:
- TOPIC_ID: ID topik.
- CLUSTER_ID: ID cluster yang berisi topik.
- LOCATION_ID: Lokasi cluster.
- RETENTION_PERIOD: Jumlah waktu maksimum untuk menyimpan file segmen, dalam milidetik.
- MAX_BYTES: Jumlah byte maksimum yang akan disimpan, per partisi.
Kafka CLI
Sebelum menjalankan perintah ini, instal alat command line Kafka di VM Compute Engine. VM harus dapat menjangkau subnet yang terhubung ke cluster Managed Service untuk Apache Kafka Anda. Ikuti petunjuk di Membuat dan menggunakan pesan dengan alat command line Kafka.
Jalankan perintah kafka-configs.sh:
kafka-configs.sh --alter \
--bootstrap-server=BOOTSTRAP_ADDRESS \
--command-config client.properties \
--entity-type topics \
--entity-name TOPIC_ID \
--add-config retention.ms=RETENTION_PERIOD,retention.bytes=MAX_BYTES
Ganti kode berikut:
- BOOTSTRAP_ADDRESS: Alamat bootstrap cluster Managed Service untuk Apache Kafka.
- TOPIC_ID: ID topik.
- RETENTION_PERIOD: Jumlah waktu maksimum untuk menyimpan file segmen, dalam milidetik.
- MAX_BYTES: Jumlah byte maksimum yang akan disimpan, per partisi.
Mengaktifkan pemadatan log
Jika pemadatan log diaktifkan, Kafka hanya akan menyimpan pesan terbaru untuk setiap kunci. Pemadatan log dinonaktifkan secara default. Untuk mengaktifkan pemadatan log untuk
topik, tetapkan konfigurasi cleanup.policy ke "compact", sebagai berikut:
gcloud
Jalankan
gcloud managed-kafka topics update
perintah.
gcloud managed-kafka topics update TOPIC_ID \
--cluster=CLUSTER_ID \
--location=LOCATION_ID \
--configs=cleanup.policy=compact
Ganti kode berikut:
- TOPIC_ID: ID topik.
- CLUSTER_ID: ID cluster yang berisi topik.
- LOCATION_ID: Lokasi cluster.
Kafka CLI
Sebelum menjalankan perintah ini, instal alat command line Kafka di VM Compute Engine. VM harus dapat menjangkau subnet yang terhubung ke cluster Managed Service untuk Apache Kafka Anda. Ikuti petunjuk di Membuat dan menggunakan pesan dengan alat command line Kafka.
Jalankan perintah kafka-configs.sh:
kafka-configs.sh --alter \
--bootstrap-server=BOOTSTRAP_ADDRESS \
--command-config client.properties \
--entity-type topics \
--entity-name TOPIC_ID \
--add-config cleanup.policy=compact
Ganti kode berikut:
- BOOTSTRAP_ADDRESS: Alamat bootstrap cluster Managed Service untuk Apache Kafka.
- TOPIC_ID: ID topik.
Batasan
Anda tidak dapat mengganti konfigurasi topik untuk penyimpanan jarak jauh, seperti
remote.storage.enable.Anda tidak dapat mengganti konfigurasi topik untuk file segmen log, seperti
segment.bytes.Mengaktifkan pemadatan log untuk topik secara implisit akan menonaktifkan penyimpanan bertingkat untuk topik tersebut. Semua file log untuk topik disimpan secara lokal.