Delen via


Berichteneenheden van een Azure Service Bus-naamruimte automatisch bijwerken

Met automatisch schalen kunt u de juiste hoeveelheid resources uitvoeren om de belasting van uw toepassing te verwerken. Hiermee kunt u resources toevoegen om de belasting te verhogen en geld te besparen door resources te verwijderen die niet actief zijn. Zie Overzicht van automatische schaalaanpassing in Microsoft Azure voor meer informatie over de functie Voor automatisch schalen van Azure Monitor.

Service Bus Premium Messaging biedt isolatie van resources op het niveau van de CPU en het geheugen, zodat elke workload van een klant geïsoleerd wordt uitgevoerd. Deze resourcecontainer wordt een Messaging-eenheid genoemd. Zie Service Bus Premium Messaging voor meer informatie over berichteneenheden.

Met de functie Automatisch schalen voor Service Bus Premium-naamruimten kunt u een minimum- en maximumaantal berichteneenheden opgeven en berichteneenheden automatisch toevoegen of verwijderen op basis van een set regels.

U kunt bijvoorbeeld de volgende schaalscenario's voor Service Bus-naamruimten implementeren met behulp van de functie Voor automatisch schalen.

  • Verhoog berichteneenheden voor een Service Bus-naamruimte wanneer het CPU-gebruik van de naamruimte hoger is dan 75%.
  • Verminder berichteneenheden voor een Service Bus-naamruimte wanneer het CPU-gebruik van de naamruimte lager is dan 25%.
  • Gebruik meer berichteneenheden tijdens kantooruren en minder buiten kantooruren.

In dit artikel wordt beschreven hoe u een Service Bus-naamruimte ( berichteneenheden bijwerken) automatisch kunt schalen met behulp van Azure Portal en een Azure Resource Manager-sjabloon.

Belangrijk

Dit artikel is alleen van toepassing op de Premium-laag van Azure Service Bus.

Configureren met behulp van Azure Portal

In deze sectie leert u hoe u Azure Portal gebruikt om automatisch schalen van berichteneenheden voor een Service Bus-naamruimte te configureren.

Instellingspagina voor automatisch schalen

Volg eerst deze stappen om naar de pagina instellingen voor automatisch schalen voor uw Service Bus-naamruimte te navigeren.

  1. Meld u aan bij het Azure-portaal.

  2. Typ Service Bus in de zoekbalk, selecteer Service Bus in de vervolgkeuzelijst en druk op Enter.

  3. Selecteer uw Premium-naamruimte in de lijst met naamruimten.

  4. Schakel over naar de pagina Schaal .

    Service Bus-naamruimte - Pagina schalen

Handmatig schalen

Met deze instelling kunt u een vast aantal berichteneenheden instellen voor de naamruimte.

  1. Selecteer op de instellingspagina voor automatisch schalen handmatig schalen als deze nog niet is geselecteerd.

  2. Selecteer voor de instelling berichteneenheden het aantal berichteneenheden in de vervolgkeuzelijst.

  3. Selecteer Opslaan op de werkbalk om de instelling op te slaan.

    Berichteneenheden handmatig schalen

Aangepaste automatische schaalaanpassing - Standaardvoorwaarde

U kunt het automatisch schalen van berichteneenheden configureren met behulp van voorwaarden. Deze schaalvoorwaarde wordt uitgevoerd wanneer geen van de andere schaalvoorwaarden overeenkomt. U kunt de standaardvoorwaarde op een van de volgende manieren instellen:

  • Schalen op basis van een metrische waarde (zoals CPU of geheugengebruik)
  • Schalen naar een specifiek aantal berichteneenheden

U kunt een schema niet instellen op automatische schaalaanpassing op een bepaalde dagen of datumbereik voor een standaardvoorwaarde. Deze schaalvoorwaarde wordt uitgevoerd wanneer geen van de andere schaalvoorwaarden met schema's overeenkomt.

Notitie

