Aracılığıyla paylaş


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 ayrıca 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ı için mesajlaşma birimlerini azaltın.
  • İş saatleri içinde daha fazla ve kapalı saatlerde daha az mesajlaşma birimi kullanın.

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

Önemli

Bu makale yalnızca Azure Service Bus'ın 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 için Azure portalını 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’ında 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çekleme

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.

    Mesajlaşma 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çeklendirin

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ı olan 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ı %80 gibi belirli bir yüksek eşiği aştığında keser. Bu nedenle, bir varlık ileti gönderiyor ancak bunları almıyorsa, bu iletiler önbelleğe alınır ve daha fazla bellek kullanımına yansır. Normalde bu, Service Bus gerekirse önbelleği kırpıp bellek kullanımının kapanmasına neden olduğundan endişelenecek bir şey olmadığı anlamına gelir. Bu nedenle, yalnızca bellek kullanımı %90'a ulaştığında ölçeği artırmanız önerilir. Ayrıca, bellek kullanımı %90'ın altına inmediği sürece ölçeği azaltmamak önerilir.

Bir ölçümü temel alan ölçek

Aşağıdaki yordamda, CPU kullanımı %75'ten büyük olduğunda mesajlaşma birimlerini otomatik olarak artırmaya (ölçeği genişletmeye) ve CPU kullanımı %25'in altında olduğunda mesajlaşma birimlerini (ölçeği daraltma) azaltmaya yönelik 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 yapılır. Benzer şekilde, azaltmalar 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ı ölçeklendirmeyi 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

      Genel CPU kullanımı bu örnekte %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 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çek eylemini tetiklemek için Ölçüm eşiği için 25'ten küçüktür.

    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 daralt

      Not

      Genel CPU kullanımı bu örnekte %25'in altına iniyorsa, otomatik ölçeklendirme özelliği ad alanının mesajlaşma birimlerini azaltır. Azaltmalar 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.

    Ölçüme dayalı 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çeklendirin

Belirli sayıda mesajlaşma birimi kullanmak üzere ad alanını ölçeklendirmek üzere kuralı yapılandırmak için bu adımları izleyin. Diğer ölçek koşullarından hiçbiri eşleşmediğinde de varsayılan koşul uygulanır.

  1. Otomatik ölçeklendirme ayarı sayfasında, Kaynağınızı ölçeklendirmeyi 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çek 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çeklendirin

Ö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.

Bir ölçümü temel alan ölçek

  1. Otomatik ölçeklendirme ayarı sayfasında, Kaynağınızı ölçeklendirmeyi 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 da zamanlama ayarlayabilirsiniz (ancak varsayılan koşulda ayarlanmaz). Bir haftanın belirli günlerini (Pazartesi, Salı vb.) seçmek için başlangıç ve bitiş tarihlerini belirtebilirsiniz.)

    1. Başlangıç/bitiş tarihlerini belirtin'i seçerseniz, koşulun geçerli olması için Saat Dilimi, Başlangıç tarihi ve saati ve 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ünlerde yinele

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

  1. Otomatik ölçeklendirme ayarı sayfasında, Kaynağınızı ölçeklendirmeyi 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çek 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, bir hafta ve saat için belirli günleri (Pazartesi, Salı vb.) seçme koşulu (veya) için başlangıç ve bitiş tarihlerini belirtin.

    1. Başlangıç/bitiş tarihlerini belirtin'i seçerseniz, koşulun geçerli olması için Saat Dilimi, Başlangıç tarihi ve saati ve 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ığı hakkında daha fazla bilgi edinmek için, ö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çireceğiniz ölçümler 5-10 dakika eski olabilir. Yoğun iş yükleriyle ilgilenirken, yüksek iş yüklerini işlemek için yeterli ileti 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 bir destek bileti oluşturun. Kapasitenin karşılanması, ortamın kısıtlamalarına tabidir ve elimizden gelen çabayı gösterir.

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

Otomatik ölçeklendirme altyapısı tarafından gözlemlenen ileti birimi sayısını çizen bir grafik görmek için Ölçek sayfasındaki Çalıştırma geçmişi sekmesine geçin. Grafik boşsa, otomatik ölçeklendirme yapılandırılmamış veya yapılandırılmamış ama devre dışı bırakılmış ya da bekleme süresi içinde demektir.

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

Notifications

Ölçek sayfasındaki Bildirim sekmesine şu şekilde geçin:

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

  • Web kancaları tarafından kullanıma sunulan bir 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 belirtilir.

  • 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.

Template

{
	"$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ından otomatik ölçeklendirme ayarı kaynağı için bir JSON örneği de oluşturabilirsiniz. Azure portalında otomatik ölçeklendirme ayarlarını yapılandırdıktan sonra Ölçek sayfasının komut çubuğunda JSON'ı seçin.

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

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

Dikkat edilecek diğer noktalar

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. UTC saat 06:00'da mesajlaşma birimleri 16 olarak ayarlanır ve UTC 21:00'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ı veya azalması gibi kurallar oluşturmanızı öneririz.

Sonraki adımlar

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