Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
RabbitMQ Essentials
RabbitMQ Essentials

RabbitMQ Essentials: Hop straight into developing your own messaging applications by learning how to utilize RabbitMQ.

eBook
$17.09 $18.99
Paperback
$29.99
Subscription
Free Trial
Renews at $19.99p/m

What do you get with Print?

Product feature icon Instant access to your digital copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Redeem a companion digital copy on all Print orders
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Modal Close icon
Payment Processing...
tick Completed

Shipping Address

Billing Address

Shipping Methods
Table of content icon View table of contents Preview book icon Preview Book

RabbitMQ Essentials

Chapter 2. Creating an Application Inbox

Applications that need to use RabbitMQ need to establish a permanent connection to it. When this connection is established, logical channels can be created and message-oriented interactions, such as publishing and getting messages, can be performed. After learning these fundamentals, you'll learn how exchange-routing strategies determine how messages are delivered to queues. In particular, you will learn about direct exchange, which delivers messages to a single queue, and topic exchange, which delivers messages to multiple queues based on pattern-matching routing keys.

In this chapter, we will discuss the following topics:

  • Establishing a solid connection to RabbitMQ

  • Working with channels

  • Publishing messages to RabbitMQ

  • Getting messages from RabbitMQ

  • Direct and topic exchanges

Connecting to RabbitMQ


Before delving into the code, let's quickly summarize what Clever Coney Media (CCM) wants to achieve with RabbitMQ. As said in the previous chapter, it wants to add an application inbox to allow users of its web application to send messages to each other. The expected user experience is more like that of an e-mail than instant messaging, though messages will be transient by definition; once received, it will not be possible to read it again. Thus, message queuing is a perfect match for it; each user will have a dedicated message queue where messages will wait until retrieval.

The following diagram illustrates the architecture CCM has in place and where RabbitMQ will fit in:

CCM's main application architecture

From what you've learned in Chapter 1, A Rabbit Springs to Life, you need to establish a physical (network) connection between the application servers and RabbitMQ, which will multiplex many logical channels. Unlike creating channels, creating connections is a costly...

Adding topic messages


CCM's application allows users to organize themselves in groups by registering their topics of interest. The new message feature we want to roll out will allow a user to send a message to all users interested in a particular topic. It turns out that this feature matches a specific exchange routing rule, not surprisingly called topic! This type of exchange allows the routing of message to all the queues that have been bound with a routing key that matches the routing key of the message. So, unlike the direct exchange that routes a message to at the most one queue, the topic exchange can route it to multiple queues.

Note

The topic exchange supports strict routing key matching and also wild-card matching using * and # as respective placeholders for exactly one word and zero or more words. Words are delimited by dots, so even if routing keys are of free form, RabbitMQ will interpret dots in them as word separators. It's a good practice to structure routing keys from the most...

Summary


In this chapter, you learned about connecting to RabbitMQ and sending and receiving messages. You also discovered the direct and topic exchanges and put them into motion in the context of CCM's user-to-user and group messaging features.

In the next chapter, we're going to up the ante. CCM will increase responsiveness of the messaging system by switching to server-push and then keep rolling out new features on it.

Left arrow icon Right arrow icon
Download code icon Download Code

What you will learn

  • Familiarize yourself with the basics of RabbitMQ to start building your own messaging applications
  • Get to know how Clever Coney Media implemented RabbitMQ to improve the development of applications
  • Publish, receive, and reject messages
  • Route messages by using direct, topic, fanout, and header exchanges
  • Create your own application inbox and public address system using Java and Ruby
  • Analyze the traffic of your applications using a Python client
  • Solve any emergencies using an eviction strategy, smart message routing, clustering, and federation
  • Monitor the health of your application by learning how to track it
Estimated delivery fee Deliver to United States

Economy delivery 10 - 13 business days

Free $6.95

Premium delivery 6 - 9 business days

$21.95
(Includes tracking information)

Product Details

Country selected
Publication date, Length, Edition, Language, ISBN-13
Publication date : Apr 25, 2014
Length: 182 pages
Edition :
Language : English
ISBN-13 : 9781783983209
Vendor :
Pivotal
Tools :

What do you get with Print?

Product feature icon Instant access to your digital copy whilst your Print order is Shipped
Product feature icon Paperback book shipped to your preferred address
Product feature icon Redeem a companion digital copy on all Print orders
Product feature icon Access this title in our online reader with advanced features
Product feature icon DRM FREE - Read whenever, wherever and however you want
Modal Close icon
Payment Processing...
tick Completed

Shipping Address

Billing Address

Shipping Methods
Estimated delivery fee Deliver to United States

Economy delivery 10 - 13 business days

Free $6.95

Premium delivery 6 - 9 business days

