Criando um Cliente Kafka
O cliente Kafka é um aplicativo que permite interagir com um cluster Kafka. Você cria aplicativos do produtor para enviar dados para tópicos do Kafka e aplicativos do consumidor para ler as mensagens dos tópicos do Kafka.
Antes de Começar
- Confirme se você criou um cluster do Kafka no OCI Streaming com Apache Kafka.
- Crie uma instância do serviço Compute na tenancy do OCI.
- Confirme se você pode estabelecer conexão com a instância de computação.
Instalando o Kafka
Em cada instância de computação que você cria, instale as bibliotecas e ferramentas do cliente Apache Kafka.
Configurando o Cliente
Em cada instância de computação criada, você configura o arquivo de propriedades do cliente.
Usando a CLI do Kafka
Após instalar e configurar o aplicativo cliente, use as ferramentas da CLI do Apache Kafka incorporadas para gerenciar e interagir com o cluster do Kafka no Streaming com o Apache Kafka.
O Apache Kafka inclui alguns clientes incorporados. Por exemplo, os clientes Consumidor Java e Produtor Java.
Além disso, a comunidade Kafka fornece muito mais clientes que você pode usar.
A seguir estão algumas referências rápidas úteis:
- Início rápido do Apache Kafka
- Adicionando e removendo tópicos
- Atualizando tópicos
Gerenciando a Configuração do Cliente
Os clientes Kafka exigem configurações específicas para especificar como o cliente deve enviar e receber mensagens, tratar erros e gerenciar sua conexão com o cluster Kafka.
- Referência de configuração do tópico
- Referência de configuração do produtor
- Referência de configuração do consumidor
O Apache Kafka fornece ferramentas de interface de linha de comando (CLI) no diretório /bin
. Por exemplo, a ferramenta kafka-configs.sh
disponível nas bibliotecas de cliente Kafka instaladas pode ser usada para gerenciar configurações de cliente.
Veja a seguir alguns exemplos de comandos comuns da CLI. Obtenha detalhes do cluster para o URL de bootstrap nos comandos. Especifique o caminho para o arquivo client.properties
criado quando configurou o cliente.
Para exibir uma configuração de tópico, execute a ferramenta kafka-configs.sh
especificando o nome do tópico para o qual você deseja exibir a configuração.
bin/kafka-configs.sh
--bootstrap-server $URL
--command-config /path/to/client.properties
--entity-type topics
--entity-name $TOPIC_NAME
--describe
Para exibir informações de partição e replicação de todos os tópicos, execute a ferramenta kafka-configs.sh
.
bin/kafka-configs.sh
--bootstrap-server $URL
--command-config /path/to/client.properties
--describe | grep Factor | sort
Para alterar uma configuração de tópico, como retenção e segmento, execute a ferramenta kafka-configs.sh
especificando o nome do tópico para o qual você deseja alterar a configuração.
bin/kafka-configs.sh
--bootstrap-server $URL
--command-config /path/to/client.properties
--entity-type topics
--entity-name $TOPIC_NAME
--alter
--add-config retention.ms=1, segment.ms=60000
Para remover uma configuração de tópico, como retenção e segmento, execute a ferramenta kafka-configs.sh
especificando o nome do tópico para o qual você deseja remover a configuração.
bin/kafka-configs.sh
--bootstrap-server $URL
--command-config /path/to/client.properties
--entity-type topics
--entity-name $TOPIC_NAME
--alter
--delete-config retention.ms,segment.ms
Para exibir o uso do disco para cada partição, execute a ferramenta kafka-log-dirs.sh
e especifique o caminho para o arquivo de log de saída.
bin/kafka-log-dirs.sh
--bootstrap-server $URL
--command-config /path/to/client.properties
--describe | tail -1 > /tmp/logdirs.output.txt
Em seguida, execute o comando a seguir para filtrar o arquivo de log e exibir seu conteúdo. Ajuste brokers[0]
para direcionar um broker específico.
cat /tmp/logdirs.output.txt
| jq -r '.brokers[0] | .logDirs[0].partitions[] | .partition + " " + (.size|tostring)'
| sort
| awk 'BEGIN {sum=0} {sum+=$2} END {print sum}'
Para ativar o log de rastreamento de um broker, crie um arquivo log4j.properties
com as propriedades a seguir.
log4j.rootLogger=TRACE, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
Em seguida, execute o comando a seguir.
export KAFKA_OPTS="-Dlog4j.configuration=file:/path/to/log4j.properties"
Monitorando Métricas do Cliente
Você deve monitorar os aplicativos cliente e o cluster Kafka.
Use o serviço OCI Monitoring para monitorar as métricas emitidas pelos brokers do Kafka.
Para as métricas do cliente, você deve criar seu próprio painel de controle personalizado para monitorar os aplicativos do cliente. No mínimo, monitore as seguintes métricas de cliente:
record-send-rate
request-latency-avg
error-rate
records-consumed-rate
lag
fetch-latency-avg
Retries
disconnects