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: 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