Kafka - Componente

Saiba mais sobre o componente e como utilizá-lo.

Erick Rubiales avatar
Escrito por Erick Rubiales
Atualizado há mais de uma semana

IMPORTANTE: Esta documentação foi descontinuada. Leia a documentação Kafka atualizada no nosso novo portal de documentação.

O Kafka produz registros para os brokers Kafka configurados nele.

Dê uma olhada nos parâmetros de configuração do componente:

  • Kafka Authentication Account (BASIC): se o servidor Kafka precisar de autenticação, será necessário criar uma conta tipo BASIC para esse componente. Suportamos também autenticação via Kerberos.

  • Truststore: caso seja necessário informar uma truststore para realizar o SSL Handshake utilizando certificados privados, deve-se criar uma conta do tipo CERTIFICATE-CHAIN e informar os certificados concatenados. No campo “password” é opcional inserir a senha a ser cadastrada na criação da truststore.

  • Keystore: caso seja necessário informar uma keystore para realizar a autenticação SSL mútua, deve-se uma conta do tipo CERTIFICATE-CHAIN, informar a cadeia completa com os certificados concatenados e a chave privada a ser utilizada para a autenticação SSL mútua. Caso exista uma chave privada, é necessário informá-la no campo “password”.

  • Brokers: brokers do servidor (HOST: PORT) usados para o envio de registros. Para informar múltiplos HOSTS, você pode separá-los por vírgula. Exemplo: HOST1:PORT1,HOST2:PORT2,...,HOSTn:PORTn

  • Security Protocol: forma que a conexão é estabelecida. Você pode ou não utilizar um canal de segurança (SSL) e de autenticação (SASL). A utilização de ambos (SASL_SSL) também é possível.


IMPORTANTE: devido a necessidade de uma grande alocação de memória, não suportamos os seguintes tipos de Security Protocol: PLAINTEXT e SASL_PLAINTEXT. Para entender melhor, clique aqui.


  • Schema Registry URL: caso ao menos uma das opções Headers By Avro Schema, Payload As Avro e Partition Key As Avro for ativada, o campo será exibido para que seja informada a URL do Schema Registry.

  • Schema Registry Account: account para autenticação com o Schema Registry.   

  • Schema Registry Truststore: caso seja necessário informar uma truststore para realizar o SSL Handshake utilizando certificados privados, deve-se criar uma conta do tipo CERTIFICATE-CHAIN e informar os certificados concatenados. No campo “password” é opcional inserir a senha a ser cadastrada na criação da truststore.

  • Schema Registry Keystore: caso seja necessário informar uma keystore para realizar a autenticação SSL mútua, deve-se criar uma conta do tipo CERTIFICATE-CHAIN, informar a cadeia completa com os certificados concatenados e a chave privada a ser utilizada para a autenticação SSL mútua. Caso exista uma chave privada, é necessário informá-la no campo “password”.

  • Headers: conjunto de entradas "chave": "valor", com headers a serem enviados na mensagem (campo opcional). Caso a opção Headers By Avro Schema for ativada, o campo tem seu formato alterado para receber um JSON contendo os valores dos Headers.

  • Binary Headers: se esta opção estiver ativada, os valores dos headers são considerados binários e interpretados como uma sequência com representação base64; caso contrário, os valores dos headers são interpretados como texto.

  • Headers By Avro Schema: se a opção estiver ativa, o componente validará os Headers com base em um schema Avro antes de realizar o envio dos Headers. (os Headers são enviados como String).

  • Headers Schema: caso a opção Headers By Avro Schema for ativada, o campo será exibido para que seja informado o Schema dos Headers a serem validados.

  • Headers Charset: nome do código de caracteres para codificação de valores de headers (padrão UTF-8).

  • Payload: payload a ser despachado.

  • Payload As Avro: se a opção estiver ativada, o componente enviará o payload no formato Avro.

  • Payload Schema: se a opção Payload As Avro estiver habilitada, o campo será mostrado para informar o Payload Schema a ser validado.

  • Request Timeout: configuração que controla o tempo máximo (em milissegundos) que o cliente aguarda pela resposta de uma requisição. Se a resposta não for recebida antes do tempo máximo passar, a requisição é automaticamente reenviada. Caso contrário, haverá um erro se as novas tentativas forem esgotadas.

  • Retries: Se um valor diferente de 0 (zero) for estabelecido, qualquer registro tenha falha de despacho será reenviado. Esses registros podem ser reenviados com um provável erro transitório.

  • Metadata Timeout: tempo máximo para o despacho de registro Kafka.

  • Key Strategy: caso a opção Partition Key As Avro for ativada, o campo será exibido para configuração da estratégia de subject a ser utilizada para construir o subject name para as keys das mensagens.

  • Value Strategy: caso a opção Payload as Avro for ativada, o campo será exibido para configuração da estratégia de subject a ser utilizada para construir o subject name para os values das mensagens.

  • Fail On Error: Se a opção estiver ativada, a execução do pipeline com erro será interrompida; caso contrário, a execução do pipeline prossegue, mas o resultado mostrará um valor falso para a propriedade "sucesso".

  • Kerberos Service Name: valor definido no sasl.kerberos.service.name configurado no Kafka broker server side.

  • Partition Number: especificamos os números da partição para onde o Kafka Trigger enviará as mensagens. Se a propriedade não estiver configurada, o servidor Kafka será responsável por decidir para qual tópico a mensagem será enviada.

  • Partition Key: uma chave de partição pode ser especificada para indicar a partição para onde a mensagem será enviada. Se o campo não estiver preenchido, um "partitioner" baseado em "hashing" é usado para determinar o id de partição dado a cada chave.

  • Partition Key As Avro: se a opção estiver ativada, o componente fará o envio do partition key no formato Avro.

  • Partition Key Schema: caso a opção Partition Key As Avro for ativada, o campo será exibido para que seja informado o Schema da partition key a ser validada.

  • Producer Client Name: identificador da origem das requisições (opcional)

  • Acks: configuração para confirmação do recebimento da mensagem pelo broker Kafka (valores: 0, 1 ou ALL)


