Visão Geral do Serviço Streaming

O serviço Oracle Cloud Infrastructure Streaming fornece uma solução totalmente gerenciada, escalável e durável para ingestão e consumo de streams de dados de alto volume em tempo real. Use o serviço Streaming para qualquer caso de uso em que os dados sejam produzidos e processados de modo contínuo e sequencial em um modelo de mensagens do padrão publicar-assinar.

Você pode usar o serviço Streaming para:

Envio de Mensagens
Use o Streaming para separar os componentes de sistemas grandes. Os produtores e consumidores podem usar o Streaming como um barramento de mensagens assíncrono e agir de forma independente e no seu próprio ritmo.
Ingestão de métrica e log
Use o Streaming como uma alternativa para métodos tradicionais de extração de arquivos, para ajudar a disponibilizar dados operacionais críticos de forma mais rápida com o fim de indexação, análise e visualização.
Ingestão de dados de atividades na Web ou em dispositivos móveis
Use o serviço Streaming para capturar atividade de sites ou aplicativos móveis, como visualizações de páginas, pesquisas ou outras ações do usuário. Você pode usar essas informações para monitoramento e análise em tempo real e em sistemas de data warehousing para processamento e geração de relatórios off-line.
Infraestrutura e processamento de eventos de aplicativos
Use o Streaming como um ponto de entrada unificado para que os componentes de nuvem reportem seus eventos de ciclo de vida com fins de auditoria, contabilidade e atividades relacionadas.

Recursos do Streaming

O Streaming oferece os seguintes recursos:

Totalmente gerenciado
O serviço Streaming é totalmente gerenciado, desde a infraestrutura subjacente até seu provisionamento, implantação, manutenção, aplicação de patches de segurança e replicação. A integração com o serviço Monitoring e as métricas padrão facilitam as operações.

A Oracle gerencia partições de stream e grupos de consumidores podem lidar com suas referências de mensagem.

Durabilidade e Disponibilidade
As mensagens publicadas no serviço Streaming são replicadas de forma síncrona em três domínios de disponibilidade, quando disponíveis. Em regiões com um único domínio de disponibilidade, os dados são replicados em vários domínios de falha. Isso garante que mesmo a falha de um domínio de disponibilidade ou de um domínio de falha não resulte em perda de dados. O resultado são dados altamente duráveis.

O Oracle Cloud Infrastructure fornece um contrato de nível de serviço (SLA) para o Streaming. Consulte a página do Contrato de Nível de Serviço do Oracle Cloud Infrastructure para obter detalhes.

Segurança

Os dados do Streaming são criptografados no armazenamento e em trânsito, garantindo a integridade das mensagens. Você pode permitir que a Oracle gerencie a criptografia ou pode usar o serviço Oracle Cloud Infrastructure Vault para armazenar e gerenciar com segurança suas próprias chaves de criptografia caso precise atender a padrões específicos de conformidade ou segurança.

A integração com o Oracle Cloud Infrastructure Identity and Access Management (IAM) permite que você controle quem e quais serviços podem acessar quais chaves e o que eles podem fazer com esses recursos.

Os pontos finais privados restringem o acesso a uma rede virtual na nuvem (VCN) especificada na sua tenancy para que seus streams não possam ser acessados pela internet.

Para obter mais informações, consulte Melhores Práticas de Segurança para Streaming.

Processamento de stream
A integração do Streaming com o Oracle Cloud Infrastructure Connector Hub significa que você pode designar um fluxo como uma origem de dados, usar o Oracle Cloud Infrastructure Functions para transformar as mensagens do fluxo e gerar as mensagens transformadas no Object Storage ou em qualquer outro destino do Connector Hub suportado, mantendo as garantias de ordem do Streaming.
Compatibilidade com o Kafka
O serviço Streaming permite desativar a configuração, a manutenção e o gerenciamento da infraestrutura necessária para hospedar seu próprio cluster do Apache Kafka.

O serviço Streaming é compatível com a maioria das APIs do Kafka, permitindo que você use aplicativos criados para o Kafka para enviar mensagens e receber mensagens do serviço Streaming sem precisar regravar seu código. Consulte Usando APIs Kafka para obter mais informações.

O serviço Streaming também aproveita o ecossistema Kafka Connect para estabelecer interface diretamente com produtos próprios e de terceiros, usando conectores de origem e dissipador Kafka prontos para uso. Consulte Usando o Kafka Connect para obter mais informações.

Como o Serviço Streaming Funciona

