Azure Service Bus ad alanının mesajlaşma birimlerini otomatik olarak güncelleştirme

Otomatik ölçeklendirme, uygulamanızdaki yükü işlemek için doğru miktarda kaynağa sahip olmanıza olanak tanır. Yük artışlarını işlemek için kaynaklar eklemenize ve boşta duran kaynakları kaldırarak tasarruf etmenizi sağlar. Azure İzleyici'nin Otomatik Ölçeklendirme özelliği hakkında daha fazla bilgi edinmek için bkz. Microsoft Azure'da otomatik ölçeklendirmeye genel bakış.

Service Bus Premium Mesajlaşma Hizmeti, CPU'da ve bellek düzeyinde kaynak yalıtımına olanak sağladığından her müşterinin iş yükü yalıtımlı şekilde çalışır. Bu kaynak kapsayıcısı mesajlaşma birimi olarak adlandırılır. Mesajlaşma birimleri hakkında daha fazla bilgi edinmek için bkz. Service Bus Premium Mesajlaşma.

Service Bus premium ad alanları için Otomatik Ölçeklendirme özelliğini kullanarak, en az ve en fazla sayıda mesajlaşma birimi belirtebilir ve bir dizi kurala göre otomatik olarak mesajlaşma birimleri ekleyebilir veya kaldırabilirsiniz.

Örneğin, Otomatik Ölçeklendirme özelliğini kullanarak Service Bus ad alanları için aşağıdaki ölçeklendirme senaryolarını uygulayabilirsiniz.

  • Ad alanının CPU kullanımı %75'in üzerine çıktığında Service Bus ad alanı için mesajlaşma birimlerini artırın.
  • Ad alanının CPU kullanımı %25'in altına düştüğünde Service Bus ad alanının mesajlaşma birimlerini azaltın.
  • İş saatleri içinde daha fazla ve kapalı saatlerde daha az mesajlaşma birimi kullanın.

Bu makalede, Azure portal ve Azure Resource Manager şablonunu kullanarak Service Bus ad alanını (mesajlaşma birimlerini güncelleştirme) nasıl otomatik olarak ölçeklendirebileceğiniz gösterilmektedir.

Önemli

Bu makale yalnızca Azure Service Bus premium katmanı için geçerlidir.

Azure portalını kullanarak yapılandırma

Bu bölümde, Service Bus ad alanı için mesajlaşma birimlerinin otomatik ölçeklendirmesini yapılandırmak üzere Azure portal kullanmayı öğreneceksiniz.

Otomatik ölçeklendirme ayarı sayfası

İlk olarak, Service Bus ad alanınızın Otomatik Ölçeklendirme ayarları sayfasına gitmek için bu adımları izleyin.

  1. Azure Portal oturum açın.

  2. Arama çubuğuna Service Bus yazın, açılan listeden Service Bus'ı seçin ve ENTER tuşuna basın.

  3. Ad alanları listesinden premium ad alanınızı seçin.

  4. Ölçek sayfasına geçin.

    Service Bus Ad Alanı - Ölçek sayfası

El ile ölçeklendirme

Bu ayar, ad alanı için sabit sayıda mesajlaşma birimi ayarlamanıza olanak tanır.

  1. Otomatik ölçeklendirme ayarı sayfasında, henüz seçili değilse El ile ölçeklendirme'yi seçin.

  2. Mesajlaşma birimleri ayarı için açılan listeden mesajlaşma birimi sayısını seçin.

  3. Ayarı kaydetmek için araç çubuğunda Kaydet'i seçin.

    İleti birimlerini el ile ölçeklendirme

Özel otomatik ölçeklendirme - Varsayılan koşul

Koşulları kullanarak mesajlaşma birimlerinin otomatik ölçeklendirmesini yapılandırabilirsiniz. Bu ölçek koşulu, diğer ölçek koşullarından hiçbiri eşleşmediğinde yürütülür. Varsayılan koşulu aşağıdaki yollardan biriyle ayarlayabilirsiniz:

  • Ölçüme göre ölçeklendirme (CPU veya bellek kullanımı gibi)
  • Belirli sayıda mesajlaşma birimine ölçeklendirme

Varsayılan koşul için belirli bir gün veya tarih aralığında otomatik ölçeklendirme yapmak üzere bir zamanlama ayarlayamazsınız. Zamanlamaları eşleşen diğer ölçek koşullarının hiçbiri eşleşmediğinde bu ölçek koşulu yürütülür.

