Kuota dan batas Pub/Sub

Google Cloud menggunakan kuota untuk membatasi jumlah resource Google Cloud bersama tertentu yang dapat Anda gunakan. Setiap kuota mewakili resource tertentu yang dapat dihitung, seperti panggilan API ke layanan tertentu, jumlah byte yang dikirim ke layanan tertentu, atau jumlah koneksi streaming yang digunakan secara serentak oleh project Anda.

Banyak layanan juga memiliki batasan yang tidak terkait dengan sistem kuota. Ini adalah batasan tetap, seperti ukuran pesan maksimum atau jumlah resource Pub/Sub yang dapat Anda buat dalam sebuah project, yang tidak dapat ditambah atau dikurangi.

Melihat dan mengelola kuota

Untuk project tertentu, Anda dapat menggunakan dasbor kuota IAM & admin untuk melihat batas kuota dan penggunaan saat ini. Anda juga dapat menggunakan dasbor ini untuk melakukan hal berikut:

  • Mengurangi batas kuota
  • Mulai proses untuk mengajukan batas kuota yang lebih tinggi

Untuk mengetahui informasi selengkapnya tentang pemantauan dan pemberitahuan tentang penggunaan kuota, lihat Pemantauan.

Atribusi penggunaan kuota

Untuk throughput pelanggan push, penggunaan kuota dibebankan pada project yang berisi langganan push. Ini adalah project yang muncul dalam nama langganan.

Untuk semua kuota lainnya, penggunaan akan ditagihkan ke project yang terkait dengan kredensial yang ditentukan dalam permintaan. Penggunaan kuota tidak dikenai biaya untuk project yang berisi resource yang diminta.

Misalnya: Jika akun layanan di project A mengirim permintaan publikasi untuk memublikasikan ke sebuah topik dalam project B, kuota akan dikenakan biaya ke project A. Dalam beberapa kasus, Anda mungkin ingin penggunaan kuota ditagihkan ke project lain. Anda dapat menggunakan parameter sistem X-Goog-User-Project untuk mengubah project untuk atribusi kuota. Untuk mengetahui X-Goog-User-Project lebih lanjut, lihat Parameter sistem.

Anda dapat menggunakan gcloud CLI untuk menetapkan project untuk atribusi kuota bagi permintaan tertentu. Gcloud CLI mengirimkan header permintaan X-Goog-User-Project.

Anda harus memiliki peran roles/serviceusage.serviceUsageConsumer atau peran khusus dengan izin serviceusage.services.use di project yang akan digunakan untuk atribusi kuota.

Contoh berikut menunjukkan cara mendapatkan daftar langganan dalam project RESOURCE_PROJECT sekaligus menagih kuota operasi Administrator terhadap project QUOTA_PROJECT. Jalankan perintah berikut di terminal Google Cloud CLI Anda:

gcloud pubsub subscriptions list --project=
RESOURCE_PROJECT --billing-project=
QUOTA_PROJECT

Ganti QUOTA_PROJECT dengan ID project Google Cloud yang ingin Anda kenakan kuotanya.

Perhatikan bahwa di Pub/Sub, project yang ditagih selalu merupakan project yang berisi resource. Anda dapat mengubah project hanya untuk atribusi kuota.

Kuota Pub/Sub

Kuota yang tercantum dalam tabel berikut dapat dilihat dan diedit per project di dasbor kuota API dan layanan.

Kuota regional dibagi menjadi 3 jenis:

  • Wilayah besar: europe-west1, europe-west4, us-central1, us-east1, us-east4, us-west1, us-west2
  • Wilayah sedang: asia-east1, asia-northeast1, asia-southeast1, europe-west2, europe-west3
  • Wilayah kecil: semua wilayah lain

Kuota pengiriman tepat satu kali bergantung pada wilayah. Periksa detail untuk setiap wilayah dalam tabel berikut.

Kuota Batas kuota default Deskripsi
Throughput penayang per region
  • 240.000.000 kB per menit (4 GB/s) di wilayah yang luas
  • 48.000.000 kB per menit (800 MB/s) di daerah sedang
  • 12.000.000 kB per menit (200 MB/s) di daerah kecil

pubsub.googleapis.com/regionalpublisher

Penggunaan kuota didasarkan pada ukuran PubsubMessage yang dipublikasikan:

Perhatikan bahwa beberapa pesan dapat disertakan dalam satu permintaan publikasi, dan tidak ada biaya kuota tambahan per pesan.

Throughput subscriber pull per region
  • 240.000.000 kB per menit (4 GB/s) di wilayah yang luas
  • 48.000.000 kB per menit (800 MB/s) di daerah sedang
  • 24.000.000 kB per menit (400 MB/s) di daerah kecil

pubsub.googleapis.com/regionalsubscriber

Penggunaan kuota didasarkan pada ukuran PubsubMessage yang ditampilkan:

Throughput pengakuan per region
  • 240.000.000 kB per menit (4 GB/s) di wilayah yang luas
  • 48.000.000 kB per menit (800 MB/s) di daerah sedang
  • 24.000.000 kB per menit (400 MB/s) di daerah kecil

pubsub.googleapis.com/regionalacknowledger

Penggunaan kuota didasarkan pada ukuran permintaan Acknowledge dan ModifyAckDeadline:

Throughput push dan ekspor pelanggan per region
  • 26.400.000 kB per menit (440 MB/s) di wilayah yang luas
  • 8.400.000 kB per menit (140 MB/s) di daerah sedang
  • 2.400.000 kB per menit (40 MB/s) di daerah kecil

pubsub.googleapis.com/regionalpushsubscriber

Untuk permintaan pengiriman push yang dibuat ke endpoint push, penggunaan kuota didasarkan pada ukuran PubsubMessage yang dikirim ke endpoint push.

Throughput pelanggan StreamingPull per region
  • 240.000.000 kB per menit (4 GB/s) di wilayah yang luas
  • 48.000.000 kB per menit (800 MB/s) di daerah sedang
  • 24.000.000 kB per menit (400 MB/s) di daerah kecil

pubsub.googleapis.com/regionalstreamingpullsubscriber

Penggunaan kuota didasarkan pada ukuran PubsubMessage yang di-streaming ke pelanggan:

Perhatikan bahwa Library Klien menggunakan operasi StreamingPull jika memungkinkan.

Jumlah koneksi StreamingPull terbuka per region
  • 72.000 koneksi terbuka sekaligus di region besar
  • 48.000 koneksi terbuka pada satu waktu di region sedang
  • 24.000 koneksi terbuka dalam satu waktu di region kecil

pubsub.googleapis.com/regionalstreamingpullconnections

Jumlah koneksi StreamingPull yang terbuka pada waktu tertentu. Lihat StreamingPull.

Operasi administrator 6.000 per menit (100 operasi/dtk)

pubsub.googleapis.com/administrator

Setiap operasi administrator, seperti GetTopicRequest, akan mengenakan biaya satu unit dari kuota ini.

Get*, List*, Create*, Delete*, Update*, ModifyPushConfig, SetIamPolicy, GetIamPolicy, TestIamPermissions, ValidateSchema, ValidateMessage,CommitSchema,RollbackSchema, DeleteSchemaRevision, ListSchemaRevisions, dan DetachSubscription adalah operasi administrator.

Jumlah pesan yang digunakan dari langganan dengan tepat sekali pengiriman diaktifkan per wilayah
  • 1.000.000 pesan per menit di us-central1
  • 700.000 pesan per menit di us-east1
  • 300.000 pesan per menit di us-west1
  • 180.000 pesan per menit di region lain

pubsub.googleapis.com/exactlyoncedeliveredmessagecount

Penggunaan kuota didasarkan pada jumlah PubsubMessage yang digunakan oleh pelanggan:

Jumlah pesan yang dikonfirmasi atau yang batas waktunya diperpanjang saat menggunakan langganan dengan pengiriman tepat satu kali diaktifkan per region
  • 10.000.000 pesan per menit di us-central1
  • 7.000.000 pesan per menit di us-east1
  • 3.000.000 pesan per menit di us-west1
  • 1.800.000 pesan per menit di region lain

pubsub.googleapis.com/exactlyonceackcount

Penggunaan kuota didasarkan pada jumlah ID konfirmasi dalam permintaan Acknowledge dan ModifyAckDeadline:

Unit kuota throughput

