Course info
Aug 15, 2016
2h 44m

In this course, RabbitMQ by Example, you will see how to use RabbitMQ by using practical examples featuring a fictional company and a software development scenario based around taking card payments and purchase order payments. You'll start with an introduction to RabbitMQ and how it compares to Windows' default queue technology, MSMQ. As well as looking at RabbitMQ specifically, you will look at message queuing architectures, micro services, and how RabbitMQ can work as a broker for handling asynchronous and synchronous messages in this architecture. You will also get to explore the use of the topics exchange for routing and synchronous remote procedure calls. By the end of this course, you'll be ready to use RabbitMQ in your .NET applications.

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
Blockchain – Principles and Practices
2h 41m
14 Feb 2018
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, RabbitMQ by Example. I'm a software developer and reader who's worked across many diverse industries, such as video games, financial services, health care, and insurance over the last 20 years. And I have extensive experience in building enterprise systems with message queueing at the heart of their operation. RabbitMQ is an open-source messaging system that allows you to integrate applications together using messages and queues. RabbitMQ Server is a message broker that acts as a message coordinator for applications that you want to integrate together. This means you can give your systems a column platform for sending and receiving messages. We'll be covering some of following topics. First, we'll introduce RabbitMQ and go download some of its features. Then, we'll look more deeply at the AMQP messaging protocol and the message exchange types offered by RabbitMQ. We'll then look at message queueing and Micro service architectures in general. Build up a working example that builds an asynchronous Micro services payment system, built using RabbitMQ and web API. By the end of this course, you'll gain practical experience using RabbitMQ to produce both synchronous and asynchronous systems, using a variety of exchange patterns offered by the advanced message queueing protocol. You'll be able to confidently install, configure, and programmatically push messages onto queues, root the messages, and read them back off the queues again. This course's idea of software developers, you work on large and small enterprise systems that require the use of message queueing to offer variability, scalability, and high availability. The examples in this course are based around a. NET Framework and C# and are built using Visual Studio 2015 Community Edition. I hope you will join me on this journey to learn RabbitMQ with the RabbitMQ by Example course here at Pluralsight.

Introducing RabbitMQ
Hi, my name is Stephen Haunts, and welcome back to my course, RabbitMQ By Example. In this module we're going to cover the following subjects. First, we'll introduce RabbitMQ, the open source message queuing system. We will then compare RabbitMQ to MSMQ, which is the default message queuing technology built into Windows. Then I'll do a quick demo using the RabbitMQ management portal to give you a quick flavor of what RabbitMQ is all about. So, what is RabbitMQ? Let's take a look.

Introducing RabbitMQ Exchanges
Hi my name is Stephen Haunts, and welcome back to my course RabbitMQ by Example. In this module we'll start exploring the AMQP Protocol, which stands for the Advanced Message Queuing Protocol. It's the main protocol that RabbitMQ implements. Through this we'll introduce a concept of messaging exchanges in the following patterns. The Direct exchange, the Fanout exchange, Topic exchange, and the Headers exchange. We'll also talk about the queues that connect to the exchanges, the bindings, consumers and message acknowledgements. Once we've explored the AMQP protocol, and the different exchange types, we'll then start looking at some code demonstrations that will show you how to set up these exchanges and queues programmatically, then publish and consume messages from those queues.

Understanding Queueing Architecture
Hi, my name is Stephen Haunts and welcome back to my course RabbitMQ by Example. In this module, we will focus on message queueing as an architectural pattern. I will not discuss any particular vendor specifically like RabbitMQ. By the time you finish watching this module, you'll have a very good understanding of what message queueing is and how it applies to a typical enterprise application. Next, we'll also put special focus on microservice architectures as this is a very common trend and tools like RabbitMQ and other queueing systems are used to make these architectures a reality. Next, we'll look at service autonomy. Then we'll look at the benefits of microservices and then finally we'll look at asynchronous microservices and how message queueing is used to achieve these. This module will give you all the background information you need so that we can start discussing Selmasoft's proposed architecture in the next module. Let's start by looking at message queueing as an architectural pattern.

Implementing Microservices and Message Queuing
Hi, my name is Stephen Haunts, and welcome back to my course, RabbitMQ By Example. Now that we have taken a look at some of the exchange types, and taken a more detailed look at the message queuing and mark services in general, let's now take a more detailed look at the solution that Selmasoft wants to build. In this module, we'll take a look at the high level design and explore what this means for their requirements. And then we'll start to build out the codes to support this solution. We'll finish with a quick demo of all the supporting code in Visual Studio ready for us to plug in RabbitMQ. Let's get started by reminding ourselves what it is that Selmasoft wishes to build.

Installing and Configuring RabbitMQ
Hi, my name is Stephen Haunts. And welcome back to my course, RabbitMQ by Example. In the last module, we took a look at the foundation code needed to allow our fictitious company, Selmasoft, to build their queuing solution for taking payments and purchase orders. In this module, I want to walk through the installation process for RabbitMQ and its prerequisites. By the end of this module, we'll have installed RabbitMQ, the Erlang runtime, and also configured the RabbitMQ management console. I deliberately left installation till later in the course so that we could dive in with some examples of practical usage first. If you don't have RabbitMQ installed already, then this module will guide you through that setup. If you already have RabbitMQ installed and the management portal configured, then you can skip this module. Let's get started with the basic RabbitMQ installation.

Implementing the Queuing Code
Hi, my name is Stephen Haunts. Welcome back to my course 5010 Queue by Example. Now we have everything we need to start connecting up our web API and full consumer console applications to RabbitMQ to start building out a SelmaSoft product. In this module we'll focus on two messaging patterns for the payment scenario. This is the topics pattern for asynchronous messages and remote procedure calls for synchronous messages. When dealing with a topics pattern, we'll have multiple receivers that the messages can be routed to. This includes a card processor itself, a purchase order processor, and an accounting auditing system. We'll demonstrate how using topics to route, we can send messages to different systems. we'll also talk about remote procedure calls but an instant call payment request can be made and a success code and off code is passed straight back through RabbitMQ to the clients. This synchronous pattern isn't perfect for all situations as you can have scalability issues, but if you need to make a payment and get an instant reply, then it's a very useful pattern to use. Let's start off by looking in more detail with a topic exchange.