$21.95
(Includes tracking information)

Product Details

Publication date : Apr 25, 2014
Length: 182 pages
Edition :
Language : English
ISBN-13 : 9781783983209
Vendor :
Pivotal
Tools :

Packt Subscriptions

See our plans and pricing
Modal Close icon
$19.99 billed monthly
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Simple pricing, no contract
$199.99 billed annually
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts
$279.99 billed in 18 months
Feature tick icon Unlimited access to Packt's library of 7,000+ practical books and videos
Feature tick icon Constantly refreshed with 50+ new titles a month
Feature tick icon Exclusive Early access to books as they're written
Feature tick icon Solve problems while you work with advanced search and reference features
Feature tick icon Offline reading on the mobile app
Feature tick icon Choose a DRM-free eBook or Video every month to keep
Feature tick icon PLUS own as many other DRM-free eBooks or Videos as you like for just $5 each
Feature tick icon Exclusive print discounts

Frequently bought together


Stars icon
Total $ 139.97
Mastering RabbitMQ
$60.99
RabbitMQ Cookbook
$48.99
RabbitMQ Essentials
$29.99
Total $ 139.97 Stars icon

Table of Contents

8 Chapters
A Rabbit Springs to Life Chevron down icon Chevron up icon
Creating an Application Inbox Chevron down icon Chevron up icon
Switching to Server-push Chevron down icon Chevron up icon
Handling Application Logs Chevron down icon Chevron up icon
Tweaking Message Delivery Chevron down icon Chevron up icon
Smart Message Routing Chevron down icon Chevron up icon
Taking RabbitMQ to Production Chevron down icon Chevron up icon
Testing and Tracing Applications Chevron down icon Chevron up icon

Customer reviews

