Asynchronous Messaging with RabbitMQ and EasyNetQ

RabbitMQ is a leading messaging platform and has proven to be a scalable solution that is powering some of our largest enterprises. In this course, you are going to learn how to use the EasyNetQ client library to integrate with RabbitMQ with ease.
Course info
Rating
(41)
Level
Intermediate
Updated
Sep 26, 2018
Duration
1h 50m
Table of contents
Description
Course info
Rating
(41)
Level
Intermediate
Updated
Sep 26, 2018
Duration
1h 50m
Description

RabbitMQ is one of the leading open source messaging platforms available today and has proven to be a stable and highly scalable solution that powers some of our largest enterprises. In this course, Asynchronous Messaging with RabbitMQ and EasyNetQ, you will learn how to use the EasyNetQ client library to integrate with RabbitMQ with ease. First, you will learn how to setup RabbitMQ. Next, you will see two main EasyNetQ usage patterns; publish and subscribe and request and response. Finally, you will explore two more EasyNetQ usage patterns: send and receive, and topic-based publish and subscribe. By the end of this course, you will understand how to get up and running with an asynchronous messaging platform such as RabbitMQ and EasyNetQ.

About the author
About the author

Stephen Haunts is an experienced Software Developer and Leader who has worked across multiple business domains including Computer Games, Finance, and Healthcare Retail and Distribution. Stephen has worked in languages ranging from Assembler, various forms of BASIC, to C and C++, and then finding his love of C# and .NET.

More from the author
Innovation in the Workplace
Beginner
1h 30m
Apr 11, 2019
More courses by Stephen Haunts
Section Introduction Transcripts
Section Introduction Transcripts

Course Overview
Hi everyone, my name is Stephen Haunts, and welcome to my course: Asynchronous Messaging with RabbitMQ and EasyNetQ. I'm a software developer and leader who's worked in many diverse industries, such as video games, financial services, and healthcare over the last 20 years. RabbitMQ is one of the leading open source messaging platforms available to enterprise developers today. RabbitMQ has proven to be a stable, robust, and highly scalable solution, and is powering some of our largest enterprises. As a. NET developer, we have different options for integrating the RabbitMQ. There's the default. NET client library provided by RabbitMQ, and this library is powerful and also quite complicated to use. Another option you see is the EasyNetQ open source library. EasyNetQ allows you to get up and running with RabbitMQ very quickly, and this library is what this course is going to focus on. In this course, we're going to introduce RabbitMQ as a platform, and the EasyNetQ library. We'll be covering some of the following topics. First, we'll look at how to set up RabbitMQ, then we'll explore what RabbitMQ is. I will then walk through and demonstrate how to use the four main usage patterns in EasyNetQ. These are publish and subscribe, request and response, send and receive, and finally, topic-based publish and subscribe. By the end of this course, you'll understand how to get up and running with asynchronous messaging platforms, such as RabbitMQ and EasyNetQ. The techniques you learn in this course will allow you to get up and running immediately, and be very productive. This course is aimed at software developers who are developing using C# and. NET. The examples I demonstrate will be using. NET Core 2 and. NET Standard 2 and above, and using Visual Studio on the Mac. But the IDE doesn't matter, everything I teach is just as relevant under Linux and Windows with. NET Core. Don't use. NET Core in your organization? Then this is not a problem. All of the code I'll demonstrate will work just as well using the. NET Framework, so we have you covered too. If you'd like to compare the default RabbitMQ client library to EasyNetQ before you decide which library you're going to use, then I recommend also watching my course: RabbitMQ by Example. Both that course and this course build up the same example scenario, so you can compare the two libraries. I hope you'll join me on this journey to learn about messaging with RabbitMQ and EasyNetQ with my course, Asynchronous Messaging with RabbitMQ and EasyNetQ, here, at Pluralsight.

Understanding RabbitMQ and EasyNetQ
Hi, my name is Stephen Haunts, and welcome to my course: Asynchronous Messaging with RabbitMQ and EasyNetQ. In this module, we'll introduce what RabbitMQ is, and talk about the underlying AMQP protocol. Throughout this course, instead of using the default client library that comes with RabbitMQ, we're going to explore an alternative client library called EasyNetQ, whose purpose is to make using RabbitMQ easier by using a more opinionated library. Next, we'll start looking at what the AMQP protocol is, and the different exchange types that are available to us, but we'll then finish with a brief high-level overview, what EasyNetQ is, and how it differs from RabbitMQ's client libraries. We'll first compare using the EasyNetQ client library to the standard RabbitMQ client library, and I also recommend watching my other course on Pluralsight called RabbitMQ by Example. Both that course and this course together will give you an excellent way to decide which library is right for you. I've deliberately kept the example scenario the same between the courses so you can compare them easier. First of all, let's look at what RabbitMQ is, and the underlying protocol, AMQP.

