Apache Kafka: automatizando testes de carga com kafkacat/kcat, Azure Pipelines e Bash

Renato Groffe
2 min readSep 16, 2023

--

Na imagem que inicia este post temos um exemplo de pipeline do Azure DevOps para execução de testes de carga, com o envio de múltiplas mensagens simultâneas para um tópico do Apache Kafka. Diferentemente de outros exemplos convencionais e que focam em ferramentas para geração de requisições HTTP, nesta implementação fiz uso do utilitário kafkacat/kcat e de scripts Bash, tudo isto a partir de um ambiente baseado no Ubuntu 22.04.

Esta solução foi descrita em detalhes em uma live recente no Canal .NET, com o conteúdo disponível para ser assistido gratuitamente no YouTube:

Na listagem a seguir temos a implementação do Azure Pipelines que automatiza os testes de carga baseados no Apache Kafka:

  • O kafkacat/kcat está sendo instalado por meio da instrução apt-get install (linha 24);
  • Uma function chamada executar_comando foi definida (linhas 36 a 43), acionando o kafkacat para o envio de uma mensagem contendo uma string JSON. Os dados estão sendo direcionados para a porta do Apache Kafka disponibilizada por um recurso do Azure Event Hubs;
  • A função executar_comando será executada de forma paralela com as instruções seq e parallel (linha 50), produzindo com isto múltiplas mensagens simultâneas enviadas a um tópico do Apache Kafka.

O código desse Pipeline foi disponibilizado também no meu GitHub:

https://github.com/renatogroffe/AzureDevOps-Pipelines-Kafka-Bash-kcat-LoadTests

Caso achem útil a solução, peço por favor um ⭐️ no repositório apoiando. Fica também o convite para que vocês me sigam lá no GitHub!

--

--

Renato Groffe

Microsoft Most Valuable Professional (MVP), Multi-Plataform Technical Audience Contributor (MTAC), Software Engineer, Technical Writer and Speaker