Automatická aktualizace jednotek zasílání zpráv v oboru názvů Azure Service Bus

Automatické škálování umožňuje mít správné množství spuštěných prostředků pro zvládnutí zatížení vaší aplikace. Umožňuje přidávat prostředky pro zvládnutí nárůstu zatížení a také ušetřit peníze odebráním prostředků, které jsou nečinné. Další informace o funkci automatického škálování služby Azure Monitor najdete v přehledu automatického škálování v Microsoft Azure.

Zasílání zpráv Service Bus Premium zajišťuje izolaci prostředků na úrovni CPU a paměti, takže každá úloha zákazníka běží izolovaně. Kontejner prostředků se nazývá jednotka zasílání zpráv. Další informace o jednotkách zasílání zpráv najdete v tématu Service Bus Premium Microsoft Zasílání zpráv.

Pomocí funkce automatického škálování pro obory názvů Service Bus Premium můžete zadat minimální a maximální počet jednotek zasílání zpráv a automaticky přidávat nebo odebírat jednotky zasílání zpráv na základě sady pravidel.

Můžete například implementovat následující scénáře škálování pro Service Bus obory názvů pomocí funkce automatického škálování.

  • Zvýšení jednotek zasílání zpráv pro obor názvů Service Bus, když využití procesoru oboru názvů překročí 75 %.
  • Snížení jednotek zasílání zpráv pro obor názvů Service Bus, když využití procesoru oboru názvů klesne pod 25 %.
  • Používejte více jednotek zasílání zpráv během pracovní doby a méně během mimo špičky.

V tomto článku se dozvíte, jak můžete automaticky škálovat obor názvů Service Bus (aktualizovat jednotky zasílání zpráv) pomocí Azure Portal a šablony Azure Resource Manageru.

Důležité

Tento článek se vztahuje pouze na úroveň Premium Azure Service Bus.

Konfigurace prostřednictvím portálu Azure Portal

V této části se dozvíte, jak pomocí Azure Portal nakonfigurovat automatické škálování jednotek zasílání zpráv pro Service Bus obor názvů.

Stránka nastavení automatického škálování

Nejprve pomocí následujícího postupu přejděte na stránku nastavení automatického škálování pro váš obor názvů Service Bus.

  1. Přihlaste se k Azure Portal.

  2. Na panelu hledání zadejte Service Bus, v rozevíracím seznamu vyberte Service Bus a stiskněte enter.

  3. Ze seznamu oborů názvů vyberte obor názvů Premium .

  4. Přepněte na stránku Škálování .

    Service Bus Namespace - Scale page

Ruční škálování

Toto nastavení umožňuje nastavit pevný počet jednotek zasílání zpráv pro obor názvů.

  1. Na stránce Nastavení automatického škálování vyberte ruční škálování , pokud ještě není vybraná.

  2. U nastavení Microsoft Zasílání zpráv jednotek vyberte v rozevíracím seznamu počet jednotek zasílání zpráv.

  3. Výběrem možnosti Uložit na panelu nástrojů uložte nastavení.

    Manually scale messaging units

Vlastní automatické škálování – výchozí podmínka

Automatické škálování jednotek zasílání zpráv můžete nakonfigurovat pomocí podmínek. Tato podmínka škálování se spustí, když se žádná z ostatních podmínek škálování neshoduje. Výchozí podmínku můžete nastavit jedním z následujících způsobů:

  • Škálování na základě metriky (například využití procesoru nebo paměti)
  • Škálování na konkrétní počet jednotek zasílání zpráv

Pro výchozí podmínku nemůžete nastavit plán automatického škálování na konkrétní dny nebo rozsah kalendářních dat. Tato podmínka škálování se spustí, když se žádná z dalších podmínek škálování s plány neshoduje.

Škálování na základě metriky

