Megosztás a következőn keresztül:


Azure Service Bus-névtér üzenetkezelési egységeinek automatikus frissítése

Az automatikus skálázás lehetővé teszi, hogy a megfelelő mennyiségű erőforrás fusson az alkalmazás terhelésének kezeléséhez. Lehetővé teszi, hogy erőforrásokat adjon hozzá a terhelés növekedésének kezeléséhez, és pénzt takarítson meg az inaktív erőforrások eltávolításával. Az Azure Monitor automatikus skálázási funkciójával kapcsolatos további információkért tekintse meg a Microsoft Azure automatikus skálázási funkciójának áttekintését.

A Service Bus prémium szintű üzenetkezelés erőforrás-elkülönítést biztosít a CPU és a memória szintjén, így az ügyfél minden számítási feladata elkülönítve fut. Ennek az erőforrás-tárolónak a neve üzenetkezelési egység. Az üzenetkezelési egységekről további információt a Service Bus Premium Messaging szolgáltatásban talál.

A Prémium szintű Service Bus-névterek automatikus skálázási funkciójával megadhatja az üzenetkezelési egységek minimális és maximális számát, és automatikusan hozzáadhat vagy eltávolíthat üzenetküldő egységeket egy szabálykészlet alapján.

A Service Bus-névterekhez például az alábbi skálázási forgatókönyveket implementálhatja az automatikus skálázási funkcióval.

  • Növelje a Service Bus-névtér üzenetkezelési egységeinek értékét, ha a névtér processzorhasználata meghaladja a 75%-ot.
  • Csökkentse a Service Bus-névtér üzenetkezelési egységeinek mennyiségét, ha a névtér processzorhasználata 25% alá csökken.
  • Használjon több üzenetkezelési egységet munkaidőben, és kevesebbet munkaidőn kívül.

Ez a cikk bemutatja, hogyan skálázhat automatikusan egy Service Bus-névteret (üzenetkezelési egységek frissítését) az Azure Portal és egy Azure Resource Manager-sablon használatával.

Fontos

Ez a cikk csak az Azure Service Bus prémium szintű csomagjára vonatkozik.

Konfigurálás az Azure Portal használatával

Ebben a szakaszban megtudhatja, hogyan konfigurálhatja a Service Bus-névtér üzenetkezelési egységeinek automatikus skálázását az Azure Portal használatával.

Automatikus méretezés beállítási lapja

Először az alábbi lépéseket követve lépjen a Service Bus-névtér automatikus skálázási beállításainak lapjára.

  1. Jelentkezzen be az Azure Portalra.

  2. A keresősávba írja be a Service Bus kifejezést, válassza a Service Bus lehetőséget a legördülő listából, és nyomja le az ENTER billentyűt.

  3. Válassza ki a prémium névteret a névterek listájából.

  4. Váltson a Méretezés lapra.

    Service Bus Namespace – Skálázás lap

Manuális skálázás

Ezzel a beállítással rögzített számú üzenetegységet állíthat be a névtérhez.

  1. Az Automatikus méretezés beállítás lapon válassza a Manuális méretezés lehetőséget, ha még nincs kijelölve.

  2. Az üzenetkezelési egységek beállításához válassza ki az üzenetkezelési egységek számát a legördülő listából.

  3. A beállítás mentéséhez válassza a Mentés az eszköztáron lehetőséget.

    Üzenetkezelési egységek manuális méretezése

Egyéni automatikus skálázás – Alapértelmezett feltétel

Az üzenetkezelési egységek automatikus skálázását konfigurálhatja feltételek használatával. Ez a skálázási feltétel akkor lesz végrehajtva, ha a többi skálázási feltétel nem egyezik. Az alapértelmezett feltételt az alábbi módok egyikével állíthatja be:

  • Skálázás metrika alapján (például processzor- vagy memóriahasználat)
  • Skálázás adott számú üzenetküldő egységre

Egy alapértelmezett feltételhez nem állíthat be automatikus skálázási ütemezést egy adott napon vagy dátumtartományon. Ezt a méretezési feltételt akkor hajtja végre a rendszer, ha az ütemezéssel rendelkező többi méretezési feltétel egyike sem egyezik.

Feljegyzés