Om de ontvangstdoorvoer te verbeteren, bewaart Service Bus enkele berichten in de cache. Service Bus trimt de cache alleen wanneer het geheugengebruik een bepaalde hoge drempelwaarde overschrijdt, zoals 80%. Dus als een entiteit berichten verzendt maar deze niet ontvangt, worden deze berichten in de cache opgeslagen en weerspiegelt dit in een verhoogd geheugengebruik. Normaal gesproken betekent dit dat er niets te maken heeft, omdat Service Bus de cache indien nodig verwijdert, waardoor het geheugengebruik uiteindelijk uitvalt. Daarom wordt het aanbevolen om alleen omhoog te schalen zodra het geheugengebruik 90% bereikt. Daarnaast is het raadzaam om niet omlaag te schalen zolang het geheugengebruik niet lager is dan 90%.

Schalen op basis van een metrische waarde

In de volgende procedure ziet u hoe u een voorwaarde toevoegt om berichteneenheden automatisch te verhogen (uitschalen) wanneer het CPU-gebruik groter is dan 75% en hoe u berichteneenheden verlaagt (inschalen) wanneer het CPU-gebruik kleiner is dan 25%. Stappen worden uitgevoerd van 1 tot 2, 2 tot 4, 4 tot 8 en 8 tot 16. Op dezelfde manier worden afwijkingen uitgevoerd van 16 tot 8, 8 tot 4, 4 tot 2 en 2 tot en met 1.

  1. Selecteer op de instellingspagina voor automatisch schalen aangepast voor de optie Kiezen hoe u de resource wilt schalen.

  2. Geef in de sectie Standaard van de pagina een naam op voor de standaardvoorwaarde. Selecteer het potloodpictogram om de tekst te bewerken.

  3. Selecteer Schalen op basis van een metrische waarde voor de schaalmodus.

  4. Selecteer + Een regel toevoegen.

    Standaard : schalen op basis van een metrische waarde

  5. Voer op de pagina Regel schalen de volgende stappen uit:

    1. Selecteer een metrische waarde in de vervolgkeuzelijst Metrische naam . In dit voorbeeld is het CPU.

    2. Selecteer een operator en drempelwaarden. In dit voorbeeld zijn ze groter dan en 75 voor de drempelwaarde voor metrische gegevens om de schaalactie te activeren.

    3. Selecteer een bewerking in de sectie Actie . In dit voorbeeld is dit ingesteld op Verhogen.

    4. Selecteer vervolgens Toevoegen

      Standaard: uitschalen als het CPU-gebruik groter is dan 75%

      Notitie

      De functie voor automatisch schalen verhoogt de berichteneenheden voor de naamruimte als het totale CPU-gebruik in dit voorbeeld hoger is dan 75%. Stappen worden uitgevoerd van 1 tot 2, 2 tot 4, 4 tot 8 en 8 tot 16.

  6. Selecteer + Voeg nogmaals een regel toe en volg deze stappen op de pagina Regel schalen :

    1. Selecteer een metrische waarde in de vervolgkeuzelijst Metrische naam . In dit voorbeeld is het CPU.

    2. Selecteer een operator en drempelwaarden. In dit voorbeeld zijn ze kleiner dan en 25 voor de drempelwaarde voor metrische gegevens om de schaalactie te activeren.

    3. Selecteer een bewerking in de sectie Actie . In dit voorbeeld is deze ingesteld op Verkleinen.

    4. Selecteer vervolgens Toevoegen

      Standaard: inschalen als het CPU-gebruik kleiner is dan 25%

      Notitie

      De functie voor automatisch schalen vermindert de berichteneenheden voor de naamruimte als het totale CPU-gebruik in dit voorbeeld lager is dan 25%. Afwijkingen worden uitgevoerd van 16 tot 8, 8 tot 4, 4 tot 2 en 2 tot 1.

  7. Stel het minimum- en maximum- en standaardaantal berichteneenheden in.

    Standaardregel op basis van een metrische waarde

  8. Selecteer Opslaan op de werkbalk om de instelling voor automatisch schalen op te slaan.

Schalen naar een specifiek aantal berichteneenheden

