Cotas e limites do Pub/Sub

O Google Cloud usa cotas para restringir a quantidade de um determinado recurso compartilhado do Google Cloud que você pode usar. Cada cota representa uma recurso contável, como chamadas de API para um determinado serviço, o número de bytes enviados para um determinado serviço ou o número de conexões de streaming usadas simultaneamente pelo seu projeto.

Muitos serviços também têm limites que não estão relacionados ao sistema de cotas. São restrições fixas, como o tamanho máximo das mensagens ou o número de recursos do Pub/Sub que podem ser criados em um projeto, que não podem ser aumentar ou diminuir.

Ver e gerenciar cotas

Em um determinado projeto, é possível usar o painel de cotas do IAM e administrador para visualizar as cotas e o uso atuais. Você também pode usar esse painel para fazer o seguinte:

  • reduzir os limites de cota;
  • iniciar um processo para solicitar limites de cota mais altos.

Para ver mais informações sobre monitoramento e alerta relacionados o uso de cotas, consulte a Visão geral do Monitoring.

Atribuição de uso da cota

Para a capacidade do assinante push, o uso da cota é cobrado no projeto que contém a assinatura push. Este é o projeto que aparece no nome a assinatura.

Para todas as outras cotas, o uso é cobrado no projeto associado ao credenciais especificadas na solicitação. O uso da cota não é cobrado o projeto que contém o recurso solicitado.

Por exemplo: se uma conta de serviço no projeto A enviar uma solicitação de publicação para publicar em um tópico no projeto B, a cota será cobrada no projeto A. Em alguns casos, você pode querer que o uso da cota seja cobrado de outro em um projeto de IA. É possível usar o parâmetro do sistema X-Goog-User-Project para alterar o projeto para atribuição de cota. Para saber mais sobre X-Goog-User-Project, consulte Parâmetros do sistema.

É possível usar CLI gcloud para definir o projeto para atribuição de cota para uma solicitação específica. A CLI gcloud envia no cabeçalho da solicitação X-Goog-User-Project.

Você precisa ter o papel roles/serviceusage.serviceUsageConsumer. ou um papel personalizado com a permissão serviceusage.services.use no projeto que você vai usar para a atribuição de cotas.

O exemplo a seguir mostra como acessar uma lista de assinaturas no projeto RESOURCE_PROJECT ao carregar o administrador de operações do projeto QUOTA_PROJECT. Executar o comando a seguir no terminal da Google Cloud CLI:

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

Substitua QUOTA_PROJECT pelo ID do projeto do Google Cloud em que a cota será cobrada.

No Pub/Sub, o projeto faturado é sempre aquele que contém o recurso. Só é possível alterar o projeto na atribuição de cotas.

Cotas do Pub/Sub

As cotas listadas na tabela a seguir podem ser visualizadas e editadas por projeto no painel de cotas de APIs e serviços.

As cotas regionais são divididas em três tipos:

  • Grandes regiões: europe-west1, europe-west4, us-central1, us-east1, us-east4, us-west1, us-west2
  • Regiões médias: asia-east1, asia-northeast1, asia-southeast1, europe-west2 e europe-west3
  • Regiões pequenas: todas as outras

As cotas de entrega "uma vez" são específicas para cada região. Confira os detalhes de cada região na tabela a seguir.

Cota Limite de cota padrão Descrição
Capacidade do editor por região
  • 240.000.000 KB por minuto (4 GB/s) em regiões grandes
  • 48.000.000 KB por minuto (800 MB/s) em regiões médias
  • 12.000.000 KB por minuto (200 MB/s) em regiões pequenas

pubsub.googleapis.com/regionalpublisher

O uso da cota é baseado no tamanho das PubsubMessages publicadas:

É possível incluir várias mensagens em uma única solicitação de publicação, e não há cobrança de cota extra por mensagem.

Capacidade do assinante pull por região
  • 240.000.000 KB por minuto (4 GB/s) em regiões grandes
  • 48.000.000 KB por minuto (800 MB/s) em regiões médias
  • 24.000.000 KB por minuto (400 MB/s) em regiões pequenas

pubsub.googleapis.com/regionalsubscriber

O uso da cota é baseado no tamanho das PubsubMessages retornadas:

Capacidade de reconhecimento por região
  • 240.000.000 KB por minuto (4 GB/s) em regiões grandes
  • 48.000.000 KB por minuto (800 MB/s) em regiões médias
  • 24.000.000 KB por minuto (400 MB/s) em regiões pequenas

pubsub.googleapis.com/regionalacknowledger

O uso da cota é baseado no tamanho das solicitações Acknowledge e ModifyAckDeadline:

Capacidade de envio de push e de exportação do assinante por região
  • 26.400.000 KB por minuto (440 MB/s) em regiões grandes
  • 8.400.000 KB por minuto (140 MB/s) em regiões médias
  • 2.400.000 KB por minuto (40 MB/s) em regiões pequenas

pubsub.googleapis.com/regionalpushsubscriber

Para solicitações de entrega push feitas para o endpoint push, o uso da cota é baseado no tamanho das PubsubMessages enviadas a esse endpoint.

Capacidade de assinante de StreamingPull por região
  • 240.000.000 KB por minuto (4 GB/s) em regiões grandes
  • 48.000.000 KB por minuto (800 MB/s) em regiões médias
  • 24.000.000 KB por minuto (400 MB/s) em regiões pequenas

pubsub.googleapis.com/regionalstreamingpullsubscriber

O uso da cota é baseado no tamanho das PubsubMessages transmitidas para o assinante:

As bibliotecas de cliente usam operações StreamingPull sempre que possível.

