Kafka

Descubra mais sobre o componente Kafka e saiba como utilizá-lo na Digibee Integration Platform.

O Kafka produz registros para os brokers Kafka configurados nele.

Parâmetros

Dê uma olhada nas opções de configuração do componente. Parâmetros suportados por expressões Double Braces estão marcados com (DB).

Parâmetro
Descrição
Valor padrão
Tipo de dado

Kafka Authentication Account

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.

N/A

String

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. É opcional inserir a senha a ser cadastrada na criação da truststore, no campo password.

N/A

String

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.

N/A

String

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

N/A

String

Security Protocol

A forma que a conexão é estabelecida. É opcional utilizar um canal de segurança (SSL) e de autenticação (SASL). A utilização de ambos (SASL_SSL) também é possível.

SSL

String

Topic Name

Nome do tópico do Kafka.

{{ DEFAULT(message.topic, "new-topic") }}

String

Schema Registry URL

Se pelo menos uma das opções Headers By Avro, Payload As Avro e Partition Key As Avro estiver ativada, o campo será mostrado para configurar o Schema Registry's URL.

N/A

String

Schema Registry Account

Conta para autenticar com o Schema Registry.

N/A

String

Schema Registry Truststore

Se for necessário informar um truststore para fazer o SSL Handshake utilizando certificados privados, deve-se criar uma conta do tipo Certificate Chain e informar os certificados concatenados. É opcional informar a senha a ser cadastrada na criação do truststore, no campo password.

N/A

N/A

Schema Registry Keystore

Se for necessário informar um keystore para fazer a autenticação mútua SSL, 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 mútua SSL. Se houver chave privada, é necessário informá-la no campo password.

N/A

N/A

Headers

Conjunto de entradas chave-valor (key-value), contendo cabeçalhos a serem enviados na mensagem (campo opcional).

N/A

Key-value

Binary Headers

Se a opção estiver ativada, os valores dos cabeçalhos são considerados binários e são interpretados como uma string com a representação base64; do contrário, os valores dos cabeçalhos são interpretados como texto.

False

Booleano

Headers By Avro Schema

Se a opção estiver ativada, o componente validará os cabeçalhos com base em um esquema Avro antes de enviar os cabeçalhos.

False

Booleano

Headers Schema

Se a opção Headers By Avro Schema estiver ativada, será exibido o campo para definir os Headers Schemas a serem validados.

N/A

N/A

Headers Charset

Nome do código de caracteres para a codificação dos valores dos cabeçalhos (padrão UTF-8).

UTF-8

String

Payload

Payload que será despachado.

{{ message.$ }}

String

Payload As Avro

Se a opção estiver ativada, o componente enviará o payload no formato Avro.

False

Booleano

Payload Schema

Este campo fica disponível somente se a opção Payload As Avro estiver ativada e informa o Payload Schema a ser validado.

N/A

N/A

Request Timeout

Configuração que controla o tempo máximo (em milissegundos) que o cliente aguarda pela resposta de uma solicitação. Se a resposta não for recebida antes que o tempo limite se esgote, a solicitação é reenviada automaticamente. Do contrário, haverá uma falha se as tentativas se esgotarem.

60000

Inteiro

Retries

Se for estabelecido um valor diferente de 0 (zero), qualquer registro cujo envio falhar será reenviado. Esses registros podem ser reenviados com um provável erro transitório.

N/A

Inteiro

Metadata Timeout

Tempo máximo para o envio do registro ao Kafka.

5000

Inteiro

Key Strategy

Caso a opção Partition Key As Avro esteja 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.

N/A

String

Value Strategy

Caso a opção Payload as Avro esteja 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.

N/A

String

Fail On Error

Se a opção estiver ativada, a execução do pipeline com erro será interrompida; do contrário, a execução do pipeline continua, mas o resultado vai mostrar um valor falso para a propriedade "success".

False

Booleano

Advanced Settings

Se a opção estiver ativada, você pode acessar as seguintes configurações:

False

Booleano

Kerberos Service Name

Valor definido na propriedade sasl.kerberos.service.name configurado no lado server do broker Kafka.

N/A

String

Partition Number

Especifica os números da partição para os quais o Kafka Trigger enviará mensagens. Caso essa propriedade não seja configurada, o servidor do Kafka ficará responsável por decidir para qual partição do tópico a mensagem será enviada.

N/A

Inteiro

Partition Key

Uma chave de partição pode ser especificada para indicar a partição de destino da mensagem. Caso esse campo não seja preenchido, um particionador baseado em hashing é utilizado para determinar a id de partição dada a chave.

N/A

String

Partition Key As Avro

Se a opção estiver ativada, o componente fará o envio da chave de partição no formato Avro.

N/A

Booleano

Partition Key Schema

Caso a opção Partition Key As Avro esteja ativada, o campo será exibido para que seja informado o Schema da chave de partição a ser validada.

N/A

String

Producer Client Name

Identificador de origem dos pedidos (opcional).

N/A

String

ACKS

Configuração para reconhecer o recebimento da mensagem pelo broker Kafka (valores: 0, 1 ou ALL).

1

Inteiro

Use Dynamic Account

Quando a opção estiver ativada, o componente irá usar a conta dinamicamente. Defina o nome da conta para permitir um uso flexível. Quando estiver desativada, a conta será usada estaticamente.

False

Booleano

Account Name

Nome da conta Basic que é gerada dinamicamente através do componente Store Account.

N/A

String

Scoped

Quando a opção estiver ativada, a conta armazenada é isolada para outro sub-processo. Nesse caso, os sub-processos verão sua própria versão dos dados da conta armazenada.

N/A

Booleano

Truststore Account Name

Nome da conta truststore que é gerada dinamicamente através do componente Store Account. Contas suportadas: Certificate Chain.

N/A

String

Keystore Account Name

Nome da conta keystore que é gerada dinamicamente através do componente Store Account. Contas suportadas: Certificate Chain.

N/A

String

Account Name for Registry

Nome da conta para registro que é gerada dinamicamente através do componente Store Account. Contas suportadas: Basic ou Oauth Bearer Token.

N/A

String

Truststore Account Name for Registry

Nome da conta truststore para registro que é gerada dinamicamente através do componente Store Account. Contas suportadas: Certificate Chain.

N/A

String

Keystore Account Name for Registry

Nome da conta keystore para registro que é gerada dinamicamente através do componente Store Account. Contas suportadas: Certificate Chain.

N/A

String

Informações importantes:

  • 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 mais informações, visite a documentação externa do Apache Kafka.

  • 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. O suporte para o formato Avro está na fase Beta.

  • Atualmente, os parâmetros Use Dynamic Account, Account Name, Scoped, Truststore Account Name, Keystore Account Name,Account Name for Registry, Truststore Account Name for Registry e Keystore Account Name for Registry podem ser usados apenas no Pipeline Engine v2 e estão disponíveis em fase Beta Restrito. Para saber mais, leia o artigo Progama 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.

Atualizado