Rating distribution
Full star icon Full star icon Full star icon Half star icon Empty star icon 3.4
(5 Ratings)
5 star 0%
4 star 60%
3 star 20%
2 star 20%
1 star 0%
Jascha Casadio Jun 22, 2015
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
Despite the explosion of the cloud, and with it of distributed systems, high availability and fault tolerance, there is still little awareness and knowledge of concepts such as asynchronous message oriented systems. This is clearly reflected by the very few hits that any of us gets on Amazon, if we dare to search strange keywords, such as ‘AMQP’ or ‘message broker’. RabbitMQ is an open source message broker that implements the AMQP protocol, the de facto standard for building asynchronous distributed applications. Among the very few titles available on the subject, RabbitMQ Essential provides newcomers with a good solid introduction to both the protocol and its RabbitMQ implementation.There are two ways a professional can deal with RabbitMQ: as an administrator and as a developer.As a developer there are, again, two ways we can interact with it: we can either work with it indirectly, through a third part application, which some purist may refer to as a middlware. This is the case, for example, of Celery, the way most pythonists take advantage of RabbitMQ on a daily basis. On the other hand, a developer can directly interact with the broker by taking care, programatically, to deal with all its quicks and intricacies, such as pulling messages and ACKing them . Our pythonists friends, suing them again as an example, would in this case end up importing packages such as Pika and writing their own methods to talk to Rabbit.As an administrator, instead, well the professional has no other choice that take direct control over the broker, the queues, the exchanges and the virtual hosts. While the author does not cover all the different options and flavors available, he gives the reader enough to get started and properly configure the system to work in different scenarios.David covers diligently both the developer and the administrator parts. To highlight how powerful and flexible an asynchronous message oriented system is, he shows us how to programatically deal with the many different parts of an hypothetical distributed system built on top of RabbitMQ using different programming languages, including Python, Java, Ruby and C#. Plain useful! Each concept is first explained, then followed by step by step examples whose key parts are wonderfully explained.And the schemas… there are so many of them. High quality diagrams perfectly used by David to give the reader a clear picture of both the AMQP protocol and the RabbitMQ architecture.Overall a very good book. The reader gets to the back cover with a good taste in his mouth and the will to practice and learn more. Highly recommenced to anyone interested in distributed applications.As usual, you can find more reviews on my personal blog: http://books.lostinmalloc.com Feel free to pass by and share your thoughts!
Amazon Verified review Amazon
Jose Luis Villarreal Benitez Dec 02, 2017
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
Bueno
Amazon Verified review Amazon
Sid Young Jul 16, 2014
Full star icon Full star icon Full star icon Full star icon Empty star icon 4
This book makes a departure from most of the RabbitMQ books that have been published in the last few years. Rather than tediously cover the API with simple examples this book has been aimed at changing your mind set on how to architect and code applications around a message based philosophy. This is an area that has been touched on by many books but not covered in any meaningful depth.The coding examples use Java with a splattering of Ruby code, common in many RabbitMQ books, but this is not an impediment if you code in other languages as the methods and API are similar enough to enable even a novice developer to wade through the examples and build the example code in a different environment.The book begins much like most introducing the technology and then introduces design solutions using some practical examples that can be used as a basis in production systems. Few programmers understand the message queue design and particularly how to restructure software to operate as separate modules using queues to push work in a loosely coupled orchestration, the examples presented do explain this reasonably well. I particularly like the chapter 4, using queuing to pass logs through. So many developers under use the power of real-time logging, something system administrators do everyday to determine faults and issues.The book also does a good job of explaining all of the AMQP delivery concepts of distributing messages. It covers binding/routing of messages to queues, distributing message via different exchange types and shows how to use the tools provided (and some extra tools you can get) to assist in interactively debugging and developing your apps.There is coverage of load testing, message pre-fetching and how to improve the performance of consumer application and the how to perform synchronous message interactions.As the book progress more advanced level topics are covered, starting with different message types and delivery options and the design concepts of service-oriented messaging are covered as is advanced delivery with request response messages.No RabbitMQ book is complete with out covering clustering and load balancing, and this is covered in sufficient depth in an easy to understand format. The author provide sample code to show how to connect to brokers within a cluster.The book ends with a chapter dedicated to testing and tracing applications with coverage of tools to trace deeper under the hood of the AMQP protocol and the RabbitMQ broker.To summarize the book, it reinforces the stability of the RabbitMQ technology as a platform for building production grade highly scalable distributed message driven systems once you get your mind around how software SHOULD be designed for the highly connected world we now live in.The old monolithic system design and synchronous technologies of the past that most programmers have exposed to are superceeded by the message queue design philosophy, once you understand this book and the concepts explained in it you will change your ideas on how software interacts and how systems should be built.
Amazon Verified review Amazon
KS May 17, 2020
Full star icon Full star icon Full star icon Empty star icon Empty star icon 3
外部パッケージの開発のために購入。内容はよく網羅していますが、サンプルコードは Java 中心でした。Perl や Python、あるいは C のいんたエースについての記述がなかったので、実際の役にはあまり立ちませんでした。このあたりはネット上の情報に頼るしかないので、もう少し広範囲な API の記述があると助かります。
Amazon Verified review Amazon
Mr David Rogers Dec 22, 2014
Full star icon Full star icon Empty star icon Empty star icon Empty star icon 2
I bought this, skimmed it and returned it. For me there was not enough of an introduction / overview explaining what was to be done before doing it. After reading Patterns of Enterprise Integration, I was looking for an explanation of how AMQP/RabbitMQ maps into integration patterns.While there definitely is some of that mapping presented in RabbitMQ essentials the jump tediously straight into code and introduce the what and why as more of an afterthought. The code I can figure out from test cases or other documentation. What I was looking for was an explanation of the RabbitMQ conceptual model and then how to apply that to various integration patterns.
Amazon Verified review Amazon
Get free access to Packt library with over 7500+ books and video courses for 7 days!
Start Free Trial

FAQs

What is the digital copy I get with my Print order? Chevron down icon Chevron up icon

When you buy any Print edition of our Books, you can redeem (for free) the eBook edition of the Print Book you’ve purchased. This gives you instant access to your book when you make an order via PDF, EPUB or our online Reader experience.

What is the delivery time and cost of print book? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela
What is custom duty/charge? Chevron down icon Chevron up icon

Customs duty are charges levied on goods when they cross international borders. It is a tax that is imposed on imported goods. These duties are charged by special authorities and bodies created by local governments and are meant to protect local industries, economies, and businesses.

Do I have to pay customs charges for the print book order? Chevron down icon Chevron up icon

The orders shipped to the countries that are listed under EU27 will not bear custom charges. They are paid by Packt as part of the order.

List of EU27 countries: www.gov.uk/eu-eea:

A custom duty or localized taxes may be applicable on the shipment and would be charged by the recipient country outside of the EU27 which should be paid by the customer and these duties are not included in the shipping charges been charged on the order.

How do I know my custom duty charges? Chevron down icon Chevron up icon

The amount of duty payable varies greatly depending on the imported goods, the country of origin and several other factors like the total invoice amount or dimensions like weight, and other such criteria applicable in your country.

For example:

  • If you live in Mexico, and the declared value of your ordered items is over $ 50, for you to receive a package, you will have to pay additional import tax of 19% which will be $ 9.50 to the courier service.
  • Whereas if you live in Turkey, and the declared value of your ordered items is over € 22, for you to receive a package, you will have to pay additional import tax of 18% which will be € 3.96 to the courier service.
How can I cancel my order? Chevron down icon Chevron up icon

Cancellation Policy for Published Printed Books:

You can cancel any order within 1 hour of placing the order. Simply contact customercare@packt.com with your order details or payment transaction id. If your order has already started the shipment process, we will do our best to stop it. However, if it is already on the way to you then when you receive it, you can contact us at customercare@packt.com using the returns and refund process.

Please understand that Packt Publishing cannot provide refunds or cancel any order except for the cases described in our Return Policy (i.e. Packt Publishing agrees to replace your printed book because it arrives damaged or material defect in book), Packt Publishing will not accept returns.

What is your returns and refunds policy? Chevron down icon Chevron up icon

Return Policy:

We want you to be happy with your purchase from Packtpub.com. We will not hassle you with returning print books to us. If the print book you receive from us is incorrect, damaged, doesn't work or is unacceptably late, please contact Customer Relations Team on customercare@packt.com with the order number and issue details as explained below:

  1. If you ordered (eBook, Video or Print Book) incorrectly or accidentally, please contact Customer Relations Team on customercare@packt.com within one hour of placing the order and we will replace/refund you the item cost.
  2. Sadly, if your eBook or Video file is faulty or a fault occurs during the eBook or Video being made available to you, i.e. during download then you should contact Customer Relations Team within 14 days of purchase on customercare@packt.com who will be able to resolve this issue for you.
  3. You will have a choice of replacement or refund of the problem items.(damaged, defective or incorrect)
  4. Once Customer Care Team confirms that you will be refunded, you should receive the refund within 10 to 12 working days.
  5. If you are only requesting a refund of one book from a multiple order, then we will refund you the appropriate single item.
  6. Where the items were shipped under a free shipping offer, there will be no shipping costs to refund.

On the off chance your printed book arrives damaged, with book material defect, contact our Customer Relation Team on customercare@packt.com within 14 days of receipt of the book with appropriate evidence of damage and we will work with you to secure a replacement copy, if necessary. Please note that each printed book you order from us is individually made by Packt's professional book-printing partner which is on a print-on-demand basis.

What tax is charged? Chevron down icon Chevron up icon

Currently, no tax is charged on the purchase of any print book (subject to change based on the laws and regulations). A localized VAT fee is charged only to our European and UK customers on eBooks, Video and subscriptions that they buy. GST is charged to Indian customers for eBooks and video purchases.

What payment methods can I use? Chevron down icon Chevron up icon

You can pay with the following card types:

  1. Visa Debit
  2. Visa Credit
  3. MasterCard
  4. PayPal
What is the delivery time and cost of print books? Chevron down icon Chevron up icon

Shipping Details

USA:

'

Economy: Delivery to most addresses in the US within 10-15 business days

Premium: Trackable Delivery to most addresses in the US within 3-8 business days

UK:

Economy: Delivery to most addresses in the U.K. within 7-9 business days.
Shipments are not trackable

Premium: Trackable delivery to most addresses in the U.K. within 3-4 business days!
Add one extra business day for deliveries to Northern Ireland and Scottish Highlands and islands

EU:

Premium: Trackable delivery to most EU destinations within 4-9 business days.

Australia:

Economy: Can deliver to P. O. Boxes and private residences.
Trackable service with delivery to addresses in Australia only.
Delivery time ranges from 7-9 business days for VIC and 8-10 business days for Interstate metro
Delivery time is up to 15 business days for remote areas of WA, NT & QLD.

Premium: Delivery to addresses in Australia only
Trackable delivery to most P. O. Boxes and private residences in Australia within 4-5 days based on the distance to a destination following dispatch.

India:

Premium: Delivery to most Indian addresses within 5-6 business days

Rest of the World:

Premium: Countries in the American continent: Trackable delivery to most countries within 4-7 business days

Asia:

Premium: Delivery to most Asian addresses within 5-9 business days

Disclaimer:
All orders received before 5 PM U.K time would start printing from the next business day. So the estimated delivery times start from the next day as well. Orders received after 5 PM U.K time (in our internal systems) on a business day or anytime on the weekend will begin printing the second to next business day. For example, an order placed at 11 AM today will begin printing tomorrow, whereas an order placed at 9 PM tonight will begin printing the day after tomorrow.


Unfortunately, due to several restrictions, we are unable to ship to the following countries:

  1. Afghanistan
  2. American Samoa
  3. Belarus
  4. Brunei Darussalam
  5. Central African Republic
  6. The Democratic Republic of Congo
  7. Eritrea
  8. Guinea-bissau
  9. Iran
  10. Lebanon
  11. Libiya Arab Jamahriya
  12. Somalia
  13. Sudan
  14. Russian Federation
  15. Syrian Arab Republic
  16. Ukraine
  17. Venezuela
Modal Close icon
Modal Close icon