RabbitMQ Essentials
eBook - ePub

RabbitMQ Essentials

David Dossot

Share book
  1. 182 pages
  2. English
  3. ePUB (mobile friendly)
  4. Available on iOS & Android
eBook - ePub

RabbitMQ Essentials

David Dossot

Book details
Book preview
Table of contents
Citations

About This Book

In Detail

With the advent of cloud computing, the need to design and build applications that can meet the demand and complexity of the modern world has never been greater. RabbitMQ is above all other forms of Message Queuing software thanks to its loosely coupled architecture and its ability to bind multiple languages, making modern web applications secure, scalable, and simple to maintain. However, in order to implement the best design and development practices when developing your messaging applications, you will need proper guidance on how to use RabbitMQ effectively.

Armed with this supportive guide, you now have the opportunity to get immediately stuck into developing your own message-based applications with RabbitMQ. Using the fictitious Clever Coney Media as a case study, you will follow their journey of developing with RabbitMQ; from implementing simple, synchronous get operations to using advanced message routing and tracking the messaging application. With RabbitMQ Essentials, you get to observe how using Message Queuing software can streamline the development of your own distributed and scalable applications.

Once you have familiarized yourself with the RabbitMQ setup, you will soon be creating your own inbox to send and receive messages through the combination of user-specific queues as well as bound and direct exchanges. After extending your messaging system by developing your own public address system, you will learn how to analyze traffic through your own application using a Python client. If you have ever feared losing messages, prepare to be amazed once you discover how to deal with dead letters and message rejection. To round off this crash-course in RabbitMQ, you will finally learn how to track your application and prevent something disastrous occurring to it.

With so many other Message Queuing software available to you, RabbitMQ Essentials will show you precisely why RabbitMQ is leaps and bounds above the rest when it comes to building your own message-driven applications.

Approach

This book is a quick and concise introduction to RabbitMQ. Follow the unique case study of Clever Coney Media as they progressively discover how to fully utilize RabbitMQ, containing clever examples and detailed explanations.

Who this book is for

Whether you are someone who develops enterprise messaging products professionally or a hobbyist who is already familiar with open source Message Queuing software and you are looking for a new challenge, then this is the book for you. Although you should be familiar with Java, Ruby, and Python to get the most out of the examples, RabbitMQ Essentials will give you the push you need to get started that no other RabbitMQ tutorial can provide you with.

Frequently asked questions

How do I cancel my subscription?
Simply head over to the account section in settings and click on “Cancel Subscription” - it’s as simple as that. After you cancel, your membership will stay active for the remainder of the time you’ve paid for. Learn more here.
Can/how do I download books?
At the moment all of our mobile-responsive ePub books are available to download via the app. Most of our PDFs are also available to download and we're working on making the final remaining ones downloadable now. Learn more here.
What is the difference between the pricing plans?
Both plans give you full access to the library and all of Perlego’s features. The only differences are the price and subscription period: With the annual plan you’ll save around 30% compared to 12 months on the monthly plan.
What is Perlego?
We are an online textbook subscription service, where you can get access to an entire online library for less than the price of a single book per month. With over 1 million books across 1000+ topics, we’ve got you covered! Learn more here.
Do you support text-to-speech?
Look out for the read-aloud symbol on your next book to see if you can listen to it. The read-aloud tool reads text aloud for you, highlighting the text as it is being read. You can pause it, speed it up and slow it down. Learn more here.
Is RabbitMQ Essentials an online PDF/ePUB?
Yes, you can access RabbitMQ Essentials by David Dossot in PDF and/or ePUB format, as well as other popular books in Informatica & Informatica generale. We have over one million books available in our catalogue for you to explore.

Information

Year
2014
ISBN
9781783983209

RabbitMQ Essentials


Table of Contents

