Add the broker-comparison module
Kafka, RabbitMQ and Pulsar measured side by side on ordering, replay and consumer scaling by driving the three client libraries directly, plus an operational-footprint measurement of each broker's own distribution. Nine tests, three brokers started without Docker, and every number in the documentation regenerated by scripts/run-all.sh.
This commit is contained in:
66
broker-comparison/pom.xml
Normal file
66
broker-comparison/pom.xml
Normal file
@@ -0,0 +1,66 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<!-- Every client version below is managed by spring-boot-dependencies 4.1.1, so the three
|
||||
brokers are compared at the versions a Boot 4.1 application would actually get:
|
||||
kafka-clients 4.2.1, amqp-client 5.30.0, pulsar-client 4.2.4. Read from
|
||||
spring-boot-dependencies-4.1.1.pom, not from release announcements. -->
|
||||
<parent>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-parent</artifactId>
|
||||
<version>4.1.1</version>
|
||||
<relativePath/>
|
||||
</parent>
|
||||
|
||||
<groupId>com.ankurm</groupId>
|
||||
<artifactId>broker-comparison</artifactId>
|
||||
<version>1.0</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<properties>
|
||||
<java.version>25</java.version>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- The three client libraries, driven directly. The comparison is between the brokers'
|
||||
delivery models, and going through three different Spring abstractions would put three
|
||||
different sets of defaults between the measurement and the thing being measured.
|
||||
What each Boot starter adds on top is covered in docs/06-what-spring-adds.md. -->
|
||||
<dependency>
|
||||
<groupId>org.apache.kafka</groupId>
|
||||
<artifactId>kafka-clients</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.rabbitmq</groupId>
|
||||
<artifactId>amqp-client</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.apache.pulsar</groupId>
|
||||
<artifactId>pulsar-client</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-test</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<!-- Provides the in-process KRaft broker used by the Kafka measurements: a real Kafka
|
||||
broker, no Docker. -->
|
||||
<dependency>
|
||||
<groupId>org.springframework.kafka</groupId>
|
||||
<artifactId>spring-kafka-test</artifactId>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<!-- Each broker is started by its own script and the matching tagged tests are run on
|
||||
their own; see scripts/run-all.sh, which passes -Dgroups=kafka|rabbit|pulsar. Running
|
||||
"mvn test" with no group runs all three and needs all three brokers up. -->
|
||||
|
||||
</project>
|
||||
Reference in New Issue
Block a user