Následující postup ukazuje, jak přidat podmínku, která automaticky zvýší počet jednotek zasílání zpráv (horizontální navýšení kapacity), pokud je využití procesoru větší než 75 % a sníží počet jednotek zasílání zpráv (škálování), když je využití procesoru menší než 25 %. Přírůstky se provádějí od 1 do 2, 2 až 4, 4 až 8 a 8 až 16. Podobně se dekrementy provádějí od 16 do 8, 8 na 4, 4 až 2 a 2 až 1.

  1. Na stránce Nastavení automatického škálování vyberte možnost Vlastní automatické škálování pro možnost Zvolit, jak škálovat prostředek .

  2. V části Výchozí na stránce zadejte název výchozí podmínky. Vyberte ikonu tužky a upravte text.

  3. Vyberte Škálovat na základě metriky pro režim škálování.

  4. Vyberte + Přidat pravidlo.

    Default - scale based on a metric

  5. Na stránce Pravidlo škálování postupujte takto:

    1. V rozevíracím seznamu Název metriky vyberte metriku. V tomto příkladu je to procesor.

    2. Vyberte operátor a prahové hodnoty. V tomto příkladu jsou větší než a 75 pro prahovou hodnotu metriky pro aktivaci akce škálování.

    3. Vyberte operaci v části Akce . V tomto příkladu je nastavená hodnota Zvýšit.

    4. Pak vyberte Přidat.

      Default - scale out if CPU usage is greater than 75%

      Poznámka

      Funkce automatického škálování zvýší počet jednotek zasílání zpráv pro obor názvů, pokud celkové využití procesoru v tomto příkladu překročí 75 %. Přírůstky se provádějí od 1 do 2, 2 až 4, 4 až 8 a 8 až 16.

  6. Znovu vyberte + Přidat pravidlo a postupujte podle těchto kroků na stránce pravidlo škálování :

    1. V rozevíracím seznamu Název metriky vyberte metriku. V tomto příkladu je to procesor.

    2. Vyberte operátor a prahové hodnoty. V tomto příkladu jsou menší než a 25 pro prahovou hodnotu metriky pro aktivaci akce škálování.

    3. Vyberte operaci v části Akce . V tomto příkladu je nastavená na Zmenšit.

    4. Pak vyberte Přidat.

      Default - scale in if CPU usage is less than 25%

      Poznámka

      Funkce automatického škálování snižuje jednotky zasílání zpráv pro obor názvů, pokud celkové využití procesoru v tomto příkladu klesne pod 25 %. Dekrementy se provádějí od 16 do 8, 8 až 4, 4 až 2 a 2 až 1.

  7. Nastavte minimální a maximální a výchozí počet jednotek zasílání zpráv.

    Default rule based on a metric

  8. Výběrem možnosti Uložit na panelu nástrojů uložte nastavení automatického škálování.

Škálování na konkrétní počet jednotek zasílání zpráv

Podle těchto kroků nakonfigurujte pravidlo pro škálování oboru názvů tak, aby používalo konkrétní počet jednotek zasílání zpráv. Opět platí, že výchozí podmínka se použije, když se žádná z ostatních podmínek škálování neshoduje.

  1. Na stránce Nastavení automatického škálování vyberte možnost Vlastní automatické škálování pro možnost Zvolit, jak škálovat prostředek .

  2. V části Výchozí na stránce zadejte název výchozí podmínky.

  3. V režimu škálování vyberte Škálovat na konkrétní jednotky zasílání zpráv.

  4. U jednotek Microsoft Zasílání zpráv vyberte počet výchozích jednotek zasílání zpráv.

    Default - scale to specific messaging units

Vlastní automatické škálování – další podmínky

V předchozí části se dozvíte, jak přidat výchozí podmínku pro nastavení automatického škálování. V této části se dozvíte, jak do nastavení automatického škálování přidat další podmínky. U těchto dalších nestandardních podmínek můžete nastavit plán na základě konkrétních dnů v týdnu nebo rozsahu dat.

Škálování na základě metriky

  1. Na stránce Nastavení automatického škálování vyberte možnost Vlastní automatické škálování pro možnost Zvolit, jak škálovat prostředek .

  2. Vyberte Přidat podmínku škálování pod výchozím blokem.

    Custom - add a scale condition link

  3. Zadejte název podmínky.

  4. Ověřte, že je vybraná možnost Škálování na základě metriky .

  5. Pokud chcete přidat pravidlo , vyberte + Přidat pravidlo , které zvýší počet jednotek zasílání zpráv, když celkové využití procesoru překročí 75 %. Postupujte podle kroků v části výchozí podmínky .

  6. Nastavte minimální a maximální a výchozí počet jednotek zasílání zpráv.

  7. Můžete také nastavit plán pro vlastní podmínku (ale ne pro výchozí podmínku). Můžete zadat počáteční a koncové datum podmínky (nebo) vybrat konkrétní dny (pondělí, úterý atd.) týdne.

    1. Pokud vyberete Možnost Zadat počáteční a koncové datum, vyberte časové pásmo, počátečnídatum a čas a koncové datum a čas (jak je znázorněno na následujícím obrázku), aby se podmínka projevila.

      Minimum, maximum, and default values for number of messaging units

    2. Pokud vyberete Možnost Opakovat konkrétní dny, vyberte dny v týdnu, časové pásmo, čas zahájení a koncový čas, kdy se má podmínka použít.

      Repeat specific days

