Apache Kafka: automatizando testes de carga com kafkacat/kcat, Azure Pipelines e Bash
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!