Automatická aktualizace jednotek zasílání zpráv v oboru názvů Azure Service Bus
Automatické škálování umožňuje mít spuštěné správné množství prostředků, které zvládnou zatížení vaší aplikace. Umožňuje přidat prostředky, které zvládnou nárůst zatížení, a také ušetřit peníze odebráním nečinných prostředků. Další informace o funkci automatického škálování služby Azure Monitor najdete v tématu Přehled 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ů 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.
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í počtu jednotek zasílání zpráv pro obor názvů služby Service Bus v případě, že využití procesoru v oboru názvů překročí 75 %.
- Snížení počtu jednotek zasílání zpráv pro obor názvů služby Service Bus v případě, že využití procesoru v oboru názvů klesne pod 25 %.
- Během pracovní doby používejte více jednotek zasílání zpráv a méně mimo špičku.
V tomto článku se dozvíte, jak můžete automaticky škálovat obor názvů služby Service Bus (jednotky pro aktualizaci zasílání zpráv) pomocí Azure Portal a šablony Azure Resource Manager.
Důležité
Tento článek se týká jenom úrovně 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 obor názvů služby Service Bus.
Stránka nastavení automatického škálování
Nejprve postupujte podle těchto kroků a přejděte na stránku nastavení automatického škálování pro váš obor názvů služby Service Bus.
Přihlaste se k webu Azure Portal.
Na panelu hledání zadejte Service Bus, v rozevíracím seznamu vyberte Service Bus a stiskněte ENTER.
V seznamu oborů názvů vyberte obor názvů Premium .
Přepněte na stránku Š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ů.
Na stránce Nastavení automatického škálování vyberte Ruční škálování , pokud ještě není zaškrtnuté.
V části Jednotky zasílání zpráv vyberte v rozevíracím seznamu počet jednotek zasílání zpráv.
Na panelu nástrojů vyberte Uložit a uložte nastavení.
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ž neodpovídá žá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 dat. Tato podmínka škálování se spustí, když neodpovídá žádná z ostatních podmínek škálování s plány.
Poznámka
Aby se zlepšila propustnost příjmu, service bus uchovává některé zprávy ve své mezipaměti. Service Bus mezipaměť oříznou jenom v případech, kdy využití paměti překročí určitou vysokou prahovou hodnotu, například 90 %. Pokud tedy entita odesílá zprávy, ale nepřijímá je, tyto zprávy se uloží do mezipaměti a projeví se to ve zvýšeném využití paměti. Není potřeba se zabývat, protože Service Bus v případě potřeby mezipaměť oříznou, což nakonec způsobí snížení využití paměti. Paměť nezpůsobí žádné problémy, pokud nedojde k problémům s výkonem nebo jinými problémy s oborem názvů. Pro automatické škálování se službou Service Bus doporučujeme použít metriku využití procesoru.
Škálování na základě 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 vyšší než 75 %, a snížení počtu jednotek zasílání zpráv (horizontální snížení kapacity), pokud je využití procesoru menší než 25 %. Přírůstky se provádějí od 1 do 2, 2 do 4, od 4 do 8 a od 8 do 16. Podobně se dekrementy provádějí od 16 do 8, 8 do 4, 4 na 2 a 2 na 1.
Na stránce Nastavení automatického škálování vyberte Vlastní automatické škálování u možnosti Zvolit způsob škálování prostředku .
V části Výchozí na stránce zadejte název výchozí podmínky. Vyberte ikonu tužky a upravte text.
Jako Režim škálování vyberte Škálovat na základě metriky.
Vyberte + Přidat pravidlo.
Na stránce Pravidlo škálování postupujte takto:
Vyberte metriku z rozevíracího seznamu Název metriky . V tomto příkladu je to procesor.
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í.
V části Akce vyberte operaci. V tomto příkladu je nastavený na Zvýšit.
Pak vyberte Přidat.
Poznámka
Pokud v tomto příkladu celkové využití procesoru překročí 75 % celkové využití procesoru, funkce automatického škálování zvýší počet jednotek zasílání zpráv pro obor názvů. Přírůstky se provádějí od 1 do 2, 2 do 4, od 4 do 8 a od 8 do 16.
Znovu vyberte + Přidat pravidlo a na stránce Pravidlo škálování postupujte takto:
Vyberte metriku z rozevíracího seznamu Název metriky . V tomto příkladu je to procesor.
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í.
V části Akce vyberte operaci. V tomto příkladu je nastavená na Hodnotu Zmenšit.
Pak vyberte Přidat.
Poznámka
Pokud v tomto příkladu celkové využití procesoru klesne celkové využití procesoru pod 25 %, funkce automatického škálování sníží počet jednotek zasílání zpráv pro obor názvů. Dekrementy se provádějí od 16 do 8, od 8 do 4, od 4 do 2 a od 2 do 1.
Nastavte minimální a maximální a výchozí počet jednotek zasílání zpráv.
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
Postupujte podle těchto kroků a nakonfigurujte pravidlo pro škálování oboru názvů tak, aby používal 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í.
Na stránce Nastavení automatického škálování vyberte Vlastní automatické škálování u možnosti Zvolit způsob škálování prostředku .
V části Výchozí na stránce zadejte název výchozí podmínky.
V části Režim škálování vyberte Škálovat na konkrétní jednotky zasílání zpráv.
V části Jednotky zasílání zpráv vyberte počet výchozích jednotek 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. Pro tyto další nevýchozí podmínky 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
Na stránce Nastavení automatického škálování vyberte Vlastní automatické škálování u možnosti Zvolit způsob škálování prostředku .
V bloku Výchozí vyberte Přidat podmínku škálování.
Zadejte název podmínky.
Ověřte, že je vybraná možnost Škálovat na základě metriky .
Pokud chcete přidat pravidlo, které zvýší počet jednotek zasílání zpráv, když celkové využití procesoru překročí 75 %, vyberte + Přidat pravidlo . Postupujte podle pokynů v části Výchozí podmínka .
Nastavte minimální a maximální a výchozí počet jednotek zasílání zpráv.
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.) v týdnu.
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), aby podmínka byla v platnosti.
Pokud vyberete Opakovat konkrétní dny, vyberte dny v týdnu, časové pásmo, počáteční čas a koncový čas, kdy má podmínka platit.
Škálování na určitý počet jednotek zasílání zpráv
Na stránce Nastavení automatického škálování vyberte Vlastní automatické škálování u možnosti Zvolit způsob škálování prostředku .
V bloku Výchozí vyberte Přidat podmínku škálování.
Zadejte název podmínky.
V části Režim škálování vyberte možnost Škálovat na konkrétní jednotky zasílání zpráv.
V rozevíracím seznamu vyberte počet jednotek zasílání zpráv .
Jako plán zadejte počáteční a koncové datum podmínky nebo vyberte konkrétní dny (pondělí, úterý atd.) týdne a časů.
- 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 podmínka byla v platnosti.
- Pokud vyberete Opakovat konkrétní dny, vyberte dny v týdnu, časové pásmo, počáteční čas a koncový čas, kdy má podmínka platit.
Další informace o tom, jak nastavení automatického škálování fungují, 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é kontrolujete při rozhodování o automatickém škálování, můžou být staré 5 až 10 minut. Pokud pracujete s rychlými úlohami, doporučujeme, abyste měli kratší dobu vertikálního navýšení kapacity a delší dobu trvání vertikálního snížení kapacity (> 10 minut), abyste měli jistotu, že je k dispozici dostatek jednotek zasílání zpráv pro zpracování rychlých úloh.
Pokud dojde k selhání kvůli nedostatku kapacity (nejsou k dispozici žádné jednotky pro zasílání zpráv), vytvořte u nás lístek podpory.
Historie spuštění
Přepněte na kartu Historie spuštění na stránce Měřítko a zobrazte graf, který vykresluje počet jednotek zasílání zpráv podle pozorování 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ázáno, nebo je v období přestávky.
Oznámení
Přepněte na kartu Notify (Oznámení ) na stránce Scale (Škálovat ) 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 do koncových bodů HTTP nebo HTTPS vystavených webhooky.
Konfigurace pomocí šablony Resource Manager
Následující ukázkovou šablonu Resource Manager můžete použít k vytvoření oboru názvů služby Service Bus 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í: Zvyšte jednotky zasílání zpráv, když průměrné využití procesoru překročí 75 %, a snižte jednotky zasílání zpráv, pokud průměrné využití procesoru klesne pod 25 %.
- Přiřaďte k oboru názvů dvě jednotky zasílání zpráv o víkendech.
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 konfiguraci nastavení automatického škálování v Azure Portal vyberte json na panelu příkazů na stránce Škálování.
Pak do oddílu resources
šablony Resource Manager zahrňte JSON, jak je znázorněno v předchozím příkladu.
Další aspekty
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 zvyšují (1 –> 2 –> 4 –> 8 –> 16) nebo se postupně snižují (16 –> 8 –> 4 –> 2 –> 1).
Když vytvoříte další podmínky, jednotky zasílání zpráv se nemusí postupně navyšovat nebo snižovat. Předpokládejme, že máte definované dva profily, jak je znázorněno v následujícím příkladu. V 6:00 UTC jsou jednotky pro zasílání zpráv nastaveny na hodnotu 16 a ve 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 jednotky zasílání zpráv postupně narůstaly nebo snižovaly.
Další kroky
Další informace o jednotkách zasílání zpráv najdete v tématu Zasílání zpráv na úrovni Premium.