Introductie tot Azure Service Bus

Event- en berichtgebaseerde oplossingen ontwikkelen met Azure

Fiodar Sazanavets

Senior Software Engineer and Microsoft MVP

Queue Storage vs Service Bus

Queue Storage

  • Simpele takenlijst
  • Geen geavanceerde features
  • Elk bericht één keer verwerkt

Service Bus

  • Enterprise-berichtenservice
  • Sterkere aflevergarantie
  • Rijkere routing
  • Coördinatiefuncties
  • Meerdere consumers mogelijk

Queue Storage

Service Bus

Event- en berichtgebaseerde oplossingen ontwikkelen met Azure

Service Bus-queues

  • Point-to-point:
    • Zodra de producer een bericht stuurt
    • Neemt één consumer het op
    • Bericht één keer verwerkt
  • Vergelijkbaar met hoe Queue Storage werkt

Service Bus-logo

Event- en berichtgebaseerde oplossingen ontwikkelen met Azure

Service Bus-topics

  • Publish-subscribe-model
    • Meerdere producers sturen berichten
    • Meerdere consumers kunnen hetzelfde bericht ontvangen
  • Elke subscription kan filteren:
    • Elke subscription krijgt wat relevant is
  • Een queue is als één inbox
  • Een topic is als een mailinglijst

Service Bus-topic

Event- en berichtgebaseerde oplossingen ontwikkelen met Azure

Betrouwbaarheid van berichten

  • Ingebouwde betrouwbaarheid:
    • Fouten worden {{2}} afgehandeld
    • Automatische retries
  • Dead-letterqueue:
    • Gereserveerd voor mislukte berichten
    • Berichten zijn te onderzoeken

Berichtbetrouwbaarheid

Event- en berichtgebaseerde oplossingen ontwikkelen met Azure

Duplicaatdetectie

  • Duplicaatdetectie voorkomt dubbele verwerking.

  • Als een zender opnieuw probeert en hetzelfde bericht nog eens komt, wordt het gezien aan de message ID.

  • Duplicaten worden verworpen binnen een ingestelde tijdsvenster.

  • Zo bereik je bijna exactly-once processing ondanks netwerk-retries.

Service Bus-duplicaatdetectie

Event- en berichtgebaseerde oplossingen ontwikkelen met Azure

Geordende verwerking

Service Bus-sessies

  • Service Bus-sessies maken geordende verwerking mogelijk.

  • Gerelateerde berichten delen een Session ID (bijv. alle updates voor dezelfde order).

  • Elke sessie gaat naar één consumer tegelijk.

  • Volgorde blijft binnen een sessie behouden; de consumer kan lichte state bijhouden.

  • Meerdere sessies kunnen parallel lopen, elk blijft geordend.

Event- en berichtgebaseerde oplossingen ontwikkelen met Azure

Laten we oefenen!

Event- en berichtgebaseerde oplossingen ontwikkelen met Azure

Preparing Video For Download...