Resursstyrning med programgrupper
Med Azure Event Hubs kan du styra händelseströmningsarbetsbelastningar för klientprogram som ansluter till Event Hubs. Du kan skapa logiska grupper som kallas programgrupper där varje grupp är en samling klientprogram och sedan tillämpa principer för kvot- och åtkomsthantering för en programgrupp (grupp med klientprogram).
Kommentar
Programgrupper är endast tillgängliga på premium - och dedikerade nivåer.
Programgrupper
En programgrupp är en samling av ett eller flera klientprogram som interagerar med Event Hubs-dataplanet. Varje programgrupp kan begränsas till ett enskilt Event Hubs-namnområde eller händelsehubbar (entitet) inom ett namnområde och bör använda ett unikt identifierande villkor, till exempel säkerhetskontexten – signaturer för delad åtkomst (SAS) eller Microsoft Entra-program-ID – för klientprogrammet.
Event Hubs stöder för närvarande användning av säkerhetskontexter för att skapa programgrupper. Därför måste varje programgrupp ha en unik SAS-princip eller ett Microsoft Entra-program-ID som är associerat med dem. Om du vill kan du använda säkerhetskontext på händelsehubbnivå för att använda en programgrupp med en specifik händelsehubb inom ett namnområde.
Programgrupper är logiska entiteter som skapas på namnområdesnivå. Därför behöver klientprogram som interagerar med händelsehubbar inte vara medvetna om att det finns en programgrupp. Event Hubs kan associera alla klientprogram till en programgrupp med hjälp av det identifierande villkoret.
Som du ser nedan kan du skapa programgrupper baserat på säkerhetskontexten som varje klientprogram använder. Därför kan programgrupper sträcka sig över flera klientprogram med samma säkerhetskontext.
Programgrupper har ingen direkt koppling till en konsumentgrupp. Beroende på programgruppsidentifieraren, till exempel säkerhetskontext, kan en konsumentgrupp ha en eller flera programgrupper associerade med den, eller så kan en programgrupp sträcka sig över flera konsumentgrupper.
Det här är nyckelattributen för en programgrupp:
Parameter | Description |
---|---|
name | Unikt namn på en programgrupp. |
clientAppGroupIdentifier | Associera en programgrupp med ett unikt identifierande villkor (t.ex. säkerhetskontext som SAS-princip eller Microsoft Entra-program-ID). |
policies | Lista över principer, till exempel begränsningsprinciper som styr händelseströmning mellan klientprogram och Event Hubs-namnområdet |
isEnabled | Avgör om klientprogrammen för en programgrupp kan komma åt Event Hubs-namnområden eller inte. |
Principer för programgrupper
Varje programgrupp kan innehålla noll eller fler principer som styr åtkomsten till dataplanet för de klientprogram som ingår i programgruppen. Programgrupper stöder för närvarande begränsningsprinciper.
Begränsningsprinciper
Du kan ange begränsningsprinciper med olika ingress- och utgående mått. Programgrupper stöder användning av följande mått för att begränsa ingress- eller utgående arbetsbelastningar för klientprogram.
Parameter | Description |
---|---|
IncomingBytes | Utgivardataflöde i byte per sekund. |
Utgåendebyte | Konsumentdataflöde i byte per sekund. |
IncomingMessages | Antal händelser som publicerats per sekund. |
OutgoingMessages | Antal händelser som förbrukas per sekund. |
När principer för programgrupper tillämpas kan arbetsbelastningen för klientprogrammet sakta ned eller stöta på undantag som är upptagna av servern.
Begränsningsprincip – tröskelvärden
I följande tabell visas minsta tröskelvärdesgränser som du kan ange för olika mått-ID i begränsningsprincipen:
Mått-ID | Minimigräns |
---|---|
IncomingByte | 1 kB |
Utgåendebyte | 1 kB |
IncomingMessage | 1 |
Utgående meddelande | 1 |
Kommentar
Gränser som anges för begränsningsprincipens tröskelvärde skulle ha företräde framför alla värden som angetts för Kafka-ämnesegenskaper. Till exempel IncomingBytes
skulle ha högre prioritet än message.max.bytes
.
Begränsning av programgrupper förväntas begränsas konsekvent högre än tillåtna trafikscenarier (som sträcker sig över några minuter). Snabba trafiktoppar i några sekunder kanske inte påverkas av begränsning via programgrupper. Vi rekommenderar att du tittar på tillåtet dataflöde över tidshorisonten på några minuter för att verifiera begränsningen.
Protokollstöd och felkoder
Programgruppen stöder begränsningsåtgärder som utförs via följande protokoll – AMQP, Kafka och HTTP. I följande tabell visas de förväntade felkoderna som returneras av programgrupper:
Protokoll | Åtgärd | Felkod | Felmeddelande |
---|---|---|---|
AMQP | Skicka | 50004 | SubCode:50013, Programgruppen begränsas med programgrupps-ID och principnamn |
HTTP | Skicka | 503 | Underkod: 50013. Programgruppen begränsas med programgrupps-ID och principnamn |
Kafka | Skicka | PolicyViolation | Broker: principöverträdelse |
På grund av begränsningar på protokollnivå stöds inte felmeddelanden under mottagningsåtgärden. När programgrupper begränsar mottagningsåtgärder skulle du uppleva en långsam förbrukning av meddelanden på konsumentsidan.
Inaktivera programgrupper
Programgruppen är aktiverad som standard och det innebär att alla klientprogram kan komma åt Event Hubs-namnområdet för publicering och användning av händelser genom att följa programgruppsprinciperna.
När en programgrupp är inaktiverad kan klienten fortfarande ansluta till händelsehubben, men auktoriseringen misslyckas och klientanslutningen stängs. Därför visas många lyckade öppna och stänga anslutningar med samma antal auktoriseringsfel i diagnostikloggarna.
Nästa steg
Anvisningar om hur du skapar och hanterar programgrupper finns i Resursstyrning för klientprogram med Hjälp av Azure-portalen