Kolejny krok, który przed nami stoi, to wybór kolejki. W naszym wypadku jest on bardzo łatwy – > „Azure Storage Queue”. Tanio a dobrze 🙂
Nie jest to jednakże jedyna dostępna opcja i warto jest poznać inne alternatywy zaczynając pracę z rozwiązaniami typu serwerless. W tym poście przedstawię więc plusy i minusy poszczególnych rozwiązań.
Azure Storage Queue
Jeżeli wykorzystujesz asynchroniczną komunikację, Twoim pierwszym wyborem będzie zapewne Azure Storage Queue. Kolejka ta ma takie cechy jak:
- Domyślna opcja jako komunikacja Azure Funtions
- Niska cena
- Rozmiar wiadomości jest mniejszy niż 64kb
- Wiadomości nie mają zagwarantowanego porządku, w którym przyjdą.

Queue Storage | Microsoft Azure
Get started today with Azure Premium Storage for low latency and high throughput storage suitable for I/O intensive…
azure.microsoft.com
Service Bus
Jeśli szukamy niezawodnego rozwiązania dla kolejki i pub-sub z niezawodnością, możesz wybrać ServiceBus. Poniższe zdjęcie przedstawia Queue and Pub-Sub.

Kolejka to prosta usługa przesyłania wiadomości, która służy do ich asynchronicznego wysyłania. Jak jednak dokładnie działa ona w praktyce? Funkcja wysyła wiadomość, a następnie inna funkcja odpytuje kolejkę, aby w końcu pobrać wiadomość. Jednakże, rozwiązanie to ma swoje wady. Ze względu na odpytywanie naszej kolejki o coraz to nowe elementy, sposób ten nie należy do najszybszych.
Jeśli chodzi o publish-subscribe, odbiorca wiadomości jest subskrybentem, który subskrybuje „topic”. Jeśli „topic” otrzyma wiadomość, wysyła wiadomość do subskrybentów.
Service Bus ma takie cechy jak:
- Kolejka obsługuje Publish-Subscribe
- Asynchroniczna usługa przesyłania wiadomości
- Rozmiar wiadomości jest mniejszy niż 256k
- Gwarancja kolejności wiadomości, które się pojawiają.
Właśnie ze względu na te cechy Service Bus przydaję się przede wszystkim w takich obszarach jak Finanse oraz Bankowosć

Azure Service Bus-Cloud Messaging Service
azure.microsoft.com
Keep connected with Azure Service Bus, a cloud messaging system for connecting apps and devices across public and…
Event Grid

Event Grid jest ciekawą usługą o następujących cechach.
- Milisekundowe opóźnienie
- Publish-Subscribe
- Niska cena
- Obsługa wielu źródeł zdarzeń
Użyj Event Grida gdy:
- Potrzebujesz niskiego opóźnienia przy asynchronicznym przesyłaniu wiadomości
- Obsługi zdarzeń z różnych źródeł

Azure Event Grid – Event Handling
Explore a fully managed publish-subscribe event handler. This pay-as-you-go service scales up as your needs expand, in…
azure.microsoft.com
EventHub / IoTHub
Jeżeli chcesz przetworzyć bardzo dużą liczbę wiadomości to najlepszym wyborem będzie EventHub lub IoTHub

Event Hubs – Cloud big data solutions
Learn about Azure Event Hubs, a managed service that can intake and process massive data streams from websites, apps…
azure.microsoft.com

Manage billions of IoT devices to with Azure IoT Hub, an open cloud platform that makes it easy to connect, monitor…
azure.microsoft.com
Dodatkowo artykuły, które warto przeczytać:

Processing 100,000 Events Per Second on Functions
Customers often ask us about the scalability/throughput limits of the consumption plan for Azure Functions. The short…
blogs.msdn.microsoft.com

In order event processing with Azure Functions
I met with a customer this week who was interested in using serverless but didn’t know if it would work for their…
medium.com
SignalR Service
To rozwiązanie nie jest asynchroniczne, zatem jego zasada działania jest nieco inna. Jeżeli jednak potrzebujesz komunikacji dwukierunkowej jako serwer do klienta to SignalR będzie dla Ciebie dobrym wyborem. Opiera się on o websocket oraz – co ważniejsze – jest skalowalny. Jeśli jesteś stałym Czytelnikiem lub Czytelniczką mojego bloga to na pewno dostrzegasz już w tym dużą zaletę 🙂

SignalR Service – Real time web | Microsoft Azure
Azure SignalR Service makes it easy to build and manage real-time web applications.
azure.microsoft.com
Notification Hub
Ostatni przykład to Notification Hub, który jest używany do wprowadzania powiadomień mobilnych push. Właśnie dlatego, jeżeli chcesz komunikować się z wieloma urządzeniami, będzie to dla Ciebie najlepsze rozwiązanie.

Notification Hubs – Mobile push notifications
Learn about Azure Notification Hubs. Send push notifications to iOS, Android, Windows, or Kindle from any backend…
azure.microsoft.com
A to dopiero początek…
Podsumowując, powyższe przykłady stanowią jedynie wprowadzenie w możliwości, jakie daje nam Azure. Ten krótki poradnik daje nam jednak ważny punkt zaczepienia pozwalający łatwiej zdecydować ,czego użyć w środowisku produkcyjnym. Ta wiedza jest wystarczająca, aby zacząć kolejny krok i połączyć kolejki z Azure Functions
Poniżej artykuły, które również opisują różnice w wyborze kolejki.

Azure Storage queues and Service Bus queues compared and contrasted
In this article This article analyzes the differences and similarities between the two types of queues offered by…
docs.microsoft.com

Azure messaging services comparison
Compares Azure Event Grid, Event Hubs, and Service Bus. Recommends which service to use for different scenarios.
docs.microsoft.com
Wpis powstał dzięki firmie www.hued.me
Azure Azure Storage Event Grid Event Hub Functions Hued.me IoTHub Kurs Notification Hub Queue Service Bus SignalR
Last modified: 10 maja 2022