Benchmarking Message Brokers on Kubernetes : A Case Study in how to Evaluate Inter-Service Communication Technology / Benchmarking av Message Brokers på Kubernetes : En fallstudie i hur man utvärderar kommunikationsteknik mellan olika tjänster
- Authors
- Publication Date
- Jan 01, 2024
- Source
- DiVA - Academic Archive On-line
- Keywords
- Language
- English
- License
- Green
- External links
Abstract
Establishing a system with a microservice architecture involves many decisions, one of which can be what message broker to choose. Camjo AB is about to start working on its system and is looking for a way to evaluate the performance of two message brokers: Apache Kafka and RabbitMQ. Despite that much has been written about these two messaging systems, there is little about how the performance can be tested in a distributed cloud environment. With Azure Kubernetes Services and an open-source project for benchmarking messaging systems called OpenMessaging Benchmark Framework, performance can be tested. This thesis presents how this can be done using Docker as a tool for containerization and Helm-charts for defining and installing the OpenMessaging Benchmark Framework in a Kubernetes cluster. Performance is evaluated regarding throughput and latency by sending messages to the brokers using the OpenMessaging Benchmark Framework. Five types of tests give data to evaluate different aspects of the brokers' performance: one test for when the message size differs, the second for how the latency is affected by a given throughput, and the third for how throughput and latency are affected when used by multiple producers and consumers. The final two tests focus on how Kafka's performance varies when the Kafka-specific properties of topics and partitions differ. The benchmark results confirm that Kafka is the overall better-performing messaging broker of the two. Previous studies also suggested this, but it is now confirmed for Kubernetes by running tests with the OpenMessaging Benchmark Framework. / Att etablera ett system med en mikrotjänstarkitektur innebär många beslut, varav ett kan vara vilken meddelandeförmedlare (message broker) som ska väljas. Camjo AB är på väg att börja arbeta med sitt system och letar efter ett sätt att utvärdera prestandan hos två meddelandeförmedlare: Apache Kafka och RabbitMQ. Trots att mycket har skrivits om dessa två meddelandesystem finns det lite om hur prestandan kan testas i en distribuerad molnmiljö. Detta kan lösas med Azure Kubernetes Services och ett öppen källkodsprojekt för benchmarking av meddelandesystem som kallas OpenMessaging Benchmark Framework. Denna avhandling presenterar hur detta kan göras med Docker som ett verktyg för containerisering och Helm-diagram för att definiera och installera OpenMessaging Benchmark Framework i ett Kubernetes-kluster. Prestandandan utvärderas med avseende på genomströmning och latens genom att skicka meddelanden till mäklare med hjälp av OpenMessaging Benchmark Framework. Fem typer av tester ger data för att utvärdera olika aspekter av meddelandesystems prestation. Ett test för att testa när meddelandestorleken skiljer sig skapades. Det andra tested var för hur latensen påverkas av en given genomströmning. Det tredje skapades för test av hur genomströmning och latens påverkas vid användning av flera producenter och konsumenter. De två sista testerna fokuserar på hur Kafkas prestanda varierar när de Kafka-specifika egenskaperna hos topics och partitioner skiljer sig åt. Resultaten från benchmark testerna bekräftar att Kafka är den överlag bättre presterande meddelandemäklaren av de två. Tidigare studier antydde också detta, men det är nu bekräftat för Kubernetes genom att köra tester med OpenMessaging Benchmark Framework.