Kafka

A plataforma Devprime oferece suporte nativo ao Apache Kafka, uma plataforma de streams desenvolvida pela Apache Software Foundation. O projeto tem como objetivo fornecer uma plataforma unificada, de alta capacidade e baixa latência para o processamento de dados em tempo real.

O Apache Kafka pode ser utilizando on-premise, cloud, docker, kubernetes e plataformas gerenciadas como o Confluent Cloud, Azure Event Hub e outras.

Configurando o Stream com o Kafka

O exemplo de configuração abaixo demonstra a utilização do Apache Kafka definido com o Alias “Stream1” e como padrão para envio de eventos. Ao habilitar o item “Subscribe”, estamos assinando esse tópico e recebendo eventos no Hub do Adapter de Stream.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
  "DevPrime_Stream": [
    {      
      "Enable": "true",
      "Alias": "Stream1",
      "Default": "true",
      "StreamType": "Kafka",
      "HostName": "Localhost",
      "User": "",
      "Password": "",
      "Port": "9092",
      "Retry": "3",
      "Fallback": "State1",
      "Subscribe": [
        {
          "Topics": "orderevents"
        }
      ]
    }
  ],

No exemplo abaixo, estamos detalhando as configurações padrões do Adapter e as configurações específicas do Kafka.

Geral
Enable Habilita o adapter de Stream (True/False)
Alias Define um nome único para identificar o serviço
Default Define como padrão para o centário de ter mais de um Stream (True/False)
StreamType Define o tipo de Stream (RabbitMQ
HostName Configura a url do Kafka
User Configura o usuário
Password Configura a senha do usuário
Port Configura a porta
Retry Configura a quantidade de retentativas
Fallback Configura um State para persitência automática em caso de falha
Subscribe Configura os tópicos do Kafka

Exemplo no log da aplicação com essa configuração:

1
[INF][Stream][Type "Kafka"][Alias "Stream1"]["Enable"][Subscribe]["orderevents"]

Exemplo YAML com as configurações da aplicação:

1
2
3
4
- name: devprime_stream1
    value: "alias=Stream1|||enable=true|||default=true|||streamtype=Kafka|||
    hostname=kafka.default.svc|||port=9092|||retry=3|||fallback=State1|||
    subscribe=[topics=orderevents]" 
Última modificação September 1, 2023 (072c5772)