Używanie kolejek Azure Storage

Programowanie dla Azure Storage

Shahzad Mian

Content Developer, DataCamp

Wprowadzenie do kolejek magazynu

  • Kolejki magazynu to usługa kolejkowania wiadomości.
  • Aplikacje często obsługują wiele żądań jednocześnie.
  • Oczekiwanie na zakończenie każdego procesu może spowalniać systemy.
  • Kolejki Azure Storage umożliwiają asynchroniczną komunikację między komponentami.
  • Komunikacja asynchroniczna pomaga zachować szybkość i skalowalność.

Kolejka magazynu jako rozwiązanie problemów

Programowanie dla Azure Storage

Wyzwania w rzeczywistym świecie

Problem i rozwiązanie w przypadku nagromadzenia zamówień

  • Sklep internetowy Cipher Coffee otrzymuje setki zamówień jednocześnie.
  • Bez kolejek każde zamówienie musiałoby czekać na zakończenie poprzedniego.
  • Kolejki pozwalają na natychmiastowe przyjmowanie zamówień, a przetwarzanie odbywa się później.
  • Dzięki temu witryna działa szybko, a klienci są zadowoleni.
Programowanie dla Azure Storage

Czym jest kolejka?

  • Kolejka to lista oczekujących wiadomości do przetworzenia.
  • Wiadomości są przetwarzane w kolejności: pierwsze weszło, pierwsze wyszło.
  • Każda wiadomość reprezentuje małą jednostkę pracy.
  • Po przetworzeniu wiadomość jest usuwana z kolejki.

Grafika kolejki

Programowanie dla Azure Storage

Jak działają kolejki Azure Storage

Wyjaśnienie kolejki

  • Kolejki Azure Storage są częścią konta magazynu.
  • Wiadomości mogą mieć do 64 KB i są trwale przechowywane.
  • Aplikacje mogą:
    • Wysyłać wiadomości do kolejki.
    • Odbierać i przetwarzać wiadomości.
    • Usuwać wiadomości po zakończeniu.
  • Wiadomości są zachowywane nawet po restarcie systemu.
Programowanie dla Azure Storage

Asynchroniczny przepływ pracy

 

 

Asynchroniczny przepływ pracy

  • Nadawca dodaje wiadomość, np. "Przetwórz płatność dla Order 2045"
  • Usługa w tle, np. Azure Function, pobiera wiadomość.
  • Po pomyślnym przetworzeniu wiadomość jest usuwana.
  • Ten wzorzec zapewnia skalowalność i responsywność pod obciążeniem.
Programowanie dla Azure Storage

Cipher Coffee w praktyce

  • Witryna Cipher Coffee wysyła wiadomość o zamówieniu do kolejki.
  • System realizacji zamówień odczytuje wiadomość z kolejki.
  • Wiadomość wyzwala aktualizacje bazy danych i systemu płatności.
  • Baristowie są powiadamiani bez spowalniania kasy.

Proces zamówienia

Programowanie dla Azure Storage

Zalety kolejek

  • Rozdzielenie: Systemy działają niezależnie.
  • Skalowalność: Dodaj procesy robocze, aby przyspieszyć przetwarzanie.
  • Niezawodność: Wiadomości są zachowywane nawet podczas przestoju.
  • Integracja: Współpracuje z Azure Functions i Logic Apps.

Niezależny system

Skalowalny system

Niezawodny system

Screenshot 2025-10-27 at 5.42.20 pm.png

Programowanie dla Azure Storage

Cykl życia wiadomości

Screenshot 2025-10-27 at 5.48.34 pm.png

  • Wiadomości przechodzą przez trzy główne etapy:
    • Enqueue: Wiadomość jest dodawana do kolejki.
    • Dequeue: Proces roboczy pobiera wiadomość do przetworzenia.
    • Delete: Wiadomość jest usuwana po pomyślnym przetworzeniu.
  • Nieprzetworzone wiadomości automatycznie pojawiają się ponownie.
Programowanie dla Azure Storage

Typowe przypadki użycia

  • Przetwarzanie zamówień i rozliczenia w tle.

Ikona zamówienia

  • Wysyłanie powiadomień e-mail.

Ikona poczty

  • Buforowanie telemetrii IoT.

Ikona IoT

  • Zbieranie logów i potoki zdarzeń.
    • Używaj kolejek do niezależnych operacji z obsługą ponowień.
    • Wiele innych
Programowanie dla Azure Storage

Kolejki vs Service Bus

  • Azure Service Bus jest używany do zaawansowanych scenariuszy przesyłania wiadomości.
  • Service Bus obsługuje:
    • Kolejność wiadomości i sesje.
    • Transakcje oraz tematy i subskrypcje.
  • Azure Storage Queues są prostsze i bardziej ekonomiczne dla lekkich obciążeń.
  • Cipher Coffee używa kolejek do przetwarzania zamówień i aktualizacji w czasie rzeczywistym.

Screenshot 2025-10-27 at 6.13.37 pm.png

Programowanie dla Azure Storage

Czas na ćwiczenia!

Programowanie dla Azure Storage

Preparing Video For Download...