Usando o Serviço Streaming com o Apache Kafka

Use o Apache Kafka com o Oracle Cloud Infrastructure Streaming.

O Oracle Cloud Infrastructure Streaming permite que os usuários do Apache Kafka descarreguem o gerenciamento de configuração, manutenção e infraestrutura requeridos para hospedar seu próprio cluster Zookeeper e 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 reescrever seu código. Consulte Usando APIs do Kafka para obter mais informações.

O Streaming também pode usar o ecossistema Kafka Connect para estabelecer interface diretamente com origens externas como bancos de dados, armazenamentos de objetos ou qualquer serviço no Oracle Cloud. Os conectores Kafka podem criar, publicar e entregar tópicos de forma fácil e automática, aproveitando ao mesmo tempo o alto throughput e a durabilidade do serviço Streaming. Consulte Usando o Kafka Connect para obter mais informações.

Os casos de uso do serviço Streaming e do Kafka incluem:

  • Mover dados do serviço Streaming para o Autonomous Data Warehouse por meio do Conector JDBC para executar análise e visualização avançadas.

  • Use o conector do Oracle GoldenGate para Big Data Service para criar um aplicativo orientado a eventos.

  • Mover dados do serviço Streaming para o Oracle Object Storage por meio do Conector HDFS/S3 para armazenamento de longo prazo ou para executar jobs do Hadoop/Spark.

Suporte à API do Kafka

O serviço Streaming é totalmente compatível com as versões mais recentes das APIs do Kafka. O serviço Streaming suporta as seguintes APIs do Kafka:

As seguintes APIs e recursos do Kafka ainda não foram implementados no serviço Streaming:

Clientes Kafka

Embora muitos clientes Kafka estejam disponíveis, recomendamos os clientes que foram totalmente testados e certificados para trabalhar com o serviço Streaming.

O serviço Streaming suporta todas as versões de apache-kafka-java.

O serviço Streaming também suporta os seguintes clientes Kafka de forma mais eficiente:

Requisitos e Limitações

A implementação da compatibilidade do Kafka no Streaming resulta nas seguintes configurações, limitações e comportamentos.

Configuração sem Perdas

O serviço Streaming só suporta configurações Kafka sem perdas. Os dados são replicados de três maneiras. As mensagens dos produtores só iniciarão uma confirmação (ACK) do Streaming quando pelo menos duas réplicas estiverem sincronizadas.

Nomes de Stream Exclusivos

Se houver fluxos com os mesmos nomes em um compartimento, você só poderá usar o Kafka com o serviço Streaming quando excluir os fluxos duplicados, a menos que os fluxos estejam em pools de streams distintos. Dois streams com o mesmo nome só poderão existir no mesmo compartimento se os streams estiverem em pools de streams distintos.

Nomes de streams duplicados, por outro lado, se manifestam por meio de um erro de "falha de autenticação". Se não quiser excluir seus streams, entre em contato com a equipe do serviço Streaming para que possamos renomear seus streams sem perda de dados.

Reciclagem de Conexão de Balanceamento de Carga

Como o protocolo Kafka usa conexões TCP de longa duração, a camada de compatibilidade com o Kafka no serviço Streaming implementa um mecanismo de balanceamento de carga para balancear periodicamente as conexões entre nós de front-end. Esse mecanismo fecha periodicamente as conexões para impor novas conexões. A maioria dos SDKs do Kafka tratam dessas desconexões automaticamente ao fazer o consumo, mas a produção para o serviço Streaming usando a API do Kafka pode gerar erros de desconexão. É possível mitigar as desconexões adicionando novas tentativas às suas solicitações. As novas tentativas fazem parte do Kafka SDK e são ativadas automaticamente, e você pode configurar explicitamente seu comportamento.