Kuota dan batas Pub/Sub

Google Cloud menggunakan kuota untuk membatasi jumlah resource Google Cloud bersama 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 bersamaan oleh project Anda.

Banyak layanan juga memiliki batasan yang tidak terkait dengan sistem kuota. Batasan ini adalah batasan tetap, seperti ukuran pesan maksimum atau jumlah resource Pub/Sub yang dapat Anda buat dalam project, yang tidak dapat ditingkatkan atau diturunkan.

Melihat dan mengelola kuota

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

  • Mengurangi batas kuota
  • Memulai proses untuk mengajukan permohonan batas kuota yang lebih tinggi

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

Atribusi penggunaan kuota

Untuk throughput pelanggan push, penggunaan kuota akan ditagih ke project yang berisi langganan push. Ini adalah project yang muncul dalam nama langganan.

Untuk semua kuota lainnya, penggunaan akan ditagih ke project yang terkait dengan kredensial yang ditentukan dalam permintaan. Penggunaan kuota tidak ditagih terhadap project yang berisi resource yang diminta.

Misalnya: Jika akun layanan di project A mengirim permintaan publikasi untuk memublikasikan ke topik di project B, kuota akan ditagih ke project A. Dalam beberapa kasus, Anda mungkin ingin penggunaan kuota ditagih ke project lain. Anda dapat menggunakan parameter sistem X-Goog-User-Project untuk mengubah project untuk atribusi kuota. Untuk informasi selengkapnya tentang X-Goog-User-Project, lihat Parameter sistem.

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

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

Contoh berikut menunjukkan cara mendapatkan daftar langganan di 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 kuotanya ingin Anda tagih.

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

Kuota Pub/Sub

Kuota yang tercantum dalam tabel berikut dapat dilihat dan diedit berdasarkan 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 lainnya

Kuota pengiriman tepat satu kali bersifat spesifik per wilayah. Periksa detail untuk setiap wilayah di tabel berikut.

Kuota Batas kuota default Deskripsi
Throughput penayang per region
  • 240.000.000 kB per menit (4 GB/s) di region besar
  • 48.000.000 kB per menit (800 MB/s) di region sedang
  • 12.000.000 kB per menit (200 MB/dtk) di region 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 pelanggan pull per region
  • 240.000.000 kB per menit (4 GB/s) di region besar
  • 48.000.000 kB per menit (800 MB/s) di region sedang
  • 24.000.000 kB per menit (400 MB/dtk) di region kecil

pubsub.googleapis.com/regionalsubscriber

Penggunaan kuota didasarkan pada ukuran PubsubMessage yang ditampilkan:

Throughput konfirmasi per region
  • 240.000.000 kB per menit (4 GB/s) di region besar
  • 48.000.000 kB per menit (800 MB/s) di region sedang
  • 24.000.000 kB per menit (400 MB/dtk) di region kecil

pubsub.googleapis.com/regionalacknowledger

Penggunaan kuota didasarkan pada ukuran permintaan Acknowledge dan ModifyAckDeadline:

Throughput langganan push per region
  • 26.400.000 kB per menit (440 MB/dtk) di region besar
  • 8.400.000 kB per menit (140 MB/dtk) di region sedang
  • 2.400.000 kB per menit (40 MB/dtk) di region 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 langganan BigQuery per region
  • 26.400.000 kB per menit (440 MB/s) di region besar
  • 8.400.000 kB per menit (140 MB/dtk) di region sedang
  • 2.400.000 kB per menit (40 MB/dtk) di region kecil

pubsub.googleapis.com/regionalpushbigquerysubscriber

Untuk permintaan yang dibuat ke BigQuery, penggunaan kuota didasarkan pada ukuran PubsubMessage yang dikirim ke BigQuery.

Throughput langganan Cloud Storage per region
  • 26.400.000 kB per menit (440 MB/s) di region besar
  • 8.400.000 kB per menit (140 MB/dtk) di region sedang
  • 2.400.000 kB per menit (40 MB/dtk) di region kecil

pubsub.googleapis.com/regionalpushcloudstoragesubscriber

Untuk permintaan yang dibuat ke Cloud Storage, penggunaan kuota didasarkan pada ukuran PubsubMessage yang dikirim ke Cloud Storage.

Throughput pelanggan StreamingPull per region
  • 240.000.000 kB per menit (4 GB/s) di region besar
  • 48.000.000 kB per menit (800 MB/s) di region sedang
  • 24.000.000 kB per menit (400 MB/dtk) di region 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 sekaligus di region sedang
  • 24.000 koneksi terbuka sekaligus 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 terhadap 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 pengiriman tepat sekali diaktifkan per region
  • 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 diakui atau yang batas waktunya diperpanjang saat menggunakan langganan dengan pengiriman tepat satu kali yang 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 unit 1 kB. 1 kB adalah 1.000 byte. Misalnya, dalam PublishRequest dengan 105 pesan berukuran 50 byte, ukuran data pengguna adalah 105 * 50 bytes = 5250 bytes, sehingga penggunaan kuota adalah max(1kB, ceil(5250 bytes/1000)) = 6kB.

Batas resource

Resource Batas
Project 10.000 topik
10.000 langganan yang dilampirkan atau dilepaskan
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 dalam penyimpanan persisten hingga 31 hari sejak waktu publikasi.
Langganan Secara default, menyimpan pesan yang tidak terkonfirmasi 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): 300 KB
Revisi per skema: 20
Permintaan publikasi 10 MB (total ukuran)
1.000 pesan
Pesan Ukuran pesan (kolom data): 10 MB
Atribut per pesan: 100
Ukuran kunci atribut: 256 byte
Ukuran nilai atribut: 1024 byte
Streaming StreamingPull 10 MBps 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 belum selesai per koneksi. Jika Anda mengalami batas tersebut, tingkatkan frekuensi Anda mengonfirmasi pesan dan jumlah koneksi yang Anda gunakan.
Mengonfirmasi dan mengubah permintaan AckDeadline 512 KB (ukuran total)
Kunci pengurutan Jika pesan memiliki kunci pengurutan, throughput penayang maksimum adalah 1 MBps untuk setiap kunci pengurutan.
Objek bucket Cloud Storage Saat menggunakan topik impor Cloud Storage, batas jumlah objek dalam bucket adalah 50 juta.

Menggunakan akun layanan untuk kuota yang lebih tinggi

Jika Anda menggunakan alat Google Cloud CLI dengan akun pengguna normal (yaitu, akun non-layanan), operasi Pub/Sub dibatasi pada kecepatan yang sesuai untuk operasi manual. Tarif yang melebihi batas ini akan menyebabkan error RESOURCE_EXHAUSTED. Solusi untuk mengatasinya adalah dengan memastikan bahwa Anda menggunakan kredensial akun layanan. Jika Anda 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 wilayah tertentu, Anda dapat merutekan permintaan ke wilayah ini menggunakan endpoint Pub/Sub lokasional. Saat Anda memublikasikan pesan ke endpoint global, layanan Pub/Sub mungkin merutekan traffic ke wilayah yang tidak memiliki kuota yang memadai.

Ketidakcocokan kuota

Ketidakcocokan kuota dapat terjadi jika pesan yang dipublikasikan atau diterima 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 atas hingga penambahan 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 secara keseluruhan.

  • Hal sebaliknya juga berlaku. 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.