Setelah topik dibuat, Anda dapat mengedit konfigurasi topik untuk memperbarui properti berikut: jumlah partisi dan konfigurasi topik yang tidak ditetapkan secara default ke properti yang sudah ditetapkan di tingkat cluster. Anda hanya dapat menambah jumlah partisi, Anda 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 guna mengedit topik, minta administrator Anda untuk memberi Anda peran IAM Managed Kafka Topic Editor(roles/managedkafka.topicEditor) di project Anda.
Untuk mengetahui informasi selengkapnya tentang cara memberikan 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:
-
Perbarui topik:
managedkafka.topics.update
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Untuk mengetahui informasi selengkapnya tentang peran ini, lihat Peran bawaan Managed Service for Apache Kafka.
Mengedit topik
Untuk mengedit topik, ikuti langkah-langkah berikut:
Konsol
Di konsol Google Cloud , buka halaman Clusters.
Cluster yang Anda buat dalam project akan dicantumkan.
Klik cluster tempat topik yang ingin Anda edit berada.
Halaman Cluster details akan terbuka. Di halaman detail cluster, untuk tab Resources, topik akan dicantumkan.
Klik topik yang ingin Anda edit.
Halaman Topic details akan terbuka.
Untuk melakukan pengeditan, klik Edit.
Klik Simpan setelah melakukan perubahan.
gcloud
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
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 yang diperbarui untuk topik. Anda hanya dapat menambah jumlah partisi, dan tidak dapat menguranginya.
- CONFIGS: Opsional: Daftar setelan
konfigurasi yang akan diperbarui. Tentukan sebagai daftar pasangan nilai kunci yang dipisahkan koma. Contoh,
retention.ms=3600000,retention.bytes=10000000.
-
PROJECT_ID: Project ID Google Cloud Anda -
LOCATION: lokasi cluster -
CLUSTER_ID: ID cluster -
TOPIC_ID: ID topik -
UPDATE_MASK: kolom yang akan diupdate, sebagai daftar nama yang sepenuhnya memenuhi syarat yang dipisahkan koma. Contoh:partitionCount -
PARTITION_COUNT: jumlah partisi yang diperbarui untuk topik
REST
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
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 Managed Service for Apache Kafka Go API.
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 Managed Service for Apache Kafka Java API.
Untuk melakukan autentikasi ke Managed Service for 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 for Apache Kafka Python API.
Untuk melakukan autentikasi ke Managed Service for 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 menyimpan nilai terbaru untuk setiap kunci.
Google Cloud Managed Service for Apache Kafka menggunakan tiered storage, yang berarti bahwa segmen log yang telah selesai disimpan dari jarak jauh, bukan di penyimpanan lokal. Untuk mempelajari lebih lanjut penyimpanan bertingkat, 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 maksimum byte 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 perintah
gcloud managed-kafka topics update.
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 maksimum byte 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. 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 maksimum byte yang akan disimpan, per partisi.
Mengaktifkan pemadatan log
Jika pemadatan log diaktifkan, Kafka hanya menyimpan pesan terbaru untuk setiap kunci. Pemadatan log dinonaktifkan secara default. Untuk mengaktifkan pemadatan log untuk topik, tetapkan konfigurasi cleanup.policy ke "compact", seperti berikut:
gcloud
Jalankan perintah
gcloud managed-kafka topics update.
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. 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 menonaktifkan penyimpanan bertingkat untuk topik tersebut. Semua file log untuk topik disimpan secara lokal.