RabbitMQ in Action
Distributed Messaging for Everyone
Alvaro Videla and Jason J.W. Williams
Foreword by Alexis Richardson
  • April 2012
  • ISBN 9781935182979
  • 312 pages
  • printed in black & white

In this outstanding work, two experts share their years of experience running large-scale RabbitMQ systems.

Alexis Richardson, VMware

RabbitMQ in Action is a fast-paced run through building and managing scalable applications using the RabbitMQ messaging server. It starts by explaining how message queuing works, its history, and how RabbitMQ fits in. Then it shows you real-world examples you can apply to your own scalability and interoperability challenges.

About the Technology

There's a virtual switchboard at the core of most large applications where messages race between servers, programs, and services. RabbitMQ is an efficient and easy-to-deploy queue that handles this message traffic effortlessly in all situations, from web startups to massive enterprise systems.

About the book

RabbitMQ in Action teaches you to build and manage scalable applications in multiple languages using the RabbitMQ messaging server. It's a snap to get started. You'll learn how message queuing works and how RabbitMQ fits in. Then, you'll explore practical scalability and interoperability issues through many examples. By the end, you'll know how to make Rabbit run like a well-oiled machine in a 24 x 7 x 365 environment.

Table of Contents detailed table of contents




about this book

about the cover illustration

1. Pulling RabbitMQ out of the hat

1.1. Living in other people’s dungeons

1.2. AMQP to the rescue

1.3. A brief history of RabbitMQ

1.4. Picking RabbitMQ out of the hat (and other open options)

1.5. Installing RabbitMQ on Unix systems

1.6. Summary

2. Understanding messaging

2.1. Consumers and producers (not an economics lesson)

2.2. Building from the bottom: queues

2.3. Getting together: exchanges and bindings

2.4. Multiple tenants: virtual hosts and separation

2.5. Where’s my message? Durability and you

2.6. Putting it all together: a day in the life of a message

2.7. Using publisher confirms to verify delivery

2.8. Summary

3. Running and administering Rabbit

3.1. Server management

3.2. Asking permission

3.3. Checking up

3.4. Fixing a bad Rabbit: troubleshooting

3.5. Summary

4. Solving problems with Rabbit: coding and patterns

4.1. A decoupling story: what pushes us to messaging

4.2. Fire-and-forget models

4.3. Remember me: RPC over RabbitMQ and waiting for answers

4.4. Summary

5. Clustering and dealing with failure

5.1. Batteries included: RabbitMQ clustering

5.2. Architecture of a cluster

5.3. Setting up a cluster on your laptop

5.4. Distributing the nodes to more machines

5.5. Upgrading cluster nodes

5.6. Mirrored queues and preserving messages

5.7. Summary

6. Writing code that survives failure

6.1. Load balancing your Rabbits

6.2. Lost connections and failing clients between servers

6.3. Summary

7. Warrens and Shovels: failover and replication

7.1. Warrens: another way of clustering

7.2. Setting up load balancer–based master/slave clusters

7.3. Long-distance communication and replication

7.4. Summary

8. Administering RabbitMQ from the Web

8.1. Beyond rabbitmqctl: the RabbitMQ Management plugin

8.2. Managing RabbitMQ from the web console

8.3. Managing users from the web console

8.4. Managing exchanges and queues from the web console

8.5. Back to the command line

8.6. Summary

9. Controlling Rabbit with the REST API

9.1. What can you do with the RabbitMQ REST API?

9.2. Granting your clients access

9.3. Accessing statistics

9.4. Automating vhost and user provisioning

9.5. Summary

10. Monitoring: Houston, we have a problem

10.1. RabbitMQ monitoring: keeping an eye on your warren

10.2. Making sure consumers are consuming

10.3. Summary

11. Supercharging and securing your Rabbit

11.1. The need for speed

11.2. Memory usage and process limits

11.3. SSL connections

11.4. Summary

12. Smart Rabbits: extending RabbitMQ

12.1. RabbitMQ plugins

12.2. Making your own plugins

12.3. Creating your custom exchange module

12.4. Summary

Appendix A: Using Rabbit from Java and .NET

Appendix B: Online resources

Appendix C: Installing RabbitMQ on Windows


What's inside

  • Learn fundamental messaging design patterns
  • Use patterns for on-demand scalability
  • Glue a PHP frontend to a backend written in anything
  • Implement a PubSub-alerting service in 30 minutes flat
  • Configure RabbitMQ's built-in clustering
  • Monitor, manage, extend, and tune RabbitMQ

About the reader

Written for developers familiar with Python, PHP, Java, .NET, or any other modern programming language. No RabbitMQ experience required.

About the authors

Alvaro Videla is a developer and architect specializing in MQ-based applications. Jason J. W. Williams is CTO of DigiTar, a messaging service provider, where he directs design and development.

placing your order...

Don't refresh or navigate away from the page.
print book $29.99 $44.99 pBook + eBook + liveBook
Additional shipping charges may apply
Prints and ships within 3-5 days
RabbitMQ in Action (print book) added to cart
continue shopping
go to cart

eBook $24.99 $35.99 3 formats + liveBook
RabbitMQ in Action (eBook) added to cart
continue shopping
go to cart

Prices displayed in rupees will be charged in USD when you check out.

FREE domestic shipping on three or more pBooks