A fogadási átviteli sebesség javítása érdekében a Service Bus bizonyos üzeneteket a gyorsítótárában tart. A Service Bus csak akkor vágja le a gyorsítótárat, ha a memóriahasználat túllép egy bizonyos magas küszöbértéket, például 80%-ot. Tehát ha egy entitás üzeneteket küld, de nem fogadja őket, az üzenetek gyorsítótárazva lesznek, és a megnövekedett memóriahasználatot tükrözik. Ez általában azt jelenti, hogy nincs semmi gond, mivel a Service Bus szükség esetén levágja a gyorsítótárat, ami végül a memóriahasználat leeséséhez vezet. Ezért ajánlott csak akkor vertikálisan felskálázni, ha a memóriahasználat eléri a 90%-ot. Azt is javasoljuk, hogy ne skálázza le a skálázást, amíg a memóriahasználat nem éri el a 90%-ot.

Skálázás metrika alapján

Az alábbi eljárás bemutatja, hogyan adhat hozzá feltételt az üzenetküldési egységek automatikus növeléséhez (vertikális felskálázáshoz), ha a processzorhasználat nagyobb, mint 75%, és csökkentheti az üzenetkezelési egységeket (skálázás), ha a processzorhasználat kisebb, mint 25%. A növekmények 1–2, 2–4, 4–8 és 8–16 közötti lépések. Hasonlóképpen, a csökkenés 16-ról 8-ra, 8-ról 4-re, 4-ről 2-re és 2-1-re történik.

  1. Az Automatikus méretezés beállítás lapon válassza az Egyéni automatikus skálázás lehetőséget az Erőforrás méretezésének kiválasztása lehetőséghez.

  2. A lap Alapértelmezett szakaszában adja meg az alapértelmezett feltétel nevét. A szöveg szerkesztéséhez válassza a ceruza ikont.

  3. A Méretezés metrika alapján válassza a Méretezés lehetőséget a Méretezés módhoz.

  4. Válassza a + Szabály hozzáadása lehetőséget.

    Alapértelmezett – skálázás metrika alapján

  5. A Méretezési szabály lapon kövesse az alábbi lépéseket:

    1. Válasszon ki egy metrikát a Metrikanév legördülő listából. Ebben a példában ez a PROCESSZOR.

    2. Válasszon ki egy operátort és egy küszöbértéket. Ebben a példában a metrika küszöbértéke nagyobb, mint 75 a skálázási művelet aktiválásához.

    3. Válasszon ki egy műveletet a Művelet szakaszban. Ebben a példában a Növekedés értékre van állítva.

    4. Ezután válassza a Hozzáadás lehetőséget

      Alapértelmezett – vertikális felskálázás, ha a processzorhasználat nagyobb, mint 75%

      Feljegyzés

      Az automatikus skálázási funkció növeli a névtér üzenetkezelési egységeinek értékét, ha a teljes processzorhasználat meghaladja a 75%-ot ebben a példában. A növekmények 1–2, 2–4, 4–8 és 8–16 közötti lépések.

  6. Válassza ki ismét a + Szabály hozzáadása lehetőséget, és kövesse az alábbi lépéseket a Szabály méretezése lapon:

    1. Válasszon ki egy metrikát a Metrikanév legördülő listából. Ebben a példában ez a PROCESSZOR.

    2. Válasszon ki egy operátort és egy küszöbértéket. Ebben a példában 25-nél kisebbek a metrika küszöbértéke a skálázási művelet aktiválásához.

    3. Válasszon ki egy műveletet a Művelet szakaszban. Ebben a példában a Csökkentés értékre van állítva.

    4. Ezután válassza a Hozzáadás lehetőséget

      Alapértelmezett – skálázás, ha a processzorhasználat kisebb, mint 25%

      Feljegyzés

      Az automatikus skálázási funkció csökkenti a névtér üzenetkezelési egységeit, ha a teljes processzorhasználat 25% alá csökken ebben a példában. A csökkenés 16-tól 8-ra, 8-tól 4-re, 4-től 2-re és 2-től 1-re történik.

  7. Adja meg az üzenetkezelési egységek minimális , maximális és alapértelmezett számát.

    Alapértelmezett szabály egy metrika alapján

  8. Az automatikus skálázási beállítás mentéséhez válassza a Mentés az eszköztáron lehetőséget.

