Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Shared-prenumerationer i Azure Event Grid MQTT Broker är ett meddelandemönster som gör det möjligt för flera klienter att använda meddelanden från en enskild ämnesprenumeration som en grupp, vilket gör att mäklaren kan distribuera meddelanden mellan klienter på ett belastningsutjämningsmässigt sätt. I stället för att varje prenumerant får varje meddelande får endast en klient i den delade gruppen varje meddelande, vilket förbättrar skalbarheten och dataflödet för serverdelsbearbetningssystem.
Så här fungerar delade prenumerationer
I en MQTT-standardprenumeration får varje prenumerationsklient en kopia av varje meddelande. Med delade prenumerationer behandlar mäklaren en grupp klienter som en enda logisk prenumerant och distribuerar meddelanden mellan dem.
- Varje programmeddelande som matchar det delade filtret levereras endast till en aktiv session i gruppen
- Distributionen är vanligtvis slumpmässigt belastningsutjämnad inom gruppen
- En klientsession kan innehålla både delade och icke-delade prenumerationer samtidigt
- Flera grupper kan prenumerera på samma ämne oberoende av varandra
Ämnesformat för delad prenumeration
Delade prenumerationer använder följande format:
$share/{group-name}/{topic-filter}
Komponenter:
-
$share→ Identifierar en delad prenumeration -
{group-name}→ logisk konsumentgrupp -
{topic-filter}→ Ämnes- eller wildcardprenumeration
Example:
$share/order-processors/retail/orders/#
Viktiga egenskaper
- Belastningsutjämning: Meddelanden distribueras mellan klienter i samma grupp för att säkerställa effektiv bearbetning.
- Horisontell skalbarhet: Konsumenter kan skala ut oberoende utan att påverka utgivare.
- Oberoende konsumentgrupper: Flera delade grupper får samma meddelanden oberoende av varandra samtidigt som de balanserar internt.
- Stöd för blandade prenumerationer: En klient kan underhålla både delade och icke-delade prenumerationer i samma session.
Exempelscenario: Bearbetning av detaljhandelsorder
Överväg ett scenario för bearbetning av detaljhandelsorder med Event Grid MQTT Broker:
- Ämne:
retail/orders - Delad grupp:
order-workers - Klienter: Worker1, Worker2, Worker3
Flöde:
- Beställningar publiceras till
retail/orders - Alla arbetare prenumererar på:
$share/order-workers/retail/orders - Event Grid MQTT Broker distribuerar:
- Ordning 1 → Arbetare1
- Beställning 2 → Arbetskraft2
- Beställning 3 → Worker3
Varje order bearbetas en gång, medan systemet skalas vågrätt.
Protokollbeteende och begränsningar
Stöd för MQTT-version
- Funktion endast för MQTT 5
- MQTT 3.1.1-klienter som försöker
$share/...kommer att kopplas från
Semantik för meddelandeleverans
- Varje meddelande levereras till en klient per grupp
- Leverans följer minst-en-gång-principen (QoS 1)
Meddelandeordning
- Ingen strikt beställningsgaranti för gruppmedlemmar
Sessionsbeteende
- Sessionsförfallodatum påverkar meddelandeleveransen:
- Om en klient kopplas från och sessionen upphör att gälla kan meddelanden omtilldelas
- Beständiga sessioner förbättrar tillförlitligheten
Användningsfall i Event Grid MQTT Broker
Delade prenumerationer är idealiska för:
- IoT-telemetribearbetning med högt dataflöde: Distribuera telemetri eller händelser över flera bearbetningstjänster.
- Arbetarpooler för backend/mikrotjänster: Möjliggör att tillståndslösa tjänster kan bearbeta händelser utan dubbletter.
- Användare av enhetligt namnområde (UNS): Förbrukar effektivt industriella dataströmmar med högt dataflöde.
När du ska använda delade prenumerationer
Använd delade prenumerationer när:
- Du behöver parallell meddelandebearbetning.
- En enskild konsument kan inte hantera belastningen.
- Du vill ha skalbara och motståndskraftiga arkitekturer.
- Du vill undvika att skapa anpassad belastningsutjämning.