RabbitMQ in Action
RabbitMQ in Action

Author: Alvaro Vileda & Jason Williams
Publisher: Manning
Pages: 312
ISBN: 978-1935182979
Audience: Developers wanting to write apps that use asynchronous messaging
Rating: 4.5
Reviewer: Kay Ewbank

Down-to-earth and lucid coverage of messaging but be prepared for some groan-worthy puns about rabbits.

Using middle-tier messaging software can be a great way to hand over some of the tough bits of writing an app, but the process is far from transparent. Big name products like IBM MQSeries and Microsoft MSMQ have their fans, but so does the open source RabbitMQ server. RabbitMQ is written in Erlang, and conforms to the AMQP specification (Advanced Message Queuing Protocol). We’ve all used software that makes use of asynchronous messaging - email, instant messengers, software such as Skype all relies on asynchronous messaging. What’s less obvious is how and why it would be useful in your own applications.




Vileda and Williams start with a general introduction to the subject matter, and for once this isn’t a waste of space.

They make the case for using asynchronous messaging by pointing out that the applications we write need to have easy ways to route information to multiple receivers, and to change who receives the information without rewriting the whole app. Having set out the case for why messaging is important, they go on to give a short history of messaging and RabbitMQ before going through the basics of messaging - consumers and producers; exchanges and queues; and the use of virtual hosts. Even if you don’t intend to use RabbitMQ, these two chapters will give you a good understanding of what messaging is and why it matters.

Chapter 3 moves on to the mechanics of running and administering RabbitMQ, essentially covering starting and stopping server nodes, managing permissions, and some troubleshooting. From this point on the book becomes more useful. It also from here onwards contains a lot of code.

There’s a good chapter on solving problems with RabbitMQ coding and patterns where the authors look at how to design your apps to be ‘messaging friendly’ before going on to look at different patterns that apps using messaging fall into, finishing with a look at RPC with RabbitMQ.  The next chapter looks at clustering to make your system resistant to failures. This is an interesting chapter in terms of the different approaches discussed, and is refreshingly down-to-earth and doable. Far too often once authors start talking about clustering and distributed systems the picture that springs to mind involves extremely large systems paid for by extremely large amounts of money, but these guys talk about clustering on your laptop! Much more believable. The following chapter is also dedicated to writing code that survives failure, with coverage of load balancing and how to write code that reconnects and survives failure.

The title of the next chapter "Warrens and Shovels" had me puzzled for a few minutes till I read far enough to realize the authors were making a groan-worthy joke about having active/standby pairs of servers, and that Shovel is the name of a plug-in for RabbitMQ that replicates queues across servers.

RabbitMQ has a management plug-in that you can use to manage your servers from the Web, and the next chapter is all about how to use this. You can also control RabbitMQ with its own RabbitMQ REST API, and that gets its own chapter.

Chapter 10 is titled "Houston, we have a problem", and looks at monitoring. You may have concluded by now that Vileda and Williams are pessimists at heart who expect everything to fail. On the other hand, you may well think they’re just realists. The final two chapters are for optimists, though. The first looks at supercharging and securing RabbitMQ, including using SSL connections. The last chapter covers extending RabbitMQ both by using existing plugins and by creating your own plugins.

I liked this book.

The authors have a terrible liking for puns and I groaned far too often at their rabbit jokes, but I could live with that. The code is interesting, and the coverage of RabbitMQ is good. I’m not sure they completely convinced me that RabbitMQ is the message queue manager to beat all others, but no matter what software you’re contemplating using the book covers the underlying ideas in a very understandable way.




Debugging Teams

Author: Brian Fitzpatrick and Ben Collins-Sussman
Publisher: O'Reilly
Pages: 190
ISBN: 978-1491932056
Print: 1491932058
Kindle: B016NDL1QE
Audience: Primarily software developers but will appeal to anyone who contributes to a team effort. 
Rating: 5
Reviewer: Sue Gee

The quote on the bo [ ... ]

Programming in C (4e)

Author: Stephen G. Kochan
Publisher: Addison Wesley
Pages: 600
ISBN: 978-0321776419
Print: 0321776410
Kindle: B00MTUNHDQ
Audience: Newcomers to C
Rating: 4
Reviewer: Alex Armstrong


Learning to program in C - is this book a good approach?

More Reviews

Last Updated ( Thursday, 02 August 2012 )

RSS feed of book reviews only
I Programmer Book Reviews
RSS feed of all content
I Programmer Book Reviews
Copyright © 2016 i-programmer.info. All Rights Reserved.
Joomla! is Free Software released under the GNU/GPL License.