For the sake of simplification, optimization can be broken into two forms, and since cars have been a popular topic in this book, let's stick with that theme.
Ferrari – fast and smooth: If the system must have fast performance and high throughput, use a single node. Keep queues as short as possible, and set the max length or TTL if possible. Do not set the lazy queue policies to keep retrieval time short. Use transient messages, rather than persistent ones, for the same reason. Take advantage of using multiple queues and consumers, providing maximum throughput. For the fastest possible throughput, manual acks should be disabled. Always strive to use the latest stable RabbitMQ version.
Volvo – stable and reliable: A system that must be highly available and cannot afford to lose messages should have durable queues and send persistent messages. Queues should still be kept short.
It is recommended that clustering is set up through quorum queues....