- Periodic Table of Realtime
- /
- Microsoft Azure Service Bus
Microsoft Azure Service Bus
Microsoft Azure is a cloud computing platform. It launched in 2010 and helps developers build and deploy apps, conduct testing, and improve security. It is not a standalone offering, but rather a versatile suite of products.
One underlying aspect of Microsoft Azure is its Service Bus. It’s a messaging-as-a-service solution that allows sending data between decoupled systems, including apps hosted in public and private clouds.
When users send messages to Azure Service Bus, it stores them and shows them to recipients once those entities make pull requests. The notes go to queues and remain there until the designated recipient asks to see them. The first request shows the earliest message in the lineup.
Service Bus does not charge extra for storage. However, there is a default 14-day expiration timeframe for people using the basic tier. Those with standard or premium subscriptions can set their desired TimeToLive values, which changes the days until expiration accordingly.
For queues, topics and brokered messages associated with Standard and Premium plans, the default expiration time is TimeSpan.Max. Keeping that unchanged means messages would take nearly 30,000 years to expire.
This Azure offering also supports publish and subscribe — pub/sub. It allows sending messages to a topic rather than a queue. The advantage here is that multiple people can subscribe to one topic.
As an Azure Service Bus user, you can use both the pub/sub and queue-based approaches, combining them to meet your needs. Your messages can contain JSON, XML data and plain text.
Microsoft Azure Service Bus Features
Microsoft Azure Service Bus offers three pricing tiers — Basic, Standard, and Premium — with respective feature and service levels.
The basic tier only supports queues and scheduled messages.
Standard users experience variable latency and variable throughput, but they have the advantage of pay-as-you-go-pricing.
Premium users can also choose from reactive or preemptive scaling to deal with workload changes. The reactive approach lets you make changes after seeing increases in resources-used metrics. The preemptive option allows allocating additional resources before seeing the impact of more workloads.
The premium option isolates resources at the CPU and memory level. This allows each customer workload to run in isolation. Microsoft refers to each resource container as a messaging unit. You can purchase one, two, four, or eight messaging units for each premium namespace. The namespace is the scoping container for addressing resources within a Service Bus application.
You can also make one workload or entity span numerous messaging units or dynamically adjust the number as needed while using the premium tier. This flexibility aims at consistent Service Bus performance.
Service Bus has a dead letter queue. This is the holding place for undelivered and unprocessed messages. An application can automatically move a message to the DLQ and assign custom definitions for the reason it went there. There are also five system-set values for the DLQ. Investigating those helps users determine what’s going wrong and how to remedy it. Under the hood, Microsoft Service Bus uses the AMQP 1.0 protocol. Unlike RabbitMQ’s AMQP 0-9-1, Microsoft’s approach relies on namespaces, which are “sandboxes that support message authorization and authentication.”
Benefits
Here are some advantages of using Microsoft Azure Service Bus.
High uptime rates: Microsoft achieved more than 99.99% uptime across its global Azure network from July 2018 to July 2019.
Choice of protocol: Azure Service Bus supports sending and receiving messages via AMQP 1.0, SBMP, and HTTP. Microsoft states that AMQP (1.0) is the most efficient because it can maintain connections, and also implements batching and prefetching.
Security: Azure Service Bus offers server-side encryption-at-rest by default. This occurs for both Microsoft and customer-managed keys. People can also use role-based authentication when managing access.
Support for complex message routing: Service Bus allows users to build messaging topologies with complex routing. They can deliver messages to multiple subscribers and fan out delivery to downstream systems at scale to increase availability.
Wide availability: Microsoft claims to have the most global regions of any cloud provider. You can use Azure Service Bus in any of Microsoft’s geographic zones.
Technical support: You can access tutorials that get you acquainted with Service Bus features, setup tips and best practices. Individuals who want more guidance can get it in person from customer support representatives.
Flexible pricing: Microsoft Azure offers flexible payment options without having to make an upfront commitment. The premium tier charges an hourly rate, while the standard and basic levels bill you per million operations. In all cases, you only pay for what you use.
Potential downsides
Users reviewing Service Bus on Microsoft’s Azure Marketplace commented that they’d like better documentation, particularly for the newest API available at that time. However, they made those comments in 2018 — with no later reviews of any kind since then — so things could have changed in the meantime.
Read More:
Recommended Articles
Amazon Kinesis Data Streams
Kinesis Data Streams is a scalable and durable realtime data streaming service.
AWS SNS
SNS is a simple, distributed, cloud-native messaging service.
Apache Kafka vs RabbitMQ vs AWS SNS/SQS: Which message broker is best?
Discover the key considerations for choosing a message broker and how to choose between Apache Kafka, RabbitMQ, and AWS SNS/SQS.