Este documento fornece informações sobre como usar o controle de simultaneidade com mensagens publicadas em um tópico.
O controle de simultaneidade ajuda a substituir o número padrão de linhas de execução em segundo plano (E/S) usadas pela biblioteca de cliente para publicar mensagens. Isso permite que os clientes editores enviem mensagens em paralelo.
O controle de simultaneidade é um recurso disponível na biblioteca de cliente de alto nível do Pub/Sub . Também é possível implementar seu próprio controle de simultaneidade ao usar uma biblioteca de baixo nível.
O suporte para controle de simultaneidade depende da linguagem de programação da biblioteca de cliente. Para implementações de linguagem compatíveis com linhas de execução paralelas, como C++, Go e Java, as bibliotecas de cliente são a escolha padrão para o número de linhas de execução.
Esta página explica o conceito de controle de simultaneidade e como configurar o recurso para seus clientes editores. Para configurar os clientes assinantes para controle de simultaneidade, consulte Processar mais mensagens com controle de simultaneidade.
Antes de começar
Antes de configurar o fluxo de trabalho de publicação, verifique se você concluiu as seguintes tarefas:
- Saiba mais sobre tópicos e o fluxo de trabalho de publicação.
- Crie um tópico.
Funções exigidas
Para receber as permissões que
você precisa para publicar mensagens em um tópico,
peça ao administrador que conceda a você o
papel do IAM Publicador do Pub/Sub (roles/pubsub.publisher) no tópico.
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando personalizados papéis ou outros predefinidos papéis.
Você precisa de outras permissões para criar ou atualizar tópicos e assinaturas.
Configurações de controle de simultaneidade
Os valores padrão das variáveis de controle de simultaneidade e os nomes das variáveis podem ser diferentes nas bibliotecas de cliente. Por exemplo, na biblioteca de cliente Java, os métodos para configurar o controle de simultaneidade são setExecutorProvider() e setChannelProvider(). Para mais informações, consulte
a
documentação de referência da API.
setExecutorProvider() permite personalizar o provedor de executor usado para processar respostas de publicação. Por exemplo, é possível mudar o provedor de executor para um que retorne um único executor compartilhado com um número limitado de linhas de execução em vários clientes editores. Essa configuração ajuda a limitar o número de linhas de execução criadas.
setChannelProvider() permite personalizar o provedor de canal usado para abrir conexões com o Pub/Sub. Normalmente, não é necessário configurar esse valor, a menos que você queira usar o mesmo canal em vários clientes editores. A reutilização de um canal em muitos clientes pode resultar em erros
GOAWAYouENHANCE_YOUR_CALM. Se você encontrar esses erros nos registros do aplicativo ou nos registros do Cloud, crie mais canais.
Exemplos de código para controle de simultaneidade
C++
Antes de tentar esse exemplo, siga as instruções de configuração do C++ em Guia de início rápido: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub C++.
Go
O exemplo a seguir usa a versão principal da biblioteca de cliente do Go Pub/Sub (v2). Se você ainda estiver usando a biblioteca v1, consulte o guia de migração para a v2. Para conferir uma lista de exemplos de código da v1, consulte os exemplos de código obsoletos.
Antes de tentar esse exemplo, siga as instruções de configuração do Go em Guia de início rápido: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub Go.
Java
Antes de tentar essa amostra, siga as instruções de configuração do Java em Guia de início rápido: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub para Java (em inglês).
Ruby
O exemplo a seguir usa a biblioteca de cliente do Ruby Pub/Sub v3. Se você ainda estiver usando a biblioteca v2, consulte o guia de migração para a v3. Para conferir uma lista de exemplos de código do Ruby v2, consulte os exemplos de código obsoletos.
Antes de tentar esse exemplo, siga as instruções de configuração do Ruby em Guia de início rápido: como usar bibliotecas de cliente. Para mais informações, consulte a documentação de referência da API Pub/Sub Ruby.
A seguir
Para restringir os locais em que o Pub/Sub armazena dados de mensagens, consulte Como restringir locais de recursos do Pub/Sub.
Para mais informações sobre como receber mensagens, consulte Escolher um tipo de assinatura.