Skálázás adott számú üzenetküldő egységre

Az alábbi lépéseket követve konfigurálhatja a szabályt a névtér adott számú üzenetküldő egység használatára való skálázásához. Ismét az alapértelmezett feltétel lesz alkalmazva, ha a többi skálázási feltétel nem egyezik.

  1. Az Automatikus méretezés beállítás lapon válassza az Egyéni automatikus skálázás lehetőséget az Erőforrás méretezésének kiválasztása lehetőséghez.

  2. A lap Alapértelmezett szakaszában adja meg az alapértelmezett feltétel nevét.

  3. A Méretezés módhoz válassza a Méretezés adott üzenetkezelési egységekre lehetőséget.

  4. Az üzenetkezelési egységeknél válassza ki az alapértelmezett üzenetkezelési egységek számát.

    Alapértelmezett – skálázás adott üzenetkezelési egységekre

Egyéni automatikus skálázás – további feltételek

Az előző szakasz bemutatja, hogyan adhat hozzá alapértelmezett feltételt az automatikus skálázási beállításhoz. Ez a szakasz bemutatja, hogyan adhat hozzá további feltételeket az automatikus skálázási beállításhoz. Ezekhez a nem alapértelmezett feltételekhez beállíthat egy ütemezést egy hét adott napjai vagy egy dátumtartomány alapján.

Skálázás metrika alapján

  1. Az Automatikus méretezés beállítás lapon válassza az Egyéni automatikus skálázás lehetőséget az Erőforrás méretezésének kiválasztása lehetőséghez.

  2. Válassza a Méretezési feltétel hozzáadása lehetőséget az Alapértelmezett blokk alatt.

    Egyéni – méretezési feltétel hivatkozásának hozzáadása

  3. Adja meg a feltétel nevét.

  4. Győződjön meg arról, hogy a metrikaalapú skálázás lehetőség van kiválasztva.

  5. Válassza a + Szabály hozzáadása lehetőséget egy szabály hozzáadásához, amely növeli az üzenetkezelési egységeket, ha a teljes processzorhasználat 75% felett van. Kövesse az alapértelmezett feltételszakasz lépéseit.

  6. Adja meg az üzenetkezelési egységek minimális , maximális és alapértelmezett számát.

  7. Az ütemezést egyéni feltételen is beállíthatja (az alapértelmezett feltételt azonban nem). Megadhatja a feltétel kezdő és záró dátumát (vagy) a hét adott napjait (hétfő, kedd stb.).

    1. Ha a Kezdő/záró dátumok megadása lehetőséget választja, válassza ki az időzónát, a kezdési dátumot és az időpontot, valamint a befejezési dátumot és időpontot (az alábbi képen látható módon) a feltétel érvénybe lépéséhez.

      Az üzenetküldő egységek számának minimális, maximális és alapértelmezett értékei

    2. Ha az Adott napok ismétlése lehetőséget választja, válassza ki a hét napjait, az időzónát, a kezdési és a befejezési időpontot, amikor a feltételnek teljesülnie kell.

      Adott napokon ismétlődik

Skálázás adott számú üzenetküldő egységre

  1. Az Automatikus méretezés beállítás lapon válassza az Egyéni automatikus skálázás lehetőséget az Erőforrás méretezésének kiválasztása lehetőséghez.

  2. Válassza a Méretezési feltétel hozzáadása lehetőséget az Alapértelmezett blokk alatt.

    Egyéni – méretezési feltétel hivatkozásának hozzáadása

  3. Adja meg a feltétel nevét.

  4. A Méretezés módhoz válassza az adott üzenetegységre történő skálázás lehetőséget.

  5. Válassza ki az üzenetkezelési egységek számát a legördülő listából.

  6. Az ütemezéshez adja meg a feltétel (vagy) adott napjainak (hétfő, kedd stb.) kezdő és záró dátumát.

    1. Ha a Kezdő/záró dátumok megadása lehetőséget választja, válassza ki az időzónát, a kezdési dátumot és az időpontot, valamint a feltétel érvénybe lépésének dátumát és időpontját.

    skálázás adott üzenetkezelési egységekre – kezdő és záró dátumok

    1. Ha az Adott napok ismétlése lehetőséget választja, válassza ki a hét napjait, az időzónát, a kezdési és a befejezési időpontot, amikor a feltételnek teljesülnie kell.

    skálázás adott üzenetkezelési egységekre – adott napok ismétlése

    Ha többet szeretne megtudni az automatikus skálázási beállítások működéséről, különösen arról, hogy hogyan választ ki egy profilt vagy feltételt, és hogyan értékel ki több szabályt, olvassa el az Automatikus skálázási beállítások ismertetése című témakört.

    Feljegyzés

    • Az automatikus skálázással kapcsolatos döntések meghozatalához áttekintett metrikák 5–10 percesek lehetnek. Ha rugalmas számítási feladatokkal foglalkozik, javasoljuk, hogy rövidebb időtartamot biztosítson a vertikális felskálázáshoz, és hosszabb időtartamot (> 10 perc) a leskálázáshoz, hogy elegendő üzenetkezelési egység legyen a szikrázó számítási feladatok feldolgozásához.

    • Ha a kapacitás hiánya miatt hibák jelentkeznek (nincs elérhető üzenetkezelési egység), forduljon hozzánk támogatási jegyet. A kapacitásmegvalósításra a környezet korlátai vonatkoznak, és a legjobb erőfeszítésünknek megfelelően hajtjuk végre.