Número de conexões StreamingPull abertas por região
  • 72.000 conexões abertas de cada vez em regiões grandes
  • 48.000 conexões abertas por vez em regiões médias
  • 24.000 conexões abertas de cada vez em regiões pequenas

pubsub.googleapis.com/regionalstreamingpullconnections

O número de conexões StreamingPull abertas a qualquer momento. Consulte StreamingPull.

Operações de administrador 6.000 por minuto (100 operações/s)

pubsub.googleapis.com/administrator

Cada operação de administrador como GetTopicRequest cobra uma unidade dessa cota.

Get*, List* e Create*. Delete*, Update*, ModifyPushConfig SetIamPolicy, GetIamPolicy, TestIamPermissions, ValidateSchema, ValidateMessage,CommitSchema,RollbackSchema, DeleteSchemaRevision, ListSchemaRevisions, e DetachSubscription estão as operações do administrador.

Número de mensagens consumidas em assinaturas exatamente uma vez entrega ativada por região
  • 1.000.000 de mensagens por minuto em us-central1
  • 700.000 mensagens por minuto em us-east1
  • 300.000 mensagens por minuto em us-west1
  • 180.000 mensagens por minuto em outras regiões

pubsub.googleapis.com/exactlyoncedeliveredmessagecount

O uso da cota é baseado no número PubsubMessages consumidos pelo assinante:

Número de mensagens confirmadas ou com prazo estendido ao usar assinaturas com entrega única ativada por região
  • 10.000.000 de mensagens por minuto em us-central1
  • 7.000.000 de mensagens por minuto na região us-east1
  • 3.000.000 de mensagens por minuto em us-west1
  • 1.800.000 mensagens por minuto em outras regiões

pubsub.googleapis.com/exactlyonceackcount

O uso da cota é baseado no número de IDs de confirmação em Acknowledge e ModifyAckDeadline solicitações:

Unidades de cota de capacidade

O uso da cota de capacidade é medido em unidades de 1 KB. 1 KB é igual a 1.000 bytes. Por exemplo, em uma PublishRequest com 105 mensagens de 50 bytes cada, o tamanho dos dados do usuário será 105 * 50 bytes = 5250 bytes. Portanto, o uso da cota será max(1kB, ceil(5250 bytes/1000)) = 6kB.

Limites de recurso

Recurso Limites
Projeto 10.000 tópicos
10.000 assinaturas anexadas e desanexadas
5.000 snapshots
10.000 esquemas
Tópico 10.000 assinaturas anexadas
5.000 snapshots anexados
Se a retenção de mensagens de tópico estiver configurada, as mensagens publicadas em um tópico poderão ser retidas em arquivos permanentes. por até 31 dias a partir do momento da publicação.
Assinatura Por padrão, retém as mensagens não confirmadas. em armazenamento permanente por 7 dias a partir do momento da publicação. Não há limite no número de mensagens retidas.
Se os assinantes não usarem uma assinatura, ela vai expirar. O período de expiração padrão é de 31 dias.
Esquema Tamanho do esquema (campo definition): 50 KB
Revisões por esquema: 20
Solicitação de publicação 10 MB (tamanho total)
1.000 mensagens
Message Tamanho da mensagem (campo data): 10 MB
Atributos por mensagem: 100
Tamanho da chave do atributo: 256 bytes
Tamanho do valor do atributo: 1.024 bytes
Streams de StreamingPull 10 MB/s por stream aberto
Resposta de pull unário Número máximo de mensagens em uma resposta de pull: 1.000
Tamanho máximo da resposta de pull: 10 MB
Mensagens Pull/StreamingPull O serviço pode impor limites ao total de mensagens StreamingPull pendentes por conexão. Caso você se depare com esses limites, aumente a taxa em que as mensagens são confirmadas e o número de conexões utilizadas.
Confirmar e modificar solicitações 512 KB (tamanho total)
Chaves de ordenação Se as mensagens tiverem chaves de ordenação, a capacidade máxima do editor é de 1 MBps para cada chave de ordem.

Usar uma conta de serviço para cotas maiores

Se você usa a ferramenta gcloud da Google Cloud CLI com uma conta de usuário normal (ou seja, um que não seja uma conta de serviço), as operações do Pub/Sub são limitadas a uma taxa adequados para operações manuais. As taxas acima desse limite resultam no RESOURCE_EXHAUSTED. Para solucionar o problema, verifique se você está usando as credenciais da conta de serviço. Se você quiser usar credenciais da CLI gcloud para automação, ativar uma conta de serviço para suas operações do Pub/Sub.

Usar endpoints de localização para rotear solicitações

Se você tiver uma cota adicional em regiões específicas, encaminhe solicitações para dessas regiões usando endpoints locais do Pub/Sub. Quando você publica mensagens em um endpoint global, o serviço do Pub/Sub pode encaminhar o tráfego para uma região que não tem cota suficiente.

Incompatibilidades de cotas

Incompatibilidades de cotas acontecem quando as mensagens publicadas ou recebidas têm menos de 1.000 bytes. Por exemplo:

  • Se você publicar 10 mensagens de 500 bytes em solicitações separadas, o uso da cota do editor será de 10.000 bytes. Isso ocorre porque as mensagens com menos de 1.000 bytes são automaticamente arredondadas para o próximo incremento de 1.000 bytes.

  • Se você receber essas 10 mensagens em uma única resposta pull, o uso da cota do assinante poderá ser de apenas 5 KB, já que o tamanho real de cada mensagem é combinado para determinar a cota geral.

  • O inverso também é verdadeiro. O uso da cota do assinante poderá ser maior que o da cota do editor se você publicar várias mensagens em uma única solicitação de publicação ou receber as mensagens em solicitações push separadas.