Chapter 11. Supercharging and securing your Rabbit
This chapter covers
- Exchange, queue, and bindings memory footprint
- Message durability and disk I/O
- SSL connections with RabbitMQ
- Setting up a private key infrastructure
In previous chapters you’ve seen how to design your architectures around messaging. You’ve seen many ways for implementing several messaging patterns using the various AMQP building blocks like exchanges, queues, and bindings. Depending on the problem at hand, you chose a particular combination of those items to bring about a solution. If you needed to distribute logs across many machines, you followed a pub-sub pattern using topic or fanout exchanges; if you needed point-topoint communication, then you use direct exchanges, and so on. In this chapter we’ll review the performance characteristics of these design decisions. You’ll see the advantages and disadvantages of using direct exchanges over topic exchanges; the minimum memory footprint an exchange, queue, or binding has; what happens when you have hundreds of bindings to a topic exchange in contrast with a fanout exchange, and more. Also you may have questions like, when is a message written to disk? How does the server cope with many in-memory queues? Our goal is to provide the information necessary to make decisions when it comes to capacity planning. We’ll do so by analyzing the path that a message takes while traveling from the producer to the consumer, depending on the several AMQP options.