RabbitMQ Architecture simulator
This project helps RabbitMQ architects to design both RabbitMQ server and AMQP related architecture design.
Objective:
This project aim to provide a dockerized environment to simulate different topology of RabbitMQ server deployment.
For example: Multi-Site RabbitMQ deployment with latency across 2 sites.
Everything will be running as docker containers, and is designed to rapidly spawn up and down all components.
This simulator is useful for:
- Testing change/settings
rabbitmq.conf
rapidly
- Behavior monitoring: Deliberate kill / overload / OOM an instance of RabbitMQ server, backpressure in extreme cases
- Benchmarking for the impact of variables hard to modify in real life: Network latency, packet loss, CPU and RAM bounded
Of course by benchmarking it's not mean for running production level benchmarking but as a baseline/reference benchmarking on
cases such as:
- If I use publish confirm, how much latency it will increase vs without publish confirm?
- Will message drop/loss occur when a RabbitMQ server is lost
- Development use in your app for transaction critical section turning
Anti-Goals:
- Intended for production use
- For real/native throughput / performance benchmarking
- Replacing RabbitMQ Simulator
What is the difference of Architecture Simulator vs RabbitMQ Simulator?
RabbitMQ Simulator Simulate the Exchanges + Queue + Binding interaction with consumer and producer.
This repo RabbitMQ Architecture Simulator simulate the RabbitMQ server itself, such as forming Cluster in a multi-site deployment.