Uppdatera meddelandeenheter i ett Azure Service Bus-namnområde automatiskt
Med autoskalning kan du ha rätt mängd resurser som körs för att hantera belastningen på ditt program. Det gör att du kan lägga till resurser för att hantera ökad belastning och även spara pengar genom att ta bort resurser som är inaktiva. Mer information om autoskalningsfunktionen i Azure Monitor finns i Översikt över autoskalning i Microsoft Azure .
Service Bus Premium-meddelanden ger resursisolering på processor- och minnesnivån så att varje kunds arbetsbelastning körs i isolering. Den här resurscontainern kallas för en meddelandefunktionsenhet. Mer information om meddelandeenheter finns i Service Bus Premium Messaging.
Genom att använda autoskalningsfunktionen för Service Bus Premium-namnområden kan du ange ett lägsta och högsta antal meddelandeenheter och lägga till eller ta bort meddelandeenheter automatiskt baserat på en uppsättning regler.
Du kan till exempel implementera följande skalningsscenarier för Service Bus-namnområden med funktionen Autoskalning.
- Öka meddelandeenheterna för ett Service Bus-namnområde när processoranvändningen för namnområdet överstiger 75 %.
- Minska meddelandeenheterna för ett Service Bus-namnområde när processoranvändningen för namnområdet understiger 25 %.
- Använd fler meddelandeenheter under kontorstid och färre under lediga timmar.
Den här artikeln visar hur du automatiskt kan skala ett Service Bus-namnområde (uppdatera meddelandeenheter) med hjälp av Azure Portal och en Azure Resource Manager-mall.
Viktigt!
Den här artikeln gäller endast premiumnivån för Azure Service Bus.
Konfigurera med hjälp av Azure-portalen
I det här avsnittet får du lära dig hur du använder Azure Portal för att konfigurera automatisk skalning av meddelandeenheter för ett Service Bus-namnområde.
Inställningssida för autoskalning
Följ först de här stegen för att gå till sidan Autoskalningsinställningar för Service Bus-namnområdet.
Logga in på Azure-portalen.
I sökfältet skriver du Service Bus, väljer Service Bus i listrutan och trycker på RETUR.
Välj ditt premiumnamnområde i listan med namnområden.
Växla till sidan Skala .
Manuell skala
Med den här inställningen kan du ange ett fast antal meddelandeenheter för namnområdet.
På sidan Autoskalningsinställning väljer du Manuell skalning om den inte redan är markerad.
För inställningen Meddelandeenheter väljer du antalet meddelandeenheter i listrutan.
Spara inställningen genom att välja Spara i verktygsfältet.
Anpassad autoskalning – standardvillkor
Du kan konfigurera automatisk skalning av meddelandeenheter med hjälp av villkor. Det här skalningsvillkoret körs när inget av de andra skalningsvillkoren matchar. Du kan ange standardvillkoret på något av följande sätt:
- Skala baserat på ett mått (till exempel cpu- eller minnesanvändning)
- Skala till ett specifikt antal meddelandeenheter
Du kan inte ange ett schema för autoskalning på ett visst dagar eller datumintervall för ett standardvillkor. Det här skalningsvillkoret körs när inget av de andra skalningsvillkoren med scheman matchar.
Kommentar
För att förbättra dataflödet för mottagning behåller Service Bus vissa meddelanden i cacheminnet. Service Bus trimmar endast cacheminnet när minnesanvändningen överskrider ett visst högt tröskelvärde, t.ex. 80 %. Så om en entitet skickar meddelanden men inte tar emot dem cachelagras dessa meddelanden och återspeglas i ökad minnesanvändning. Normalt innebär detta att det inte finns något att oroa sig för, eftersom Service Bus trimmar cachen om det behövs, vilket så småningom gör att minnesanvändningen går ner. Därför rekommenderar vi att du bara skalar upp när minnesanvändningen når 90 %. Dessutom rekommenderar vi att du inte skalar ned så länge minnesanvändningen inte understiger 90 %.
Skala baserat på ett mått
Följande procedur visar hur du lägger till ett villkor för att automatiskt öka meddelandeenheter (skala ut) när CPU-användningen är större än 75 % och minska meddelandeenheterna (skala in) när CPU-användningen är mindre än 25 %. Steg görs från 1 till 2, 2 till 4, 4 till 8 och 8 till 16. På samma sätt görs minskningar från 16 till 8, 8 till 4, 4 till 2 och 2 till 1.
På sidan Autoskalningsinställning väljer du Anpassad automatisk skalning för alternativet Välj hur du skalar resursen.
I avsnittet Standard på sidan anger du ett namn för standardvillkoret. Välj pennikonen för att redigera texten.
Välj Skala baserat på ett mått för Skalningsläge.
Välj + Lägg till en regel.
Följ dessa steg på sidan Skalningsregel :
Välj ett mått i listrutan Måttnamn . I det här exemplet är det CPU.
Välj en operator och tröskelvärden. I det här exemplet är de Större än och 75 för måtttröskel för att utlösa skalningsåtgärd.
Välj en åtgärd i avsnittet Åtgärd . I det här exemplet är det inställt på Öka.
Välj sedan Lägg till
Kommentar
Funktionen autoskalning ökar meddelandeenheterna för namnområdet om den totala CPU-användningen överstiger 75 % i det här exemplet. Steg görs från 1 till 2, 2 till 4, 4 till 8 och 8 till 16.
Välj + Lägg till en regel igen och följ dessa steg på sidan Skalningsregel :
Välj ett mått i listrutan Måttnamn . I det här exemplet är det CPU.
Välj en operator och tröskelvärden. I det här exemplet är de mindre än och 25 för måtttröskel för att utlösa skalningsåtgärd.
Välj en åtgärd i avsnittet Åtgärd . I det här exemplet är det inställt på Minska.
Välj sedan Lägg till
Kommentar
Funktionen autoskalning minskar meddelandeenheterna för namnområdet om den totala CPU-användningen understiger 25 % i det här exemplet. Minskningar görs från 16 till 8, 8 till 4, 4 till 2 och 2 till 1.
Ange det lägsta och högsta och standardantalet meddelandeenheter.
Spara autoskalningsinställningen genom att välja Spara i verktygsfältet.
Skala till ett specifikt antal meddelandeenheter
Följ de här stegen för att konfigurera regeln för att skala namnområdet så att det använder ett visst antal meddelandeenheter. Återigen tillämpas standardvillkoret när inget av de andra skalningsvillkoren matchar.
På sidan Autoskalningsinställning väljer du Anpassad automatisk skalning för alternativet Välj hur du skalar resursen.
I avsnittet Standard på sidan anger du ett namn för standardvillkoret.
Välj Skala till specifika meddelandeenheter för skalningsläge.
För Meddelandeenheter väljer du antalet standardmeddelandeenheter.
Anpassad autoskalning – ytterligare villkor
I föregående avsnitt visas hur du lägger till ett standardvillkor för autoskalningsinställningen. Det här avsnittet visar hur du lägger till fler villkor i autoskalningsinställningen. För dessa ytterligare icke-standardvillkor kan du ange ett schema baserat på specifika dagar i veckan eller ett datumintervall.
Skala baserat på ett mått
På sidan Autoskalningsinställning väljer du Anpassad automatisk skalning för alternativet Välj hur du skalar resursen.
Välj Lägg till ett skalningsvillkor under standardblocket.
Ange ett namn för villkoret.
Bekräfta att alternativet Skala baserat på ett mått är valt.
Välj + Lägg till en regel för att lägga till en regel för att öka meddelandeenheterna när den totala CPU-användningen överskrider 75 %. Följ stegen från standardvillkorsavsnittet.
Ange det lägsta och högsta och standardantalet meddelandeenheter.
Du kan också ange ett schema för ett anpassat villkor (men inte på standardvillkoret). Du kan antingen ange start- och slutdatum för villkoret (eller) välja specifika dagar (måndag, tisdag och så vidare.) för en vecka.
Om du väljer Ange start-/slutdatum väljer du Tidszon, Startdatum och tid och Slutdatum och tid (som visas i följande bild) för att villkoret ska gälla.
Om du väljer Upprepa specifika dagar väljer du veckodagar, tidszon, starttid och sluttid när villkoret ska gälla.
Skala till ett specifikt antal meddelandeenheter
På sidan Autoskalningsinställning väljer du Anpassad automatisk skalning för alternativet Välj hur du skalar resursen.
Välj Lägg till ett skalningsvillkor under standardblocket.
Ange ett namn för villkoret.
Välj alternativet Skala till specifika meddelandeenheter för skalningsläge.
Välj antalet meddelandeenheter i listrutan.
För schemat anger du antingen start- och slutdatum för villkoret (eller) väljer specifika dagar (måndag, tisdag och så vidare.) för en vecka och tider.
- Om du väljer Ange start-/slutdatum väljer du Tidszon, Startdatum och tid samt Slutdatum och tid för att villkoret ska gälla.
- Om du väljer Upprepa specifika dagar väljer du veckodagar, tidszon, starttid och sluttid när villkoret ska gälla.
Mer information om hur autoskalningsinställningar fungerar, särskilt hur den väljer en profil eller ett villkor och utvärderar flera regler, finns i Förstå inställningar för autoskalning.
Kommentar
Måtten som du granskar för att fatta beslut om automatisk skalning kan vara 5–10 minuter gamla. När du hanterar spikiga arbetsbelastningar rekommenderar vi att du har kortare varaktigheter för att skala upp och längre varaktigheter för nedskalning (> 10 minuter) för att säkerställa att det finns tillräckligt med meddelandeenheter för att bearbeta spikiga arbetsbelastningar.
Om du ser fel på grund av kapacitetsbrist (inga tillgängliga meddelandeenheter) skapar du ett supportärende hos oss. Kapacitetsuppfyllelse omfattas av miljöns begränsningar och utförs enligt vårt bästa arbete.
Körn.historik
Växla till fliken Körningshistorik på sidan Skala för att se ett diagram som ritar antalet meddelandeenheter enligt autoskalningsmotorn. Om diagrammet är tomt innebär det antingen att autoskalningen inte har konfigurerats eller konfigurerats men inaktiverats eller befinner sig i en nedkylningsperiod.
Meddelanden
Växla till fliken Meddela på sidan Skala för att:
Aktivera sändning av e-postmeddelanden till administratörer, medadministratörer och eventuella ytterligare administratörer.
Aktivera sändning av e-postmeddelanden till en HTTP- eller HTTPS-slutpunkt som exponeras av webhooks.
Konfigurera med hjälp av en Resource Manager-mall
Du kan använda följande Resource Manager-exempelmall för att skapa ett Service Bus-namnområde med en kö och för att konfigurera autoskalningsinställningar för namnområdet. I det här exemplet anges två skalningsvillkor.
- Standardskalningsvillkor: Öka meddelandeenheterna när den genomsnittliga CPU-användningen överskrider 75 % och minska meddelandeenheterna när den genomsnittliga CPU-användningen understiger 25 %.
- Tilldela två meddelandeenheter till namnområdet på helgerna.
Template
{
"$schema": "https: //schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"serviceBusNamespaceName": {
"type": "String",
"metadata": {
"description": "Name of the Service Bus namespace"
}
},
"serviceBusQueueName": {
"type": "String",
"metadata": {
"description": "Name of the Queue"
}
},
"autoScaleSettingName": {
"type": "String",
"metadata": {
"description": "Name of the auto scale setting."
}
},
"location": {
"defaultValue": "[resourceGroup().location]",
"type": "String",
"metadata": {
"description": "Location for all resources."
}
}
},
"resources": [{
"type": "Microsoft.ServiceBus/namespaces",
"apiVersion": "2021-11-01",
"name": "[parameters('serviceBusNamespaceName')]",
"location": "[parameters('location')]",
"sku": {
"name": "Premium"
},
"properties": {}
},
{
"type": "Microsoft.ServiceBus/namespaces/queues",
"apiVersion": "2021-11-01",
"name": "[format('{0}/{1}', parameters('serviceBusNamespaceName'), parameters('serviceBusQueueName'))]",
"dependsOn": [
"[resourceId('Microsoft.ServiceBus/namespaces', parameters('serviceBusNamespaceName'))]"
],
"properties": {
"lockDuration": "PT5M",
"maxSizeInMegabytes": 1024,
"requiresDuplicateDetection": false,
"requiresSession": false,
"defaultMessageTimeToLive": "P10675199DT2H48M5.4775807S",
"deadLetteringOnMessageExpiration": false,
"duplicateDetectionHistoryTimeWindow": "PT10M",
"maxDeliveryCount": 10,
"autoDeleteOnIdle": "P10675199DT2H48M5.4775807S",
"enablePartitioning": false,
"enableExpress": false
}
},
{
"type": "Microsoft.Insights/autoscaleSettings",
"apiVersion": "2021-05-01-preview",
"name": "[parameters('autoScaleSettingName')]",
"location": "East US",
"dependsOn": [
"[resourceId('Microsoft.ServiceBus/namespaces', parameters('serviceBusNamespaceName'))]"
],
"tags": {},
"properties": {
"name": "[parameters('autoScaleSettingName')]",
"enabled": true,
"predictiveAutoscalePolicy": {
"scaleMode": "Disabled",
"scaleLookAheadTime": null
},
"targetResourceUri": "[resourceId('Microsoft.ServiceBus/namespaces', parameters('serviceBusNamespaceName'))]",
"profiles": [{
"name": "Increase messaging units to 2 on weekends",
"capacity": {
"minimum": "2",
"maximum": "2",
"default": "2"
},
"rules": [],
"recurrence": {
"frequency": "Week",
"schedule": {
"timeZone": "Eastern Standard Time",
"days": [
"Saturday",
"Sunday"
],
"hours": [
6
],
"minutes": [
0
]
}
}
},
{
"name": "{\"name\":\"Scale Out at 75% CPU and Scale In at 25% CPU\",\"for\":\"Increase messaging units to 4 on weekends\"}",
"capacity": {
"minimum": "1",
"maximum": "8",
"default": "2"
},
"rules": [{
"scaleAction": {
"direction": "Increase",
"type": "ServiceAllowedNextValue",
"value": "1",
"cooldown": "PT5M"
},
"metricTrigger": {
"metricName": "NamespaceCpuUsage",
"metricNamespace": "microsoft.servicebus/namespaces",
"metricResourceUri": "[resourceId('Microsoft.ServiceBus/namespaces', parameters('serviceBusNamespaceName'))]",
"operator": "GreaterThan",
"statistic": "Average",
"threshold": 75,
"timeAggregation": "Average",
"timeGrain": "PT1M",
"timeWindow": "PT10M",
"Dimensions": [],
"dividePerInstance": false
}
},
{
"scaleAction": {
"direction": "Decrease",
"type": "ServiceAllowedNextValue",
"value": "1",
"cooldown": "PT5M"
},
"metricTrigger": {
"metricName": "NamespaceCpuUsage",
"metricNamespace": "microsoft.servicebus/namespaces",
"metricResourceUri": "[resourceId('Microsoft.ServiceBus/namespaces', parameters('serviceBusNamespaceName'))]",
"operator": "LessThan",
"statistic": "Average",
"threshold": 25,
"timeAggregation": "Average",
"timeGrain": "PT1M",
"timeWindow": "PT10M",
"Dimensions": [],
"dividePerInstance": false
}
}
],
"recurrence": {
"frequency": "Week",
"schedule": {
"timeZone": "Eastern Standard Time",
"days": [
"Saturday",
"Sunday"
],
"hours": [
18
],
"minutes": [
0
]
}
}
}
],
"notifications": [],
"targetResourceLocation": "East US"
}
}
]
}
Du kan också generera ett JSON-exempel för en autoskalningsinställningsresurs från Azure Portal. När du har konfigurerat autoskalningsinställningar i Azure Portal väljer du JSON i kommandofältet på sidan Skala.
Ta sedan med JSON i resources
avsnittet i en Resource Manager-mall enligt föregående exempel.
Ytterligare överväganden
När du använder alternativet Anpassad autoskalning med standardvillkoret eller profilen ökas meddelandeenheterna (1 –> 2 –> 4 –> 8 –> 16) eller minskas (16 –> 8 –> 4 –> 2 –> 1) gradvis.
När du skapar ytterligare villkor kan det hända att meddelandeenheterna inte ökar eller minskar gradvis. Anta att du har två profiler definierade enligt följande exempel. Klockan 06:00 UTC är meddelandeenheterna inställda på 16 och kl. 21:00 UTC reduceras de till 1.
{
"Profiles": [
{
"Name": "standardProfile",
"Capacity": {
"Minimum": "16",
"Maximum": "16",
"Default": "16"
},
"Rules": [],
"Recurrence": {
"Frequency": "Week",
"Schedule": {
"TimeZone": "UTC",
"Days": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"
],
"Hours": [6],
"Minutes": [0]
}
}
},
{
"Name": "outOfHoursProfile",
"Capacity": {
"Minimum": "1",
"Maximum": "1",
"Default": "1"
},
"Rules": [],
"Recurrence": {
"Frequency": "Week",
"Schedule": {
"TimeZone": "UTC",
"Days": ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday"],
"Hours": [21],
"Minutes": [0]
}
}
}
]
}
Vi rekommenderar att du skapar regler så att meddelandeenheter ökar eller minskar gradvis.
Nästa steg
Mer information om meddelandeenheter finns i Premium-meddelanden