Not

Service Bus, alma aktarım hızını geliştirmek için bazı iletileri önbelleğinde tutar. Service Bus önbelleği yalnızca bellek kullanımı %90 gibi belirli bir yüksek eşiği aştığında kırpır. Bu nedenle, bir varlık ileti gönderiyor ancak almıyorsa, bu iletiler önbelleğe alınır ve daha fazla bellek kullanımına yansır. Service Bus gerekirse önbelleği kırpıp sonunda bellek kullanımının kapanmasına neden olduğundan endişelenecek bir şey yoktur. Bellek, ad alanıyla ilgili performans veya başka bir sorun olmadığı sürece herhangi bir soruna neden olmaz. Service Bus ile otomatik ölçeklendirme için CPU kullanım ölçümünü kullanmanızı öneririz.

Ölçüme göre ölçeklendirme

Aşağıdaki yordamda, CPU kullanımı %75'in üzerinde olduğunda mesajlaşma birimlerini otomatik olarak artırmak (ölçeği genişletmek) ve CPU kullanımı %25'in altında olduğunda mesajlaşma birimlerini azaltmak (ölçeği daraltmak) için bir koşul ekleme işlemi gösterilmektedir. Artışlar 1'den 2'ye, 2'den 4'e, 4'ten 8'e ve 8'den 16'ya kadar yapılır. Benzer şekilde, azalmalar 16'dan 8'e, 8'den 4'e, 4'ten 2'ye ve 2'den 1'e kadar yapılır.

  1. Otomatik ölçeklendirme ayarı sayfasında, Kaynağınızın nasıl ölçeklendirileceğini seçin seçeneği için Özel otomatik ölçeklendirme'yi seçin.

  2. Sayfanın Varsayılan bölümünde, varsayılan koşul için bir ad belirtin. Metni düzenlemek için kalem simgesini seçin.

  3. Ölçek modu için bir ölçüme göre ölçeklendir'i seçin.

  4. + Kural ekle'yi seçin.

    Varsayılan - ölçüme göre ölçeklendirme

  5. Ölçek kuralı sayfasında şu adımları izleyin:

    1. Ölçüm adı açılan listesinden bir ölçüm seçin. Bu örnekte CPU'dır.

    2. Bir işleç ve eşik değerleri seçin. Bu örnekte, ölçek eylemini tetiklemek için Ölçüm eşiği için büyüktür ve 75'tir.

    3. Eylem bölümünden bir işlem seçin. Bu örnekte Artır olarak ayarlanmıştır.

    4. Ardından Ekle'yi seçin

      Varsayılan - CPU kullanımı %75'ten büyükse ölçeği genişletme

      Not

      Bu örnekte genel CPU kullanımı %75'in üzerine çıkarsa, otomatik ölçeklendirme özelliği ad alanı için mesajlaşma birimlerini artırır. Artışlar 1'den 2'ye, 2'den 4'e, 4'ten 8'e ve 8'den 16'ya kadar yapılır.

  6. + Kural ekle'yi yeniden seçin ve Ölçek kuralı sayfasında şu adımları izleyin:

    1. Ölçüm adı açılan listesinden bir ölçüm seçin. Bu örnekte CPU'dır.

    2. Bir işleç ve eşik değerleri seçin. Bu örnekte, ölçeklendirme eylemini tetiklemek için Ölçüm eşiği için küçük ve 25'tir.

    3. Eylem bölümünden bir işlem seçin. Bu örnekte Azalt olarak ayarlanmıştır.

    4. Ardından Ekle'yi seçin

      Varsayılan - CPU kullanımı %25'in altındaysa ölçeği daraltma

      Not

      Bu örnekte genel CPU kullanımı %25'in altına düşerse otomatik ölçeklendirme özelliği ad alanının mesajlaşma birimlerini azaltır. Azalmalar 16'dan 8'e, 8'den 4'e, 4'ten 2'ye ve 2'den 1'e kadar yapılır.

  7. En düşük ve en yüksek ve varsayılan mesajlaşma birimi sayısını ayarlayın.

    Bir ölçümü temel alan varsayılan kural

  8. Otomatik ölçeklendirme ayarını kaydetmek için araç çubuğunda Kaydet'i seçin.

Belirli sayıda mesajlaşma birimine ölçeklendirme