Veja como o serviço Streaming funciona:

Um produtor publica mensagens em um stream, que é um log somente de anexo. Essas mensagens são distribuídas entre partições gerenciadas pela Oracle para fins de escalabilidade.

As partições permitem que você distribua um stream dividindo mensagens entre vários nós (ou brokers). Cada partição pode ser colocada em uma máquina separada, permitindo que vários consumidores leiam um stream em paralelo.

Um consumidor lê mensagens de uma ou mais partições. Os consumidores podem ler qualquer partição, independentemente de onde a partição está hospedada. Cada mensagem de um stream é marcada com um valor de referência, de forma que um consumidor possa selecionar onde parou se for interrompido. As mensagens de uma partição têm a garantia de serem entregues na mesma ordem em que foram produzidas.

Os consumidores podem ler mensagens explicitamente fornecendo a partição e a referência, ou como membro de um grupo de consumidores, que coordena o consumo de um stream inteiro pelos membros do grupo.
Observação

Assista a uma introdução em vídeo do serviço Streaming.

Para obter mais informações, consulte:

Conceitos do Serviço Streaming

Os conceitos a seguir são essenciais para entender e trabalhar com o serviço Streaming.

stream
Um aol (append-only log) de mensagens particionado.
pool de streams

Um agrupamento que você pode usar para organizar e gerenciar streams, incluindo qualquer Kafka compartilhado ou definições de segurança.

partição
Uma seção de um stream. As partições permitem que você distribua um stream dividindo mensagens entre vários nós. Ela também permite que vários consumidores leiam um stream em paralelo.
cursor

Um ponteiro para um local em um stream. Esse local pode ser um ponteiro para uma referência ou horário específico em uma partição ou para o local atual de um grupo.

mensagem
Uma mensagem codificada em Base64 que é publicada em um stream. O serviço Streaming é independente de esquema e aceita qualquer formato de mensagem, incluindo XML, JSON, CSV e até mesmo formatos compactados, como gzip. Os produtores e consumidores devem concordar com o formato da mensagem.
produtor
Uma entidade que publica mensagens em um stream.
consumidor
Uma entidade que lê mensagens de um ou mais streams.
grupo de consumidores
Um conjunto de instâncias que se coordenam para consumir mensagens de todas as partições em um stream. A qualquer momento, as mensagens de uma partição específica só podem ser consumidas por um único consumidor no grupo.
instância
Um membro de um grupo de consumidores. As instâncias são definidas quando um cursor de grupo é criado. A associação ao grupo é mantida por meio de interação; a falta de interação resulta em timeout, removendo a instância do grupo de consumidores.
chave
Um identificador usado para agrupar mensagens relacionadas.
referência
O local de uma mensagem dentro de uma partição. Cada mensagem dentro da partição é identificada por sua referência. Os consumidores podem ler mensagens começando de qualquer referência escolhida. Você pode usar a referência para reiniciar a leitura de um stream, se interrompido.

Benefícios dos Streams

Os streams têm várias vantagens em relação às filas de mensagens tradicionais, incluindo:

Persistência de mensagem configurável
Você controla por quanto tempo seus dados são mantidos. As mensagens em um stream são imutáveis e estão disponíveis por todo o tempo de retenção configurado do stream.
Reprodução
Como as mensagens de um stream não são removidas imediatamente quando processadas pelos consumidores, você pode repetir toda e qualquer mensagem no stream a qualquer momento, dentro do limite de retenção configurado.
Garantias de mensagens
É garantido que cada mensagem seja entregue pelo menos uma vez. Em alguns casos, como a falha do consumidor em fazer commit de mensagens antes de entrar no off-line, as mensagens podem ser entregues várias vezes.
Garantias de ordem
As mensagens de um stream, por partição, são sempre entregues na mesma ordem em que foram produzidas.
Cursores do cliente
Os aplicativos clientes controlam e rastreiam quais mensagens são lidas e podem mover o cursor conforme a necessidade, para obter máxima flexibilidade.
Dimensionamento horizontal
As partições oferecem uma oportunidade de aumentar o throughput para atender às necessidades de vários consumidores, resultando em maior flexibilidade.
Grupos de consumidores
Os grupos de consumidores lidam com toda a coordenação necessária para entregar mensagens a vários consumidores de forma equilibrada. Como esse gerenciamento é tratado por um grupo de consumidores em nome de todos os membros, você pode desfrutar de uma sobrecarga reduzida e facilidade operacional.