Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Shared subscriptions in Azure Event Grid MQTT Broker zijn een messaging pattern waarmee meerdere clients berichten uit één onderwerpabonnement als groep kunnen gebruiken, zodat de broker berichten op een taakverdeling kan distribueren. In plaats van elke abonnee die elk bericht ontvangt, ontvangt slechts één client binnen de gedeelde groep elk bericht, waardoor de schaalbaarheid en doorvoer voor back-endverwerkingssystemen wordt verbeterd.
Hoe gedeelde abonnementen werken
In een standaard MQTT-abonnement ontvangt elke geabonneerde client een kopie van elk bericht. Met gedeelde abonnementen behandelt de broker een groep clients als één logische abonnee en distribueert deze berichten.
- Elk toepassingsbericht dat overeenkomt met het gedeelde filter wordt slechts aan één actieve sessie binnen de groep geleverd
- Distributie wordt doorgaans op een willekeurige basis in de groep verdeeld.
- Een clientsessie kan zowel gedeelde als niet-gedeelde abonnementen tegelijk bevatten
- Meerdere groepen kunnen zich afzonderlijk abonneren op hetzelfde onderwerp
Indeling van gedeeld abonnementsonderwerp
Gedeelde abonnementen gebruiken de volgende indeling:
$share/{group-name}/{topic-filter}
Onderdelen:
-
$share→ Identificeert een gedeeld abonnement -
{group-name}logische consumentengroep → → Abonnement op onderwerp of jokerteken
Example:
$share/order-processors/retail/orders/#
Belangrijkste kenmerken
- Verbruik met gelijke taakverdeling: berichten worden verdeeld over clients in dezelfde groep om een efficiënte verwerking te garanderen.
- Horizontale schaalbaarheid: consumenten kunnen onafhankelijk uitbreiden zonder invloed te hebben op uitgevers.
- Onafhankelijke consumptiegroepen: meerdere gedeelde groepen ontvangen dezelfde berichten onafhankelijk terwijl ze intern in balans worden gehouden.
- Ondersteuning voor gemengde abonnementen: een client kan zowel gedeelde als niet-gedeelde abonnementen in dezelfde sessie onderhouden.
Voorbeeldscenario: Verwerking van retailorders
Overweeg een scenario voor het verwerken van retailorders met Event Grid MQTT Broker:
- Onderwerp:
retail/orders - Gedeelde groep:
order-workers - Klanten: Worker1, Worker2, Worker3
Stroom:
- Orders worden gepubliceerd naar
retail/orders - Alle werknemers abonneren zich op:
$share/order-workers/retail/orders - Event Grid MQTT Broker distribueert:
- Bestelling 1 → Worker1
- Volgorde 2 → Worker2
- Volgorde 3 → Worker3
Elke order wordt eenmaal verwerkt, terwijl het systeem horizontaal wordt geschaald.
Protocolgedrag en -beperkingen
Ondersteuning voor MQTT-versie
- Alleen voor MQTT 5-functie
- MQTT 3.1.1-clients die proberen
$share/...zullen worden verbroken
Semantiek voor berichtbezorging
- Elk bericht wordt bezorgd bij één client per groep
- Levering volgt de at-least-once semantiek (QoS 1)
Berichtvolgorde
- Geen strikte bestelgarantie voor groepsleden
Sessiegedrag
- Sessieverloop is van invloed op de bezorging van berichten:
- Als een client de verbinding verbreekt en de sessie verloopt, kunnen berichten opnieuw worden toegewezen
- Permanente sessies verbeteren de betrouwbaarheid
Toepassingsgevallen in Event Grid MQTT Broker
Gedeelde abonnementen zijn ideaal voor:
- IoT-telemetrieverwerking met hoge doorvoer: telemetrie of gebeurtenissen distribueren over meerdere verwerkingsservices.
- Back-endwerkrolgroepen/microservices: schakel stateless services in om gebeurtenissen zonder duplicatie te verwerken.
- Uns-gebruikers (Unified Namespace): verbruik efficiënt industriële gegevensstromen met hoge doorvoer.
Wanneer u gedeelde abonnementen gebruikt
Gedeelde abonnementen gebruiken wanneer:
- U hebt parallelle berichtverwerking nodig.
- Een enkele gebruiker kan de belastingscapaciteit niet verwerken.
- U wilt schaalbare en flexibele architecturen.
- U wilt voorkomen dat u aangepaste load balancing implementeert.