RabbitMQ Essentials
Credits
Foreword
About the Author
About the Reviewers
www.PacktPub.com
Support files, eBooks, discount offers and more
Why Subscribe?
Free Access for Packt account holders
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
1. A Rabbit Springs to Life
What is messaging?
A loosely coupled architecture
Meet AMQP
The RabbitMQ broker
A case for RabbitMQ
Getting RabbitMQ ready
Installing the broker
Installing the management plugin
Configuring users
Summary
2. Creating an Application Inbox
Connecting to RabbitMQ
Working with channels
Building the inbox
Sending user messages
AMQP message structure
Fetching user messages
Seeing it run
Adding topic messages
Summary
3. Switching to Server-push
Moving beyond polling
Consuming queues
Creating a consumer subscription wrapper
Babysitting subscriptions
Tying into the WebSocket endpoint
Running the application
Publishing to all queues
Binding to the fanout
Publishing to all
Running the application
Summary
4. Handling Application Logs
Publishing and consuming logs
Load testing AMQP
Running a load test
Prefetching messages
Messaging serendipity
Summary
5. Tweaking Message Delivery
Handling dead letters
Refactoring queues
Undertaking messages
Making delivery mandatory
Implementing the back-office sender
Summary
6. Smart Message Routing
Service-oriented messaging
Replying to queues
Routing service requests
Exposing the authentication service
Calling the authentication service
Summary
7. Taking RabbitMQ to Production
Tackling the broker SPOF
Mirroring queues
Connecting to the cluster
Federating brokers
Monitoring the broker
Summary
8. Testing and Tracing Applications
Testing RabbitMQ applications
Unit testing RabbitMQ applications
Integration testing RabbitMQ applications
Tracing RabbitMQ
Drinking at the Firehose
Summary
A. Message Schemas
User message
Authentication messages
Login
Request
Response
Logout
Request
Response
Generic error message
Index

RabbitMQ Essentials

Copyright © 2014 Packt Publishing
All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.
Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the author, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.
Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.
First published: April 2014
Production Reference: 1180414
Published by Packt Publishing Ltd.
Livery Place
35 Livery Street
Birmingham B3 2PB, UK.
ISBN 978-1-78398-320-9
www.packtpub.com

Credits

Author
David Dossot
Reviewers
Ken Pratt
Ken Taylor
Ignacio Colomina Torregrosa
HĂ©ctor Veiga
Commissioning Editor
Ashwin Nair
Acquisition Editor
Richard Harvey
Content Development Editor
Govindan K
Technical Editors
Shruti Rawool
Nachiket Vartak
Copy Editors
Aditya Nair
Kirti Pai
Project Coordinator
Puja Shukla
Proofreader
Ameesha Green
Indexer
Monica Ajmera Mehta
Graphics
Sheetal Aute
Ronak Dhruv
Abhinash Sahu
Production Coordinator
Alwin Roy
Cover Work
Alwin Roy
Cover Image
Sheetal Aute

Foreword

What gets me most excited about RabbitMQ is that people keep finding new and better ways to use it. Messaging has truly come of age and stands beside databases and web applications as a technology that every professional developer needs to know.
In 2006, when RabbitMQ was born, messaging was mostly used by companies that had way too many IT systems and desperately needed some way to connect them. Jargon words such as "pubsub" and "queue" were strictly for messaging geeks and highly paid integration consultants. But the world was already changing and we were about to find out why.
Today's software and web applications are increasing in scale rapidly. There are more users, apps, devices, places, and ways to connect; this creates a burning need to build more scalable applications. At the same time, these new applications have to integrate with existing systems and services written using any language or API you care to think of. There is only one way to deliver scalability in this kind of environment: use messaging. The best way to do that is via a product such as RabbitMQ.
We started RabbitMQ because there was no messaging tool that was really powerful and dependable, yet easy to get started with. We decided to make one. We hope you like it.
The fun part is designing the tool so that you, the developer, feel like RabbitMQ is actually helping you to build better apps, instead of getting in the way. Your use of the tool should grow with your system.
The hard part is balancing simplicity and power. With RabbitMQ, we think we got this about right. Developers have little tolerance for complexity and nonsense. But beware! There is such a thing as "fake simplicity"; if a tool makes promises that seem too good to be true, then something is almost certainly broken. A truly simple system makes its capabilities obvious when they are needed. RabbitMQ will never lie to you or conceal its true behavior and we think this is essential in a good tool.
In this book, David Dossot has shown how messaging can help anyone architect and design solid scalable apps and how RabbitMQ can deliver on this promise. In 2014, everyone can grok the basics of messaging. Read this book to get started.
Alexis Richardson
Former CEO, Rabbit Technologies Inc.

About the Author

David Dossot has worked as a software engineer and an architect for more than 18 years. He has been using RabbitMQ since 2009 in a variety of different contexts. He is the main contributor to the AMQP transport for Mule. His focus is on building distributed and scalable server-side applications for the JVM and the Erlang VM. He is a member of IEEE, the Computer Society, and AOPA, and holds a diploma in Production Systems Engineering from ESSTIN.
He is a co-author for the first and second editions of Mule in Action (Manning Publications Co.). He is a Mule champion and a DZone Most Valuable Blogger. He commits on multiple open source projects and likes to help people on Stack Overflow. He's also a judge for the annual Jolt Awards software competition.

Table of contents