Azure Architect Notes: Azure Service Bus

This post is the first in a series called Azure Architect Notes. I will provide an overview of different Azure topics from an architect perspective with lots of references. Please suggest topics in the comments.

“Service Bus supports two distinct messaging patterns: Azure Relay and Service Bus Messaging.”Source

Azure RelayThere are 2 main things to know about Azure Relay.

  1. Azure Relay is synchronous, bi-directional communication similar to a phone call. Both entities need to be online at the same time.
  2. It is great for facilitating connections between the cloud and on-prem because you don’t have to open the firewall for incoming traffic. Both servers establish outgoing connections to the Relay and then communication can happen without enabling incoming traffic through the firewall.

Read more on Azure Relay

 

Service BusIn contrast to Azure Relay, Service Bus Messaging can be thought of as asynchronous, similar to the postal service. “Producers” and “consumers” do not have to be online at the same time. The main components are Queues, Topics, and Subscriptions.

Read more on Service Bus Messaging

Queues offer First In, First Out (FIFO) message delivery to one or more competing consumers. That is, messages are typically expected to be received and processed by the receivers in the order in which they were added to the queue, and each message is received and processed by only one message consumer.” – Source

Architect Pattern to Know: Queue-Based Load Leveling

queue based load leveling pattern

“Requests from a number of tasks, which can be generated at a highly variable rate, can be passed to the service through the same message queue. This figure shows using a queue to level the load on a service.” – Source

Architect Pattern to Know: Competing Consumers

competing-consumers-diagram

“Enable multiple concurrent consumers to process messages received on the same messaging channel. This enables a system to process multiple messages concurrently to optimize throughput, to improve scalability and availability, and to balance the workload.” – Source

“In contrast to queues, in which each message is processed by a single consumer, topics and subscriptions provide a one-to-many form of communication, in a publish/subscribe pattern. Useful for scaling to very large numbers of recipients, each published message is made available to each subscription registered with the topic.” – Source

Architect Pattern to Know: Priority Queue

priority-queue-service-bus

“Microsoft Azure doesn’t provide a queuing mechanism that natively supports automatic prioritization of messages through sorting. However, it does provide Azure Service Bus topics and subscriptions that support a queuing mechanism that provides message filtering, together with a wide range of flexible capabilities that make it ideal for use in most priority queue implementations.” – Source

Azure Service Bus References

Announcing The Philly Azure Meetup Group

azure-icon-250x250I am happy to announce the creation of the Philly Azure Meetup Group!

This is a group for anyone who works with, uses, or wants to learn more about Microsoft Azure. From Architects to developers to IT Pros to users and consumers, we will support anyone. There will be meetings every month or two. Topics will range from beginner to expert. We will meet in person at the Microsoft Philly MTC and stream worldwide on Mixer.

Our first meeting is scheduled for 12/5 at 6:30pm at the Microsoft MTC in Malvern. Please join the Meetup group and RSVP there.

Session 1: Rufus Harvey – Introduction to Azure Cloud Development for Developers and Architects

“We will address how to get started deploying your enterprise applications to the cloud today. By taking an existing ASP.NET MVC application and deploying it to the cloud, we will learn what is required to go beyond “Hello World”. Along the way we will discover some of the pitfalls and lessons learned so that our application is positioned to grow as the demand grows. Walking away, you should feel ready to jump in and start planning your resource deployment needs.”

Session 2: Tim Ferro – Azure Service Bus and Azure Relay (if time permits)

Group Links