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 Stream ou o Developer Guide to Streaming para ver detalhes sobre publicação e familiarize-se com particionamento, mensagens maiores e lote e limitação para ver contexto adicional.

Dica

Você também pode usar o Oracle Cloud Infrastructure Connector Hub para publicar dados para um fluxo com base em serviços de origem suportados, como o 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 da Oracle Cloud Infrastructure (OCI), consulte o Developer Guide to Streaming.

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

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

Mensagens e Partições

As mensagens são publicadas em uma única partição em um stream. Se houver mais que uma partição no stream, a decisão de qual partição publicar a mensagem dependerá de seus produtores estarem usando a API do Streaming e PutMessages ou tirando proveito da compatibilidade do Kafka no 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.
  • Armazenamento de Objetos : Uma grande carga útil é colocada no Armazenamento de Objetos e somente o ponteiro para que os dados sejam transferidos. O receptor reconhece esse tipo de carga útil do ponteiro, lê transparentemente os dados do Object Storage e fornece-os 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 ao qual foi concedido acesso de segurança 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 informando que não tem permissão ou está não autorizado, verifique com o administrador da tenancy qual tipo de acesso você tem e 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ê não estiver familiarizado com políticas, consulte Visão Geral de Políticas do Serviço IAM. Para obter mais informações sobre como gravar políticas para o serviço Streaming, consulte Detalhes do Serviço Streaming na referência da política do IAM e Acessando Recursos de Streaming entre Tenancies.