Škálování na konkrétní počet jednotek zasílání zpráv

  1. Na stránce Nastavení automatického škálování vyberte možnost Vlastní automatické škálování pro možnost Zvolit, jak škálovat prostředek .

  2. Vyberte Přidat podmínku škálování pod výchozím blokem.

    Custom - add a scale condition link

  3. Zadejte název podmínky.

  4. Vyberte možnost škálování na konkrétní jednotky zasílání zpráv pro režim škálování.

  5. V rozevíracím seznamu vyberte počet jednotek zasílání zpráv .

  6. Pro plán zadejte počáteční a koncové datum podmínky (nebo) vyberte konkrétní dny (pondělí, úterý atd.) týdne a času.

    1. Pokud vyberete Možnost Zadat počáteční a koncové datum, vyberte časové pásmo, počátečnídatum a čas akoncové datum a čas , aby se podmínka projevila.

    scale to specific messaging units - start and end dates

    1. Pokud vyberete Možnost Opakovat konkrétní dny, vyberte dny v týdnu, časové pásmo, čas zahájení a koncový čas, kdy se má podmínka použít.

    scale to specific messaging units - repeat specific days

    Další informace o tom, jak nastavení automatického škálování funguje, zejména jak vybírá profil nebo podmínku a vyhodnocuje více pravidel, najdete v tématu Vysvětlení nastavení automatického škálování.

    Poznámka

    • Metriky, které zkontrolujete, aby se mohli rozhodovat o automatickém škálování, můžou být starší 5 až 10 minut. Pokud pracujete s spiky úlohami, doporučujeme, abyste měli kratší dobu pro vertikální navýšení kapacity a delší dobu vertikálního snížení kapacity (> 10 minut), abyste zajistili, že je k dispozici dostatek jednotek pro zpracování rychlých úloh.

    • Pokud dojde k selháním kvůli nedostatku kapacity (nejsou k dispozici žádné jednotky zasílání zpráv), vytvořte lístek podpory s námi.

Historie spuštění

Přepněte na kartu Historie spuštění na stránce Škálování a zobrazte graf, který zobrazuje počet jednotek zasílání zpráv, jak je pozorováno modulem automatického škálování. Pokud je graf prázdný, znamená to, že automatické škálování nebylo nakonfigurováno nebo nakonfigurováno, ale bylo zakázané, nebo je ve studeném období.

Screenshot showing **Run history** on the **Scale** page.

Oznámení

Přepněte na kartu Oznámení na stránce Škálování na:

  • Povolte odesílání e-mailů s oznámeními správcům, spolusprávci a dalším správcům.

  • Povolte odesílání e-mailů s oznámeními koncovým bodům HTTP nebo HTTPS vystaveným webhooky.

    Screenshot showing the **Notify** tab of the **Scale** page.

Konfigurace pomocí šablony Resource Manager

Následující ukázkovou šablonu Resource Manager můžete použít k vytvoření Service Bus oboru názvů s frontou a ke konfiguraci nastavení automatického škálování pro obor názvů. V tomto příkladu jsou zadány dvě podmínky škálování.

  • Výchozí podmínka škálování: Zvýšení jednotek zasílání zpráv, když průměrné využití procesoru překročí 75 % a sníží počet jednotek zasílání zpráv, když průměrné využití procesoru klesne pod 25 %.
  • Přiřaďte k oboru názvů o víkendech dvě jednotky zasílání zpráv.

Template (Šablona)

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

Můžete také vygenerovat příklad JSON pro prostředek nastavení automatického škálování z Azure Portal. Po nakonfigurování nastavení automatického škálování v Azure Portal vyberte JSON na panelu příkazů na stránce Škálování.

Image showing the selection of the JSON button on the command bar of the **Scale** page in the Azure portal.

Pak do části šablony Resource Manager zahrňte JSONresources, jak je znázorněno v předchozím příkladu.

Další kroky

Další informace o jednotkách zasílání zpráv najdete v tématu Premium zasílání zpráv.