Publicando Mensagens

Emitir ou publicar mensagens em um stream no serviço Streaming.

Depois que um stream é criado e ativado, você pode publicar mensagens. Consulte Publicando uma Mensagem de Teste em um Fluxo ou o Developer Guide to Streaming para obter detalhes sobre a publicação e familiarizar-se com o particionamento, mensagens grandes e criação de batches e limitação para obter contexto adicional.

Dica

Você também pode usar o Oracle Cloud Infrastructure Connector Hub para publicar dados em um stream de serviços de origem suportados, como Logging.

Embora possa usar a Console para publicar mensagens de teste em um stream, você deve usar a CLI, a API ou um SDK para preencher seu stream.

Para publicar mensagens usando os SDKs do OCI (Oracle Cloud Infrastructure), consulte o Developer Guide to Streaming.

Se você aproveitar a compatibilidade com Kafka do Streaming, consulte Desenvolvendo com Kafka e Streaming.

Você também pode usar o Oracle Cloud Infrastructure Connector Hub para publicar dados em um stream de serviços de origem suportados, como Logging.

Mensagens e Partições

As mensagens são publicadas em uma única partição em um stream. Se houver mais de uma partição no stream, a decisão de em qual delas a mensagem será publicada depende se os seus produtores estão usando a API do serviço Streaming e PutMessages, ou se estão aproveitando a compatibilidade com o Kafka no serviço Streaming e usando a API do Kafka.

Se os seus produtores estiverem usando a API do Streaming, o particionamento será tratado no servidor pelo serviço Streaming. Se os seus produtores estiverem usando a API do Kafka, o particionamento será tratado no cliente pelo Kafka.

Particionamento no Servidor

A partição na qual uma mensagem é publicada é calculada usando a chave da mensagem. Se a chave for nula, a partição será calculada usando um valor aleatório de 16 bytes. Não é possível especificar qual partição uma chave usa.

A transmissão de uma chave nula colocará a mensagem em uma partição aleatória. Se um usuário publicar a mesma mensagem duas vezes, ela poderá ir para partições diferentes, porque uma chave completamente nova será gerada. Não espere que todas as mensagens com uma chave nula sejam enviadas para a mesma partição. Para garantir que as mensagens com o mesmo valor vão para a mesma partição, use a mesma chave para essas mensagens.

Para obter mais informações, consulte Publicando em Partições.

Tratamento de Mensagens Grandes

Se suas mensagens forem maiores que o limite de 1 MB, você poderá usar o chunking ou enviar a mensagem usando o Oracle Cloud Infrastructure Object Storage.

  • Chunking: Você pode dividir payloads grandes em vários chunks menores que o serviço Streaming pode aceitar. Os chunks são armazenados no serviço da mesma forma que as mensagens comuns (não fragmentadas) são armazenadas. A única diferença é que o consumidor deve manter os chunks e combiná-los na mensagem quando todos os chunks tiverem sido coletados. Os chunks na partição podem ser interligados com mensagens comuns.
  • Object Storage: Um payload grande é colocado no serviço Object Storage e somente o ponteiro para esses dados é transferido. O receptor reconhece esse tipo de payload do ponteiro, lê de forma transparente os dados do serviço Object Storage e os fornece ao usuário final.

Criação de Batches e Limitação

Recomendamos enviar mensagens em batches para evitar limitação e permitir um melhor throughput. O tamanho de um batch de mensagens não deve exceder 1 MB. Se esse limite for excedido, a mensagem não será validada.

O mecanismo de limitação para PutMessages é ativado quando as taxas de gravação de dados excedem 1 MB por segundo por partição. Não há limitação no número de gravações em um stream, desde que você esteja abaixo do throughput de 1 MB por segundo por partição.

Consulte Limites de Recursos do Streaming para obter mais informações.

Política do Serviço IAM Obrigatória

Para usar o Oracle Cloud Infrastructure, um administrador deve ser membro de um grupo com acesso de segurança concedido em uma política por um administrador da tenancy. Esse acesso será necessário se você estiver usando a Console ou a API REST com um SDK, uma CLI ou outra ferramenta. Se você receber uma mensagem de que não tem permissão ou que não está autorizado, verifique com o administrador da tenancy qual tipo de acesso você tem e em qual compartimento seu acesso funciona.

Para administradores: A política em Permitir que administradores do streaming gerenciem recursos do streaming permite que o grupo especificado faça tudo com o streaming e os recursos relacionados ao serviço Streaming.

Se você for iniciante em políticas, consulte Visão Geral de Políticas do Serviço IAM. Para obter mais informações sobre a gravação de políticas para o serviço Streaming, consulte Detalhes do Serviço Streaming na referência de políticas do serviço IAM e Acessando Recursos do Streaming entre Tenancies.