Sdílet prostřednictvím


Automatická aktualizace jednotek zasílání zpráv v oboru názvů služby 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 zpracování 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 Zasílání zpráv Service Bus Premium.

Pomocí funkce automatického škálování pro obory názvů Premium služby Service Bus 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.

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

  • Zvýšení jednotek zasílání zpráv pro obor názvů služby Service Bus v případě, že využití procesoru oboru názvů překročí 75 %.
  • Snížení jednotek zasílání zpráv pro obor názvů služby Service Bus v případě, že 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ě mimo pracovní dobu.

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

Důležité

Tento článek se týká pouze úrovně Premium služby Azure Service Bus.

Konfigurace prostřednictvím portálu Azure Portal

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

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í vašeho oboru názvů služby Service Bus.

  1. Přihlaste se k portálu Azure.

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

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

  4. Přepněte na stránku Měřítko .

    Obor názvů služby Service Bus – stránka Škálování

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. Pro nastavení jednotek zasílání zpráv vyberte v rozevíracím seznamu počet jednotek zasílání zpráv.

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

    Ruční škálování jednotek zasílání zpráv

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 neshoduje žádná z ostatních podmínek škálování. 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 určitý 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 neshoduje žádná z dalších podmínek škálování s plány.

Poznámka:

Kvůli zlepšení propustnosti příjmu uchovává Service Bus některé zprávy v mezipaměti. Service Bus oříznou mezipaměť pouze v případech, kdy využití paměti překročí určitou vysokou prahovou hodnotu, například 80 %. Takže pokud entita odesílá zprávy, ale nepřijímá je, jsou tyto zprávy uloženy do mezipaměti a odráží se ve zvýšeném využití paměti. Obvykle to znamená, že se nic neřeší, protože Service Bus v případě potřeby oříznou mezipaměť, což nakonec způsobí, že využití paměti se zpomalí. Proto se doporučuje vertikálně navýšit kapacitu pouze v případě, že využití paměti dosáhne 90 %. Navíc se nedoporučuje vertikálně snížit kapacitu, pokud využití paměti nepřejde pod 90 %.

Škálovat podle metriky

Následující postup ukazuje, jak přidat podmínku pro automatické zvýšení počtu jednotek zasílání zpráv (horizontální navýšení kapacity), pokud je využití procesoru větší než 75 % a snížit počet jednotek zasílání zpráv (škálování), pokud 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 až 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í stránka zadejte název výchozí podmínky. Pokud chcete upravit text, vyberte ikonu tužky.

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

  4. Vyberte + Přidat pravidlo.

    Výchozí – škálování na základě metriky

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

    1. V rozevíracím seznamu Název metriky vyberte metriku. V tomto příkladu se jedná o procesor.

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

    3. V části Akce vyberte operaci. V tomto příkladu je nastavená na Zvýšit.

    4. Pak vyberte Přidat.

      Výchozí – horizontální navýšení kapacity, pokud je využití procesoru větší než 75 %

      Poznámka:

      Funkce automatického škálování zvyšuje jednotky 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 Pravidla škálování :

    1. V rozevíracím seznamu Název metriky vyberte metriku. V tomto příkladu se jedná o procesor.

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

    3. V části Akce vyberte operaci. V tomto příkladu je nastavená na Snížit.

    4. Pak vyberte Přidat.

      Výchozí– škálování, pokud je využití procesoru menší než 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.

    Výchozí pravidlo založené na metrice

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

Škálování na určitý 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 určitý počet jednotek zasílání zpráv. Opět platí, že výchozí podmínka se použije, když se neshoduje žádná z ostatních podmínek škálování.

  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í stránka zadejte název výchozí podmínky.

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

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

    Výchozí – škálování na konkrétní jednotky zasílání zpráv

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 podmínek, které nejsou výchozí, můžete nastavit plán na základě konkrétních dnů v týdnu nebo rozsahu kalendářních dat.

Škálovat podle 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. V rámci výchozího bloku vyberte Přidat podmínku škálování.

    Vlastní – přidání odkazu na podmínku škálování

  3. Zadejte název podmínky.

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

  5. Vyberte + Přidat pravidlo pro přidání pravidla pro zvýšení jednotek zasílání zpráv, když celkové využití procesoru překročí 75 %. Postupujte podle kroků z výchozí části 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 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) pro podmínku, která má platit.

      Minimální, maximální a výchozí hodnoty pro počet jednotek zasílání zpráv

    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.

      Opakovat konkrétní dny

Škálování na určitý 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. V rámci výchozího bloku vyberte Přidat podmínku škálování.

    Vlastní – přidání odkazu na podmínku škálování

  3. Zadejte název podmínky.

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

  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 Zadat počáteční a koncové datum, vyberte časové pásmo, počáteční datum a čas a koncové datum a čas , aby byla podmínka platná.

    škálování na konkrétní jednotky zasílání zpráv – počáteční a koncové datum

    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.

    škálování na konkrétní jednotky zasílání zpráv – opakování konkrétních dnů

    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 za účelem rozhodování o automatickém škálování, můžou být 5 až 10 minut staré. Při práci s rychlými úlohami doporučujeme, abyste měli kratší dobu vertikálního navýšení kapacity a delší dobu vertikálního snížení kapacity (> 10 minut), abyste zajistili, že existuje 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 u nás lístek podpory. Plnění kapacity podléhá omezením prostředí a provádí se s naším úsilím.

Historie běhů

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

Snímek obrazovky zobrazující **historii spuštění** na stránce **Škálování**.

Oznámení

Přepněte na kartu Upozornění na stránce Měřítko na:

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

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

    Snímek obrazovky zobrazující kartu **Oznámit** na stránce **Měřítko**

Konfigurace pomocí šablony Resource Manageru

Pomocí následující ukázkové šablony Resource Manageru můžete vytvořit obor názvů služby Service Bus s frontou a nakonfigurovat 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íží jednotky 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.

Š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 webu Azure Portal. Po nakonfigurování nastavení automatického škálování na webu Azure Portal na panelu příkazů na stránce Škálování vyberte JSON.

Obrázek znázorňující výběr tlačítka JSON na panelu příkazů na stránce **Škálování** na webu Azure Portal

Potom do části šablony Resource Manageru zahrňte JSON resources , jak je znázorněno v předchozím příkladu.

Další důležité informace

Při použití možnosti Vlastní automatické škálování s výchozí podmínkou nebo profilem se jednotky zasílání zpráv zvýší (1 –> 2 – 4 –>> 8 –> 16) nebo se postupně sníží (16 –> 8 –> 4 –> 2 –> 1).

Při vytváření dalších podmínek nemusí být jednotky zasílání zpráv postupně zvýšeny nebo sníženy. Předpokládejme, že máte definované dva profily, jak je znázorněno v následujícím příkladu. V 06:00 UTC jsou jednotky zasílání zpráv nastavené na 16 a v 21:00 UTC se zmenší na 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]
				}
			}
		}
	]
}

Doporučujeme vytvořit pravidla tak, aby se jednotky zasílání zpráv zvýšily nebo snižovaly postupně.

Další kroky

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