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.
Nine Algorithms That Changed the Future
Author: John MacCormick Publisher: Princeton U P Pages: 248 ISBN: 978-0691147147 Aimed at: General reader interested in computing Rating: 4 Pros: An insight into the possibilities of computing Cons: Tends to be long-winded, inappropriate use of "trick" Reviewed by: Mike James
Nine algorithms that changed t [ ... ]
|
Content Is Cash
Author: Wendy Montes de Oca Publisher: Que Pages: 240 ISBN: 978-0789741080 Aimed at: Wide audience of web entrepreneurs Rating: 4 Pros: Some good internet marketing ideas Cons: Occationally repetitive and self-promotional Reviewed by: Sue Gee
The subtitle "Leveraging Great Content and the Web for Increased [ ... ]
| | More Reviews |
|