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.

Image showing capturing of Event Hubs data into Azure Storage or Azure Data Lake Storage.

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