IMPORTANTE: As mensagens trafegadas no formato Avro deverão ser do tamanho máximo suportado por Pipelines SMALL, MEDIUM ou LARGE. O componente não suporta cenários extremos de leitura de dezenas de mega/giga/tera/peta bytes.

Atualmente, o suporte ao formato Avro está em fase Beta.


Exemplo de resposta de requisição ao Kafka

{
  "message": "{}",
  "offset": 201,
  "timestamp": 1585168528773,
  "serializedKeySize": -1,
  "serializedValueSize": 2,
  "topic": "Welcome-Kafka",
  "partition": 1,
  "success": verdadeiro
}

     

  • message: mensagem enviada

  • offset: offset do registro no tópico/partição

  • timestamp: horário/data do registro no tópico/partição

  • serializedKeySize: tamanho da chave serializada, com valor descomprimido em bytes. Se o valor é nulo, o tamanho devolvido é -1

  • serializedValueSize: tamanho do valor serializado, com valor descomprimido em bytes. Se o valor é nulo, o tamanho devolvido é -1

  • topic: nome do tópico

  • partition: partição para onde o registro foi enviado

  • success: se "verdadeiro", o envio foi realizado com sucesso

       

Fluxo de Mensagens

Entrada

O componente aceita qualquer mensagem de entrada e pode fazer uso dela através de Double Braces.
​       

Saída

O componente não altera nenhuma informação da mensagem de entrada. Portanto, ela é retornada para o componente seguinte ou é utilizada como resposta final se este componente for o último passo do pipeline.
​            

Kafka em Ação

Autenticação utilizando SSL ou SASL

Isso permite a autenticação dos seus produtores e clientes ao cluster do Kafka (verificação de identidade). Essa também é uma forma segura de permitir que os seus clientes confirmem a identidade.

Autenticação usando Kerberos

Para utilizar a autenticação via Kerberos no Kafka é necessário ter cadastrado o arquivo de configuração “krb5.conf” no parâmetro de Realm. Caso não tenha feito isso, acione o nosso suporte via chat. Após concluir esse passo, basta configurar corretamente uma conta do tipo Kerberos e utilizá-la no componente.

Respondeu à sua pergunta?