Ad alanını belirli sayıda mesajlaşma birimi kullanacak şekilde ölçeklendirmek üzere kuralı yapılandırmak için bu adımları izleyin. Yine, diğer ölçek koşullarından hiçbiri eşleşmediğinde varsayılan koşul uygulanır.

  1. Otomatik ölçeklendirme ayarı sayfasında, Kaynağınızın nasıl ölçeklendirileceğini seçin seçeneği için Özel otomatik ölçeklendirme'yi seçin.

  2. Sayfanın Varsayılan bölümünde, varsayılan koşul için bir ad belirtin.

  3. Ölçeklendirme modu için Belirli mesajlaşma birimlerineölçeklendir'i seçin.

  4. Mesajlaşma birimleri için varsayılan mesajlaşma birimi sayısını seçin.

    Varsayılan - belirli mesajlaşma birimlerine ölçeklendirme

Özel otomatik ölçeklendirme - ek koşullar

Önceki bölümde, otomatik ölçeklendirme ayarı için varsayılan koşulun nasıl ekleneceği gösterilmektedir. Bu bölümde, otomatik ölçeklendirme ayarına nasıl daha fazla koşul ekleneceği gösterilmektedir. Bu ek varsayılan olmayan koşullar için, haftanın belirli günlerine veya tarih aralığına göre bir zamanlama ayarlayabilirsiniz.

Ölçüme göre ölçeklendirme

  1. Otomatik ölçeklendirme ayarı sayfasında, Kaynağınızın nasıl ölçeklendirileceğini seçin seçeneği için Özel otomatik ölçeklendirme'yi seçin.

  2. Varsayılan blok altında Ölçek koşulu ekle'yi seçin.

    Özel - ölçek koşulu bağlantısı ekleme

  3. Koşul için bir ad belirtin.

  4. Ölçüme göre ölçeklendir seçeneğinin belirlendiğini onaylayın.

  5. Genel CPU kullanımı %75'in üzerine çıktığında mesajlaşma birimlerini artırmak için + Kural ekle'yi seçin. Varsayılan koşul bölümündeki adımları izleyin.

  6. En düşük ve en yüksek ve varsayılan mesajlaşma birimi sayısını ayarlayın.

  7. Özel bir koşulda zamanlama da ayarlayabilirsiniz (ancak varsayılan koşulda ayarlanmaz). Koşulun başlangıç ve bitiş tarihlerini belirtebilirsiniz (veya) haftanın belirli günlerini (Pazartesi, Salı vb.) seçebilirsiniz.

    1. Başlangıç/bitiş tarihlerini belirtin'i seçerseniz, koşulun geçerli olması için Saat Dilimi, Başlangıç tarihi ve saative Bitiş tarihi ve saatini (aşağıdaki resimde gösterildiği gibi) seçin.

      Mesajlaşma birimi sayısı için en düşük, en yüksek ve varsayılan değerler

    2. Belirli günleri yinele'yi seçerseniz, koşulun geçerli olması gereken haftanın günlerini, saat dilimini, başlangıç saatini ve bitiş saatini seçin.

      Belirli günleri yinele

Belirli sayıda mesajlaşma birimine ölçeklendirin

  1. Otomatik ölçeklendirme ayarı sayfasında, Kaynağınızın nasıl ölçeklendirileceğini seçin seçeneği için Özel otomatik ölçeklendirme'yi seçin.

  2. Varsayılan blok altında Ölçek koşulu ekle'yi seçin.

    Özel - ölçek koşulu bağlantısı ekleme

  3. Koşul için bir ad belirtin.

  4. Ölçeklendirme modu için belirli mesajlaşma birimlerine ölçeklendir seçeneğini belirleyin.

  5. Açılan listeden mesajlaşma birimi sayısını seçin.

  6. Zamanlama için, koşul için başlangıç ve bitiş tarihlerini belirtin (veya) haftanın ve saatlerin belirli günlerini (Pazartesi, Salı vb.) seçin.

    1. Başlangıç/bitiş tarihlerini belirtin'i seçerseniz, koşulun geçerli olması için Saat Dilimi, Başlangıç tarihi ve saative Bitiş tarihi ve saati'ni seçin.

    belirli mesajlaşma birimlerine ölçeklendirme - başlangıç ve bitiş tarihleri

    1. Belirli günleri yinele'yi seçerseniz, koşulun geçerli olması gereken haftanın günlerini, saat dilimini, başlangıç saatini ve bitiş saatini seçin.

    belirli mesajlaşma birimlerine ölçeklendirme - belirli günleri yineleme

    Otomatik ölçeklendirme ayarlarının nasıl çalıştığı, özellikle de bir profili veya koşulu seçme ve birden çok kuralı değerlendirme hakkında daha fazla bilgi edinmek için bkz. Otomatik ölçeklendirme ayarlarını anlama.

    Not

    • Otomatik ölçeklendirmeyle ilgili kararlar almak için gözden geçirdiğiniz ölçümler 5-10 dakikalık olabilir. Yoğun iş yükleriyle ilgilenirken, yüksek iş yüklerini işlemek için yeterli mesajlaşma birimi olduğundan emin olmak için ölçeği artırma için daha kısa sürelere ve ölçeği azaltma (> 10 dakika) için daha uzun sürelere sahip olmanız önerilir.

    • Kapasite yetersizliğinden kaynaklanan hatalar görürseniz (kullanılabilir mesajlaşma birimi yok), bizimle birlikte bir destek bileti oluşturun.

