Nesta página, explicamos como publicar mensagens em tópicos do Lite. É possível publicar mensagens com a biblioteca de cliente do Pub/Sub Lite para Java.
Depois de publicar mensagens e criar uma assinatura do Lite em um tópico, é possível receber mensagens da assinatura do Lite.
Formato de mensagem
Uma mensagem consiste em campos com os dados e os metadados da mensagem. Especifique qualquer um dos itens a seguir na mensagem:
- Dados da mensagem
- Uma chave de ordenação
- Um carimbo de data/hora do evento
- Atributos com metadados adicionais
A biblioteca de cliente atribui a mensagem automaticamente a uma partição, e o serviço Pub/Sub Lite adiciona os campos a seguir à mensagem:
- Um ID de mensagem exclusivo na partição
- Um carimbo de data/hora para quando o serviço Pub/Sub Lite armazena a mensagem na partição
Como publicar mensagens
Para publicar mensagens, solicite uma conexão de streaming para o tópico do Lite e, em seguida, envie mensagens pela conexão de streaming.
O exemplo a seguir mostra como publicar mensagens em um tópico do Lite:
Java
Antes de executar este exemplo, siga as instruções de configuração do Java nas bibliotecas de cliente do Pub/Sub Lite.
Python
Antes de executar este exemplo, siga as instruções de configuração do Java nas bibliotecas de cliente do Pub/Sub Lite.
A biblioteca de cliente envia mensagens de forma assíncrona e lida com erros. Se ocorrer um erro, a biblioteca de cliente enviará a mensagem novamente.
- O serviço do Pub/Sub Lite fecha o stream.
- A biblioteca de cliente armazena em buffer as mensagens e restabelece uma conexão com o tópico do Lite.
- A biblioteca cliente envia as mensagens em ordem.
Depois de publicar uma mensagem, o serviço Pub/Sub Lite armazena a mensagem em uma partição e retorna os ID da mensagem para o editor.
Como usar chaves de ordenação
Se as mensagens tiverem a mesma chave de ordenação, a biblioteca de cliente atribuirá as mensagens à mesma partição. A chave de ordenação precisa ser uma string de, no máximo, 1.024 bytes.
A chave de ordenação está no
campo key
de uma mensagem.
É possível definir chaves de ordenação com a biblioteca de cliente.
Java
Antes de executar este exemplo, siga as instruções de configuração do Java nas bibliotecas de cliente do Pub/Sub Lite.
Python
Antes de executar este exemplo, siga as instruções de configuração do Java nas bibliotecas de cliente do Pub/Sub Lite.
É possível enviar várias mensagens para a mesma partição usando as chaves de ordem. Assim, os assinantes recebem as mensagens na ordem. A biblioteca de cliente pode atribuir várias chaves de ordenação à mesma partição.
Como usar atributos
Atributos da mensagem são pares de chave-valor com metadados sobre a mensagem. Os atributos podem ser strings de texto ou de byte.
Os atributos estão no
campo attributes
de uma mensagem. Você pode definir atributos com a biblioteca de cliente.
Java
Antes de executar este exemplo, siga as instruções de configuração do Java nas bibliotecas de cliente do Pub/Sub Lite.
Python
Antes de executar este exemplo, siga as instruções de configuração do Java nas bibliotecas de cliente do Pub/Sub Lite.
Os atributos podem indicar como processar uma mensagem. Os assinantes podem analisar o
campo attributes
de uma mensagem e processar a mensagem de acordo com os
atributos dela.
Mensagens em lote
A biblioteca de cliente publica mensagens em lotes. Os lotes maiores usam menos recursos de computação, mas aumentam a latência. É possível alterar o tamanho do lote com configurações de lote.
A tabela a seguir lista as configurações de lote que podem ser definidas:
Configuração | Descrição | Padrão |
---|---|---|
Tamanho da solicitação | O tamanho máximo, em bytes, do lote. | 3.5 MiB |
número de mensagens | O número máximo de mensagens em um lote. | 1.000 mensagens |
Atraso na publicação | O tempo, em milissegundos, entre adicionar a mensagem a um lote e enviá-lo ao tópico do Lite. | 50 milissegundos |
É possível definir configurações em lote com a biblioteca de cliente.
Java
Antes de executar este exemplo, siga as instruções de configuração do Java nas bibliotecas de cliente do Pub/Sub Lite.
Python
Antes de executar este exemplo, siga as instruções de configuração do Java nas bibliotecas de cliente do Pub/Sub Lite.
Quando um aplicativo do editor é iniciado, a biblioteca de cliente cria um lote para cada partição em um tópico do Lite. Por exemplo, se um tópico do Lite tem duas partições, os editores criam dois lotes e enviam cada lote para uma partição.
Depois de publicar uma mensagem, a biblioteca cliente a armazena em buffer até que o lote exceda o tamanho máximo da solicitação, o número máximo de mensagens ou o atraso de publicação.
Como ordenar mensagens
Os tópicos do Lite classificam as mensagens em cada partição ao publicar as mensagens. Para atribuir mensagens à mesma partição, use uma chave de ordenação.
O Pub/Sub Lite entrega as mensagens de uma partição em ordem, e os assinantes podem processá-las na ordem. Para mais detalhes, consulte Como receber mensagens.