Volg deze stappen om de regel zo te configureren dat de naamruimte wordt geschaald voor het gebruik van een specifiek aantal berichteneenheden. Opnieuw wordt de standaardvoorwaarde toegepast wanneer geen van de andere schaalvoorwaarden overeenkomt.

  1. Selecteer op de instellingspagina voor automatisch schalen aangepast voor de optie Kiezen hoe u de resource wilt schalen.

  2. Geef in de sectie Standaard van de pagina een naam op voor de standaardvoorwaarde.

  3. Selecteer Schalen naar specifieke berichteneenheden voor de schaalmodus.

  4. Voor berichteneenheden selecteert u het aantal standaardberichteneenheden.

    Standaard : schalen naar specifieke berichteneenheden

Aangepaste automatische schaalaanpassing - aanvullende voorwaarden

In de vorige sectie ziet u hoe u een standaardvoorwaarde toevoegt voor de instelling voor automatisch schalen. In deze sectie wordt beschreven hoe u meer voorwaarden toevoegt aan de instelling voor automatisch schalen. Voor deze aanvullende niet-standaardvoorwaarden kunt u een planning instellen op basis van specifieke dagen van een week of een datumbereik.

Schalen op basis van een metrische waarde

  1. Selecteer op de instellingspagina voor automatisch schalen aangepast voor de optie Kiezen hoe u de resource wilt schalen.

  2. Selecteer Een schaalvoorwaarde toevoegen onder het standaardblok .

    Aangepast - koppeling voor schaalvoorwaarde toevoegen

  3. Geef een naam op voor de voorwaarde.

  4. Controleer of de schaal op basis van een metrische optie is geselecteerd.

  5. Selecteer + Een regel toevoegen om een regel toe te voegen om berichteneenheden te verhogen wanneer het totale CPU-gebruik hoger is dan 75%. Volg de stappen in de sectie standaardvoorwaarde .

  6. Stel het minimum- en maximum- en standaardaantal berichteneenheden in.

  7. U kunt ook een planning instellen op een aangepaste voorwaarde (maar niet op de standaardvoorwaarde). U kunt begin- en einddatums opgeven voor de voorwaarde (of) specifieke dagen (maandag, dinsdag, enzovoort) van een week selecteren.

    1. Als u Begin- en einddatums opgeven selecteert, selecteert u de tijdzone, begindatum en -tijd en einddatum en -tijd (zoals weergegeven in de volgende afbeelding) om de voorwaarde van kracht te laten zijn.

      Minimum-, maximum- en standaardwaarden voor het aantal berichteneenheden

    2. Als u Specifieke dagen herhalen selecteert, selecteert u de dagen van de week, tijdzone, begintijd en eindtijd waarop de voorwaarde van toepassing moet zijn.

      Specifieke dagen herhalen

Schalen naar een specifiek aantal berichteneenheden

  1. Selecteer op de instellingspagina voor automatisch schalen aangepast voor de optie Kiezen hoe u de resource wilt schalen.

  2. Selecteer Een schaalvoorwaarde toevoegen onder het standaardblok .

    Aangepast - koppeling voor schaalvoorwaarde toevoegen

  3. Geef een naam op voor de voorwaarde.

  4. Selecteer de optie Schalen naar specifieke berichteneenheden voor de schaalmodus.

  5. Selecteer het aantal berichteneenheden in de vervolgkeuzelijst.

  6. Geef voor de planning de begin- en einddatums op voor de voorwaarde (of) selecteer specifieke dagen (maandag, dinsdag, enzovoort) van een week en tijden.

    1. Als u Begin- en einddatums opgeven selecteert, selecteert u de tijdzone, begindatum en -tijd en einddatum en -tijd voor de voorwaarde die van kracht is.

    schalen naar specifieke berichteneenheden - begin- en einddatums

    1. Als u Specifieke dagen herhalen selecteert, selecteert u de dagen van de week, tijdzone, begintijd en eindtijd waarop de voorwaarde van toepassing moet zijn.

    schalen naar specifieke berichteneenheden - specifieke dagen herhalen

    Zie Instellingen voor automatisch schalen begrijpen voor meer informatie over hoe instellingen voor automatisch schalen werken, met name hoe het een profiel of voorwaarde kiest en meerdere regels evalueert.

    Notitie

    • De metrische gegevens die u bekijkt om beslissingen te nemen over automatisch schalen, kunnen 5-10 minuten oud zijn. Wanneer u te maken hebt met spiky werkbelastingen, raden we u aan kortere duur te hebben voor het omhoog schalen en langere duur voor omlaag schalen (> 10 minuten) om ervoor te zorgen dat er voldoende berichteneenheden zijn om spiky workloads te verwerken.

    • Als u fouten ziet als gevolg van een gebrek aan capaciteit (geen berichteneenheden beschikbaar), kunt u een ondersteuningsticket indienen bij ons. Capaciteitsafhandeling is onderhevig aan de beperkingen van de omgeving en wordt uitgevoerd op onze best effort.