Penggunaan kuota throughput diukur dalam satuan 1 kB. 1 kB adalah 1.000 byte. Misalnya, dalam PublishRequest dengan 105 pesan masing-masing berukuran 50 byte, ukuran data pengguna adalah 105 * 50 bytes = 5250 bytes sehingga penggunaan kuotanya adalah max(1kB, ceil(5250 bytes/1000)) = 6kB.

Batas resource

Resource Batas
Project 10.000 topik
10.000 langganan yang terpasang atau dilepas
5.000 snapshot
10.000 skema
Topik 10.000 langganan terlampir
5.000 snapshot terlampir
Jika retensi pesan topik dikonfigurasi, pesan yang dipublikasikan ke topik dapat dipertahankan di penyimpanan persisten hingga 31 hari sejak publikasi.
Langganan Secara default, mempertahankan pesan yang tidak dikonfirmasi dalam penyimpanan persisten selama 7 hari sejak waktu publikasi. Tidak ada batasan untuk jumlah pesan yang dipertahankan.
Jika pelanggan tidak menggunakan langganan, masa berlaku langganan akan berakhir. Periode habis masa berlaku default adalah 31 hari.
Skema Ukuran skema (kolom definition): 50 KB
Revisi per skema: 20
Publikasikan permintaan 10 MB (ukuran total)
1.000 pesan
Pesan Ukuran pesan (kolom data): 10 MB
Atribut per pesan: 100
Ukuran kunci atribut: 256 byte
Ukuran nilai atribut: 1024 byte
StreamingPull 10 MB/dtk per streaming terbuka
Respons Pull Unary Jumlah maksimum pesan dalam Respons pull: 1.000
Ukuran maksimum respons Pull: 10 MB
Pesan Pull/StreamingPull Layanan ini mungkin memberlakukan batas pada jumlah total pesan StreamingPull yang beredar per koneksi. Jika Anda mencapai batas tersebut, tingkatkan tingkat untuk mengonfirmasi pesan dan jumlah koneksi yang Anda gunakan.
Mengakui dan permintaan ModifikasiAck Tenggat Waktu 512 KB (ukuran total)
Mengurutkan kunci Jika pesan memiliki kunci pengurutan, throughput penayang maksimum adalah 1 MBps untuk setiap kunci pengurutan.

Gunakan akun layanan untuk mendapatkan kuota yang lebih tinggi

Jika Anda menggunakan alat gcloud Google Cloud CLI dengan akun pengguna biasa (yaitu, akun non-layanan), operasi Pub/Sub dibatasi ke tarif yang sesuai untuk operasi manual. Tarif yang melebihi batas ini akan menyebabkan error RESOURCE_EXHAUSTED. Solusinya adalah memastikan bahwa Anda menggunakan kredensial akun layanan. Jika ingin menggunakan kredensial dari gcloud CLI untuk otomatisasi, aktifkan akun layanan untuk operasi Pub/Sub Anda.

Menggunakan endpoint lokasi untuk merutekan permintaan

Jika memiliki kuota tambahan di region tertentu, Anda dapat merutekan permintaan ke region tersebut menggunakan endpoint Pub/Sub lokasi. Saat Anda memublikasikan pesan ke endpoint global, layanan Pub/Sub mungkin mengarahkan traffic ke region yang tidak memiliki kuota cukup.

Ketidakcocokan kuota

Ketidakcocokan kuota dapat terjadi jika pesan yang dipublikasikan atau diterima berukuran lebih kecil dari 1.000 byte. Contoh:

  • Jika Anda memublikasikan 10 pesan berukuran 500 byte dalam permintaan terpisah, penggunaan kuota penayang Anda akan menjadi 10.000 byte. Hal ini karena pesan yang berukuran lebih kecil dari 1.000 byte akan otomatis dibulatkan ke kelipatan 1.000 byte berikutnya.

  • Jika Anda menerima 10 pesan tersebut dalam satu respons pull, penggunaan kuota pelanggan Anda mungkin hanya 5 kB, karena ukuran sebenarnya dari setiap pesan digabungkan untuk menentukan kuota keseluruhan.

  • Kebalikannya juga benar. Penggunaan kuota pelanggan mungkin lebih besar daripada penggunaan kuota penayang jika Anda memublikasikan beberapa pesan dalam satu permintaan publikasi atau menerima pesan dalam permintaan Pull terpisah.