Çalıştırma geçmişi

Otomatik ölçeklendirme altyapısı tarafından gözlemlenen ileti birimi sayısını gösteren bir grafik görmek için Ölçek sayfasındaki Çalıştırma geçmişi sekmesine geçin. Grafiğin boş olması, otomatik ölçeklendirmenin yapılandırılmamış veya yapılandırılmamış ancak devre dışı bırakıldığı ya da bekleme süresinde olduğu anlamına gelir.

**Ölçek** sayfasında **Çalıştırma geçmişi**'ni gösteren ekran görüntüsü.

Bildirimler

Ölçek sayfasındaki Bildirim sekmesine geçiş yapın:

  • Yöneticilere, ortak yöneticilere ve diğer yöneticilere bildirim e-postaları göndermeyi etkinleştirin.

  • Web kancaları tarafından kullanıma sunulan http veya HTTPS uç noktalarına bildirim e-postaları göndermeyi etkinleştirin.

    **Ölçek** sayfasının **Bildirim** sekmesini gösteren ekran görüntüsü.

Resource Manager şablonu kullanarak yapılandırma

Bir kuyrukla Service Bus ad alanı oluşturmak ve ad alanı için otomatik ölçeklendirme ayarlarını yapılandırmak için aşağıdaki örnek Resource Manager şablonunu kullanabilirsiniz. Bu örnekte iki ölçek koşulu belirtilmiştir.

  • Varsayılan ölçek koşulu: Ortalama CPU kullanımı %75'in üzerine çıktığında mesajlaşma birimlerini artırın ve ortalama CPU kullanımı %25'in altına düştüğünde mesajlaşma birimlerini azaltın.
  • Hafta sonları ad alanına iki mesajlaşma birimi atayın.

Şablon

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

Azure portal otomatik ölçeklendirme ayarı kaynağı için bir JSON örneği de oluşturabilirsiniz. Azure portal otomatik ölçeklendirme ayarlarını yapılandırdıktan sonra Ölçek sayfasının komut çubuğunda JSON'u seçin.

Azure portal **Ölçek** sayfasının komut çubuğundaki JSON düğmesinin seçimini gösteren resim.

Ardından, önceki örnekte gösterildiği gibi Resource Manager şablonunun bölümüne JSON'u resources ekleyin.

Diğer konular

Varsayılan koşul veya profille Özel otomatik ölçeklendirme seçeneğini kullandığınızda, mesajlaşma birimleri aşamalı olarak artırılır (1 -> 2 -> 4 -> 8 -> 16) veya azaltılır (16 -> 8 -> 4 -> 2 -> 1).

Ek koşullar oluşturduğunuzda, mesajlaşma birimleri aşamalı olarak artırılamayabilir veya azaltılamayabilir. Aşağıdaki örnekte gösterildiği gibi tanımlanmış iki profiliniz olduğunu varsayalım. Saat 06:00 UTC'de mesajlaşma birimleri 16 olarak ayarlanır ve 21:00 UTC'de 1'e indirilir.

{

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

Mesajlaşma birimlerinin kademeli olarak artırılmasını veya azaltılmasını sağlayan kurallar oluşturmanızı öneririz.

Sonraki adımlar

Mesajlaşma birimleri hakkında bilgi edinmek için bkz. Premium mesajlaşma