Perguntas frequentes

Perguntas gerais

Por que o Google está lançando um novo serviço de publicação/assinatura?

Embora o middleware de mensagens seja um mercado bem desenvolvido, não há um produto ou protocolo dominante, especialmente em ambientes de nuvem. Acreditamos que o Cloud Pub/Sub possa oferecer uma combinação única de recursos para os clientes do Google Cloud Platform. Além disso, o Cloud Pub/Sub marca uma nova geração de iniciativas do Google para usar a mesma tecnologia interna e externamente. O Google também usa a Cloud Pub/Sub API nos seus próprios produtos. Entretanto, nossa meta é dar suporte a padrões abertos, e estamos ativamente explorando maneiras de tornar o Cloud Pub/Sub fácil de usar para que os desenvolvedores se familiarizem com os protocolos e as APIs relacionados.

Isso está relacionado ao Firebase Cloud Messaging (FCM) ou ao Google Cloud Messaging (GCM)?

Sim e não. Esses sistemas são usados para entregar mensagens, mas o FCM é usado para entregar mensagens de e para dispositivos de usuários finais, enquanto o Cloud Pub/Sub é usado na comunicação entre servidores. O FCM foi projetado para escalonamento com um grande número de endpoints de entrega, mas tem baixa capacidade (mensagens por segundo por canal). O Cloud Pub/Sub não tem limites de capacidade e tem uma API mais genérica.

Ele está relacionado ao PubSubHubbub?

Não. Embora os Googlers estivessem envolvidos na criação do PubSubHubbub, os pontos fortes dele são RSS e distribuição de conteúdo, que geralmente não são casos em que o Cloud Pub/Sub possa ser aplicado. Além do nome, eles têm pouco em comum.

Posso usar o Cloud Pub/Sub para comunicação entre diferentes módulos do App Engine?

Sim. Você pode usar o Cloud Pub/Sub para enviar e receber mensagens entre diferentes módulos em um aplicativo do App Engine, e mesmo entre diferentes aplicativos no mesmo projeto, sem nenhuma configuração ACL especial.

Posso usar o Cloud Pub/Sub com plataformas diferentes do App Engine?

Sim. Você pode usar o Cloud Pub/Sub com aplicativos hospedados no Google Compute Engine ou até em plataformas que não são do Google. Tudo o que você precisa é de um projeto do console do Google Cloud Platform para começar.

Como posso conectar os aplicativos do App Engine e do Compute Engine?

Use a entrega por push para mensagens de baixa latência do Compute Engine para o App Engine. Use a entrega por pull para enviar dados do App Engine para um grande número de assinantes do Compute Engine.

Como posso monitorar as métricas do Cloud Pub/Sub?

Consulte este artigo.

O Cloud Pub/Sub é integrado ao Cloud KMS?

Não. Por projeto, o Cloud Pub/Sub é um sistema de entrega de mensagens com uma fila temporária para armazenamento. Embora não haja integração entre o Cloud Pub/Sub e o Cloud Key Management Service, um cliente pode implementar a criptografia das mensagens por conta própria, usando o Cloud KMS ou outro serviço de gerenciamento de chaves. Um cliente também pode controlar o tempo de vida da mensagem.

Perguntas técnicas

As mensagens são entregues na ordem?

O Cloud Pub/Sub não garante a entrega na ordem nem "primeira a chegar, primeira a sair" (FIFO, na sigla em inglês). As mensagens são entregues o mais rápido possível, com preferência para as mais antigas, mas não há garantia disso. O ordenamento estrito está em desacordo com as garantias de disponibilidade e escalabilidade do Cloud Pub/Sub. Consulte Ordenamento de mensagens para ver a discussão detalhada sobre esse tópico.

Como as mensagens enviadas para pontos de extremidade de push são protegidas?

As mensagens enviadas para pontos de extremidade de push são criptografadas por HTTPS. Seu ponto de extremidade de push precisa ser configurado com certificados SSL.

Se você quiser verificar também se as mensagens são provenientes do Cloud Pub/Sub, configure seu endpoint para aceitar apenas as mensagens acompanhadas por um argumento de token secreto, como https://myapp.mydomain.com/myhandler?token=application-secret, por exemplo.

O que acontece se eu publicar em um tópico sem assinaturas?

A operação de publicação é bem-sucedida, mas as mensagens são excluídas porque não há assinaturas interessadas nelas.

Por que estou recebendo erros de cota se meu uso está bem abaixo dos limites?

As cotas são aplicadas no projeto associado ao cliente autenticado, conforme explicado em Cotas e limites. Verifique se você está usando uma conta de serviço ou uma API_KEY associada a um projeto com cotas suficientes. A linha de comando gcloud, em particular, usa um projeto compartilhado com cotas bem limitadas.

Por que há tantas mensagens duplicadas?

O Cloud Pub/Sub garante a entrega da mensagem pelo menos uma vez, o que significa que mensagens duplicadas podem ser enviadas de vez em quando. No entanto, uma alta taxa de mensagens duplicadas pode indicar que o cliente não está confirmando as mensagens no ack_deadline_seconds configurado, o que faz com que o Cloud Pub/Sub fique tentando entregar a mensagem novamente. Isso pode ser observado nas métricas de monitoramento pubsub.googleapis.com/subscription/pull_ack_message_operation_count para assinaturas de pull e pubsub.googleapis.com/subscription/push_request_count para assinaturas de push. Procure por valores expired ou webhook_timeout elevados em /response_code. Isso tem maior probabilidade de acontecer quando há muitas mensagens pequenas, já que o Cloud Pub/Sub pode enviar mensagens em lote internamente e um lote parcialmente confirmado será totalmente reenviado.

Outra possibilidade é que o assinante não esteja confirmando algumas mensagens devido a falha no caminho do código que realiza o processamento delas, o que impede que a chamada Acknowledge seja feita. Ou talvez o ponto de extremidade de push nunca responda ou responda com erro.

Como detectar mensagens duplicadas?

O Cloud Pub/Sub atribui um "message_id" exclusivo a cada mensagem, que pode ser usado para detectar mensagens duplicadas recebidas pelo assinante. No entanto, isso não permitirá detectar duplicatas resultantes de várias solicitações de publicação para os mesmos dados. Essa detecção exige que um identificador de mensagem exclusivo seja fornecido pelo editor. Consulte E/S do Cloud Pub/Sub para ver uma discussão mais aprofundada.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Cloud Pub/Sub