Futtatási előzmények

Váltson a Méretezés lapon a Futtatás előzményei lapra egy diagram megjelenítéséhez, amely az automatikus skálázási motor által megfigyelt üzenetkezelési egységek számát ábrázolja. Ha a diagram üres, az azt jelenti, hogy az automatikus skálázás nincs konfigurálva vagy konfigurálva, de le van tiltva, vagy lehűlési időszakban van.

A **Futtatási előzmények** képernyőképe a **Méretezés** lapon.

Értesítések

Váltson a Méretezés lap Értesítés lapjára a következőre:

  • Értesítési e-mailek küldésének engedélyezése rendszergazdáknak, társadminisztrátoroknak és további rendszergazdáknak.

  • Értesítési e-mailek küldésének engedélyezése a webhookok által közzétett HTTP- vagy HTTPS-végpontokra.

    Képernyőkép a **Méretezés** lap **Értesítés** lapjáról.

Konfigurálás Resource Manager-sablon használatával

Az alábbi Resource Manager-mintasablon használatával létrehozhat egy Service Bus-névteret egy üzenetsorsal, és konfigurálhatja a névtér automatikus méretezési beállításait. Ebben a példában két skálázási feltétel van megadva.

  • Alapértelmezett méretezési feltétel: növelje az üzenetkezelési egységeket, ha az átlagos processzorhasználat 75% felett van, és csökkentse az üzenetkezelési egységeket, ha az átlagos processzorhasználat 25% alá csökken.
  • Két üzenetküldő egység hozzárendelése a névtérhez hétvégén.

Sablon

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

JSON-példát is létrehozhat egy automatikus skálázási beállítási erőforráshoz az Azure Portalon. Miután konfigurálta az automatikus méretezési beállításokat az Azure Portalon, válassza a JSON lehetőséget a Méretezés lap parancssávján.

Az Azure Portal **Méretezés** oldalának parancssávján található JSON gomb kiválasztását ábrázoló kép.

Ezután adja meg a JSON-t egy resources Resource Manager-sablon szakaszában az előző példában látható módon.

További szempontok

Ha az Egyéni automatikus skálázás beállítást az Alapértelmezett feltétellel vagy profillal használja, az üzenetkezelési egységek száma fokozatosan növekszik (1 –> 2 –> 4 –> 8 –> 16) vagy csökken (16 –> 8 –> 4 –> 2 –> 1).

Ha további feltételeket hoz létre, előfordulhat, hogy az üzenetkezelési egységeket nem lehet fokozatosan növelni vagy csökkenteni. Tegyük fel, hogy két profil van definiálva az alábbi példában látható módon. 06:00 -kor (UTC) az üzenetküldési egységek 16-ra vannak állítva, és 21:00 -kor (UTC) 1-re csökkennek.

{

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

Javasoljuk, hogy hozzon létre olyan szabályokat, amelyek az üzenetkezelési egységeket fokozatosan növelik vagy csökkentik.

Következő lépések

Az üzenetkezelési egységekről a Prémium szintű üzenetkezelés című témakörben olvashat