-
Notifications
You must be signed in to change notification settings - Fork 0
Home
shahprincea edited this page Dec 10, 2014
·
16 revisions
As of today there are many queues which follows AMPQ and STOMP protocol. To name few RabbitMQ, Kafka, ActiveQ etc. However, with each queue there are pro and cons. This project is centered around various use cases and evaluate how RabbitMQ handles them.
- OS : Ubuntu 14.04 on a VM (VMWare fusion)
- CPU : Intel® Core™ i7-4870HQ CPU @ 2.50GHz × 2
- Memory : 3.9 GiB
- OS Type : 64-bit
- Disk : 16.8 GB
- RabbitMQ Server : 3.2.4
- RabbitMQ java Client : 3.4.1
We have 3 node cluster build using above single Node machines.
ref: http://www.rabbitmq.com/clustering.html
- Add the following line to your /etc/apt/sources.list: "deb http://www.rabbitmq.com/debian/ testing main"
- wget http://www.rabbitmq.com/rabbitmq-signing-key-public.asc
- sudo apt-key add rabbitmq-signing-key-public.asc
- Run apt-get update.
- sudo apt-get install rabbitmq-server
- rabbitmqctl start/stop/status to start/stop/status rabbitmq server
- Install rabbitMQ Management Plugin see https://www.rabbitmq.com/management.html
Note: logs are located at /var/log/rabbitmq directory
ref: http://www.rabbitmq.com/install-debian.html
- Consumers can be added/removed dynamically.
(done)
- If consumer dies after dequeueing that msg should be re-delivered to other consumer.
(done)
- Queue should never take away work from consumer even if consumer takes forever to complete.
(done)
- Messages should survive restart of RabbitMQ.
(done)
- Queue should never loose msg even if Consumer dies (with/without ack).
- Queue should support Batch operations.
- Queue should support various msg sizes (2k, 20K, 200K).
(done)
- Latency between msg produced to consumed (durable and non durable msg) for various msg size.
(good to have)
- Queue should not slow down when you have multiple consumers (High Availability).
(good to have)
- Queue should block producers in case of Disk full (or reaching some threshold).
(done)
- Queue should be bounded.
(done)
- Queues should be distributed in cluster.
- Thoughts on Disk Node vs RAM Node.
(good to have)
- Publisher should be able to reliably publish msg to exchange/queue.
- Does consumer/producer pool for connection or dies if RabbitMQ server restarts.
(done)
- Tested mirrored queue
- Get queue Size