Getting up and Running with RabbitMQ and EasyNetQ
Hi, my name is Stephen Haunts, and welcome back to my course: Asynchronous Messaging with RabbitMQ and EasyNetQ. In this module, we're going to talk about getting RabbitMQ set up manually. Then we'll talk about alternative ways of running RabbitMQ. Then we'll do a manual test of our RabbitMQ installation by posting and retrieving a message via the management portal. Then we'll look at the minimum you need to set up a. NET or. NET Core project to access RabbitMQ via EasyNetQ, and then finally, we'll introduce a demo scenario used for the remainder of the course. First, let's talk about setting up RabbitMQ.

Using the Publish and Subscribe Pattern for Notifications
Hi, my name is Stephen Haunts, and welcome back to my course: Asynchronous Messaging with RabbitMQ and EasyNetQ. In this module, we're going to talk about how to connect RabbitMQ using EasyNetQ, using the publish and subscribe model to send messages from a sender to a receiver via RabbitMQ. We'll look at doing this both synchronously and asynchronously. Then we'll talk about using publisher confirmations. Next, we'll discuss using a technique called polymorphic publisher and subscribe, where we can send messages using a common class interface, and have to receive or pick up the correct message handler. Finally, we'll look at how to override EasyNetQs default naming of queues and exchanges. In the first half of this module, I will discuss all the theory upfront. Then in the second half of the module, we'll go over to Visual Studio and run through the demonstrations for everything we have talked about. So let's get started by discussing our first pattern, publisher and subscribe.

Using the Request and Response Pattern for Remote Procedure Calls
Hi, my name is Stephen Haunts, and welcome back to my course: Asynchronous Messaging with RabbitMQ and EasyNetQ. In this module, we're going to talk about performing request and response operations using EasyNetQ. This means that when we send a message, we will be waiting for a response to that message to come back to the client. You can think of this as like a more traditional remote procedure call concept in client server computing. Let's now get started by running through the theory before we close out this module with some code demos.

Using the Send and Receive Pattern for Targeted Messages
Hi, my name is Stephen Haunts, and welcome back to my course: Asynchronous Messaging with RabbitMQ and EasyNetQ. In this module, we're going to talk about using the send and receive pattern, which lets us send different message types over the same named queue. But first, let's quickly recap the patterns we have looked at so far. So far, we have covered the publish and subscribe pattern, and the request and response pattern. With publish and subscribe, we implemented a broadcast system that will broadcast to any listener that is interested. If you remember back to our analogy of someone lost in the forest, if they scream for help when no one is around, then the message is lost forever. They shout and no one hears. If someone is out looking for them and near them, when they shout for help, the rescuer will hear the message and go help. The publish and subscribe pattern is very much the same. It lets you broadcast a message, but it will only be picked up if someone is listening. If there are no receivers registered to your queue, then the message will just disappear and won't be stored. The request and response pattern that we looked at in the previous module allows us to implement a remote procedure called the RPC system, where the client will send a message to RabbitMQ, but will wait for a response to be sent back. This is useful when you need to send a response back for a particular message as soon as possible. The example we use in this course is with Globomantics, you have a debt recovery department, where they'll have a customer on the phone trying to make a payment to clear their debt. As they help the customer on the phone, they'll want to know straightaway if the payment has been successful by seeing if they can get an AuthCode or an error code. By using the request and response pattern like this, it allows them to use the same messaging system as the rest of their payment systems, but have a mechanism to allow them to get an immediate response from their message receiver. What we're going to look at now is another messaging pattern offered by EasyNetQ, which is the send and receive pattern.

Using the Topic Based Routing Pattern for Flexible Routing
Hi, my name is Stephen Haunts, and welcome back to my course: Asynchronous Messaging with RabbitMQ and EasyNetQ. In this module, we are going to talk about using a topic based publisher and subscribe pattern, which allows the subscriber to filter messages based on multiple selection criteria. So let's get started and take a look at topic exchanges in RabbitMQ.