Uitvoergeschiedenis

Ga naar het tabblad Uitvoeringsgeschiedenis op de pagina Schaal om een grafiek te zien waarmee het aantal berichteneenheden wordt uitgezet zoals waargenomen door de engine voor automatische schaalaanpassing. Als de grafiek leeg is, betekent dit dat automatisch schalen niet is geconfigureerd of geconfigureerd, maar is uitgeschakeld of zich in een afkoelperiode bevindt.

Schermopname van **Uitvoeringsgeschiedenis** op de pagina **Schaal**.

Meldingen

Ga naar het tabblad Melding op de pagina Schaal naar:

  • Schakel het verzenden van e-mailberichten naar beheerders, medebeheerders en eventuele extra beheerders in.

  • Schakel het verzenden van e-mailberichten voor meldingen naar een HTTP- of HTTPS-eindpunten in die beschikbaar worden gesteld door webhooks.

    Schermopname van het tabblad **Notify** van de pagina **Scale**.

Configureren met behulp van een Resource Manager-sjabloon

U kunt de volgende Resource Manager-voorbeeldsjabloon gebruiken om een Service Bus-naamruimte met een wachtrij te maken en instellingen voor automatische schaalaanpassing voor de naamruimte te configureren. In dit voorbeeld worden twee schaalvoorwaarden opgegeven.

  • Standaardschaalvoorwaarde: verhoog berichteneenheden wanneer het gemiddelde CPU-gebruik hoger wordt dan 75% en verlaag berichteneenheden wanneer het gemiddelde CPU-gebruik lager is dan 25%.
  • Wijs in het weekend twee berichteneenheden toe aan de naamruimte.

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"
			}
		}
	]
}

U kunt ook een JSON-voorbeeld genereren voor een instellingsresource voor automatisch schalen vanuit Azure Portal. Nadat u instellingen voor automatisch schalen in Azure Portal hebt geconfigureerd, selecteert u JSON op de opdrachtbalk van de pagina Schaal .

Afbeelding van de selectie van de JSON-knop op de opdrachtbalk van de pagina **Schalen** in Azure Portal.

Neem vervolgens de JSON op in de resources sectie van een Resource Manager-sjabloon, zoals wordt weergegeven in het voorgaande voorbeeld.

Aanvullende overwegingen

Wanneer u de optie Aangepaste automatische schaalaanpassing gebruikt met de standaardvoorwaarde of het standaardprofiel, worden berichteneenheden geleidelijk verhoogd (1 -> 2 -> 4 -> 8 -> 16) of afgenomen (16 -> 8 -> 4 -> 2 -> 1).

Wanneer u aanvullende voorwaarden maakt, worden de berichteneenheden mogelijk niet geleidelijk verhoogd of verlaagd. Stel dat u twee profielen hebt gedefinieerd zoals wordt weergegeven in het volgende voorbeeld. Om 06:00 UTC worden berichteneenheden ingesteld op 16 en om 21:00 UTC worden ze gereduceerd tot 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]
				}
			}
		}
	]
}

U wordt aangeraden regels te maken, zodat berichteneenheden geleidelijk worden verhoogd of verlaagd.

Volgende stappen

Zie De Premium Messaging voor meer informatie over berichteneenheden