Membuat dan menggunakan pesan dengan alat command line Kafka
Pelajari cara menggunakan alat command line Kafka untuk terhubung ke cluster Managed Service untuk Apache Kafka, membuat pesan, dan menggunakan pesan.
Sebelum memulai
Sebelum memulai tutorial ini, buat cluster Managed Service untuk Apache Kafka baru. Jika sudah memiliki cluster, Anda dapat melewati langkah ini.
Cara membuat cluster
Konsol
- Buka halaman Managed Service untuk Apache Kafka > Cluster.
- Klik Buat.
- Di kotak Nama cluster, masukkan nama untuk cluster.
- Dalam daftar Region, pilih lokasi untuk cluster.
-
Untuk Konfigurasi jaringan, konfigurasikan subnet tempat cluster dapat diakses:
- Untuk Project, pilih project Anda.
- Untuk Network, pilih jaringan VPC.
- Untuk Subnet, pilih subnet.
- Klik Selesai.
- Klik Buat.
Setelah Anda mengklik Buat, status cluster adalah Creating. Saat cluster
siap, statusnya adalah Active.
gcloud
Untuk membuat cluster Kafka, jalankan perintah
managed-kafka clusters
create.
gcloud managed-kafka clusters create KAFKA_CLUSTER \ --location=REGION \ --cpu=3 \ --memory=3GiB \ --subnets=projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME \ --async
Ganti kode berikut:
KAFKA_CLUSTER: nama untuk cluster KafkaREGION: lokasi clusterPROJECT_ID: project ID AndaSUBNET_NAME: subnet tempat Anda ingin membuat cluster, misalnyadefault
Untuk mengetahui informasi tentang lokasi yang didukung, lihat Lokasi Managed Service untuk Apache Kafka.
Perintah ini berjalan secara asinkron dan menampilkan ID operasi:
Check operation [projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID] for status.
Untuk melacak progres operasi pembuatan, gunakan perintah
gcloud managed-kafka
operations describe:
gcloud managed-kafka operations describe OPERATION_ID \ --location=REGION
Saat cluster siap, output dari perintah ini akan menyertakan entri state:
ACTIVE. Untuk mengetahui informasi selengkapnya, lihat
Memantau operasi pembuatan cluster.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk membuat dan mengonfigurasi VM klien, minta administrator untuk memberi Anda peran IAM berikut pada project:
- Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1) - Project IAM Admin (
roles/resourcemanager.projectIamAdmin) - Role Viewer (
roles/iam.roleViewer) - Service Account User (
roles/iam.serviceAccountUser)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Membuat VM klien
Buat instance virtual machine (VM) Linux di Compute Engine yang dapat mengakses cluster Kafka. Saat mengonfigurasi VM, tetapkan opsi berikut:
Region. Buat VM di region yang sama dengan cluster Kafka Anda.
Subnet. Buat VM di jaringan VPC yang sama dengan subnet yang Anda gunakan dalam konfigurasi cluster Kafka. Untuk mengetahui informasi selengkapnya, lihat Melihat subnet cluster.
Access scopes. Tetapkan
https://www.googleapis.com/auth/cloud-platformcakupan akses ke VM. Cakupan ini mengotorisasi VM untuk mengirim permintaan ke Managed Kafka API.
Langkah-langkah berikut menunjukkan cara menetapkan opsi ini.
Konsol
Di Google Cloud konsol, buka halaman Buat instance.
Di panel Machine configuration, lakukan hal berikut:
Di kolom Name, tentukan nama untuk instance Anda. Untuk mengetahui informasi selengkapnya, lihat Konvensi penamaan resource.
Dalam daftar Region, pilih region yang sama dengan cluster Kafka Anda.
Dalam daftar Zone, pilih zona.
Di menu navigasi, klik Networking. Di panel Networking yang muncul, lakukan hal berikut:
Buka bagian Network interfaces.
Untuk meluaskan antarmuka jaringan default, klik the arrow.
Di kolom Network, pilih jaringan VPC.
Dalam daftar Subnetwork, pilih subnet.
Klik Selesai.
Di menu navigasi, klik Security. Di panel Security yang muncul, lakukan hal berikut:
Untuk Access scopes, pilih Set access for each API.
Dalam daftar cakupan akses, temukan menu drop-down Cloud Platform dan pilih Enabled.
Klik Create untuk membuat VM.
gcloud
Untuk membuat instance VM, gunakan
gcloud compute instances create
perintah.
gcloud compute instances create VM_NAME \
--scopes=https://www.googleapis.com/auth/cloud-platform \
--subnet=projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET \
--zone=ZONE
Ganti kode berikut:
- VM_NAME: nama VM
- PROJECT_ID: project ID Anda
- REGION: region tempat Anda membuat cluster Kafka, misalnya
us-central1 - SUBNET: subnet di jaringan VPC yang sama dengan subnet yang Anda gunakan dalam konfigurasi cluster
- ZONE: zona di region tempat Anda membuat
cluster, misalnya
us-central1-c
Untuk mengetahui informasi selengkapnya tentang cara membuat VM, lihat Membuat instance VM di subnet tertentu.
Memberikan peran IAM
Berikan peran Identity and Access Management (IAM) berikut ke akun layanan default Compute Engine:
- Managed Kafka Client (
roles/managedkafka.client) - Service Account Token Creator (
roles/iam.serviceAccountTokenCreator) Service Account OpenID Token Creator (
roles/iam.serviceAccountOpenIdTokenCreator)
Konsol
Di Google Cloud konsol, buka halaman IAM.
Temukan baris untuk Compute Engine default service account , lalu klik Edit principal.
Klik Add another role , lalu pilih peran Managed Kafka Client. Ulangi langkah ini untuk peran Service Account Token Creator dan Service Account OpenID Token Creator.
Klik Simpan.
gcloud
Untuk memberikan peran IAM, gunakan
gcloud projects add-iam-policy-binding
perintah.
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
--role=roles/managedkafka.client
gcloud projects add-iam-policy-binding PROJECT_ID\
--member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
--role=roles/iam.serviceAccountTokenCreator
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:PROJECT_NUMBER-compute@developer.gserviceaccount.com" \
--role=roles/iam.serviceAccountOpenIdTokenCreator
Ganti kode berikut:
PROJECT_ID: project ID Anda
PROJECT_NUMBER: nomor project Anda
Untuk mendapatkan nomor project, jalankan perintah
gcloud projects describe:
gcloud projects describe PROJECT_ID
Untuk mengetahui informasi selengkapnya, lihat Menemukan nama, nomor, dan ID project.
Terhubung ke VM
Gunakan SSH untuk terhubung ke instance VM.
Konsol
Buka halaman VM instances.
Dalam daftar instance VM, temukan nama VM, lalu klik SSH.
gcloud
Untuk terhubung ke VM, gunakan perintah
gcloud compute ssh.
gcloud compute ssh VM_NAME \
--project=PROJECT_ID \
--zone=ZONE
Ganti kode berikut:
- VM_NAME: nama VM
- PROJECT_ID: project ID Anda
- ZONE: zona tempat Anda membuat VM
Konfigurasi tambahan mungkin diperlukan untuk penggunaan SSH pertama kali. Untuk mengetahui informasi selengkapnya, lihat Tentang koneksi SSH.
Menginstal alat command line Kafka
Dari sesi SSH Anda, jalankan perintah berikut untuk menginstal alat command line Kafka.
Instal Java, yang diperlukan untuk menjalankan alat command line Kafka, dan
wgetuntuk membantu mendownload dependensi. Perintah berikut mengasumsikan Anda menggunakan lingkungan Debian Linux.sudo apt-get install default-jre wgetInstal alat command line Kafka.
wget -O kafka_2.13-3.7.2.tgz https://archive.apache.org/dist/kafka/3.7.2/kafka_2.13-3.7.2.tgz tar xfz kafka_2.13-3.7.2.tgzTetapkan variabel lingkungan berikut:
export KAFKA_HOME=$(pwd)/kafka_2.13-3.7.2 export PATH=$PATH:$KAFKA_HOME/bin export CLASSPATH=$CLASSPATH:$KAFKA_HOME/libs/release-and-dependencies/*:$KAFKA_HOME/libs/release-and-dependencies/dependency/*
Menyiapkan autentikasi
Dari sesi SSH Anda, lakukan langkah-langkah berikut untuk menyiapkan library autentikasi Managed Service untuk Apache Kafka.
Download library dan instal secara lokal.
wget https://github.com/googleapis/managedkafka/releases/download/v1.0.5/release-and-dependencies.zip sudo apt-get install unzip unzip -n -j release-and-dependencies.zip -d $KAFKA_HOME/libs/Perintah ini menginstal library di direktori
libdari direktori penginstalan Kafka. Alat command line Kafka mencari dependensi Java di direktori ini.Dengan menggunakan editor teks, buat file bernama
client.propertiesdan tempelkan kode berikut:security.protocol=SASL_SSL sasl.mechanism=OAUTHBEARER sasl.login.callback.handler.class=com.google.cloud.hosted.kafka.auth.GcpLoginCallbackHandler sasl.jaas.config=org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required;Simpan file. File ini mengonfigurasi klien Kafka dengan setelan berikut:
Gunakan SASL_SSL untuk komunikasi yang aman dengan cluster Kafka.
Gunakan token bearer OAuth 2.0 untuk autentikasi.
Gunakan class yang disediakan library
GcpLoginCallbackHandlersebagai pengendali callback login untuk mendapatkan token OAuth 2.0.
Membuat dan menggunakan pesan
Dari sesi SSH Anda, jalankan perintah berikut untuk membuat dan menggunakan pesan Kafka.
Tetapkan alamat bootstrap sebagai variabel lingkungan.
export BOOTSTRAP=bootstrap.CLUSTER_ID.REGION.managedkafka.PROJECT_ID.cloud.goog:9092Ganti kode berikut:
CLUSTER_ID: nama cluster AndaREGION: tempat Anda membuat clusterPROJECT_ID: project ID Anda
Untuk mengetahui informasi selengkapnya, lihat Mendapatkan alamat bootstrap.
Cantumkan topik di cluster.
kafka-topics.sh --list \ --bootstrap-server $BOOTSTRAP \ --command-config client.propertiesTulis pesan ke topik.
echo "hello world" | kafka-console-producer.sh \ --topic KAFKA_TOPIC_NAME \ --bootstrap-server $BOOTSTRAP \ --producer.config client.propertiesGanti KAFKA_TOPIC_NAME dengan nama topik.
Gunakan pesan dari topik.
kafka-console-consumer.sh \ --topic KAFKA_TOPIC_NAME \ --from-beginning \ --bootstrap-server $BOOTSTRAP \ --consumer.config client.propertiesUntuk berhenti menggunakan pesan, masukkan Ctrl+C.
Jalankan pengujian performa produsen.
kafka-producer-perf-test.sh \ --topic KAFKA_TOPIC_NAME \ --num-records 1000000 --throughput 1000 --print-metrics --record-size 1024 \ --producer-props bootstrap.servers=$BOOTSTRAP \ --producer.config client.properties
Pembersihan
Agar akunAnda tidak dikenai biaya untuk resource yang digunakan pada halaman ini, ikuti langkah-langkah berikut. Google Cloud
Konsol
Hapus instance VM.
Buka halaman VM instances.
Pilih VM, lalu klik Hapus.
Hapus cluster Kafka.
Buka halaman Managed Service untuk Apache Kafka > Cluster.
Pilih cluster Kafka, lalu klik Hapus.
gcloud
Untuk menghapus VM, gunakan
gcloud compute instances deleteperintah.gcloud compute instances delete VM_NAME --zone=ZONEUntuk menghapus cluster Kafka, gunakan
gcloud managed-kafka clusters deleteperintah.gcloud managed-kafka clusters delete CLUSTER_ID \ --location=REGION --async
Langkah berikutnya
- Ringkasan Managed Service untuk Apache Kafka
- Mengautentikasi ke Managed Service untuk Apache Kafka
- Mengonfigurasi jaringan