تحديث وحدات مراسلة مساحة اسم Azure Service Bus تلقائيًا

يسمح لك التحجيم التلقائي بتشغيل الكمية المناسبة من الموارد لمعالجة التحميل على التطبيق الخاص بك. فإنه يسمح لك بإضافة موارد لمعالجة الزيادات في الحمل وأيضا توفير المال عن طريق إزالة الموارد الخاملة. راجع نظرة عامة حول التحجيم التلقائي في Microsoft Azure لمعرفة المزيد حول ميزة التحجيم التلقائي في Azure Monitor.

توفر المراسلة المتميزة لـ Service Bus عزل الموارد على مستوى الـ CPU وعلى مستوى الذاكرة بحيث يتم تشغيل حمل العمل بشكل منفصل. وتُسمى حاوية المورد وحدة الرسائل لمعرفة المزيد حول وحدات المراسلة، راجع مراسلة Service Bus المتميزة.

باستخدام ميزة التحجيم التلقائي لمساحات الأسماء المميزة لـ Service Bus، يمكنك تحديد الحد الأدنى والحد الأقصى لعدد وحدات المراسلة وإضافة وحدات المراسلة أو إزالتها تلقائيًا استنادًا إلى مجموعة من القواعد.

على سبيل المثال، يمكنك تطبيق وحدات سيناريو التحجيم التلقائي التالية لمساحات أسماء Service Bus باستخدام ميزة التحجيم التلقائي.

  • زيادة وحدات المراسلة لمساحة اسم Service Bus عند استخدام CPU لمساحة الاسم بما يتجاوز 75٪.
  • إنقاص وحدات المراسلة لمساحة اسم Service Bus عند استخدام CPU لمساحة الاسم أقل من 25٪.
  • استخدم المزيد من وحدات المراسلة أثناء ساعات العمل وأقل أثناء ساعات العمل.

توضح هذه المقالة كيفية تغيير حجم مساحة اسم ناقل الخدمة تلقائيًا (تحديث وحدات الرسائل) باستخدام مدخل Azure وقالب Azure Resource Manager.

هام

تنطبق هذه المقالة على المستوى المميز لـAzure Service Bus.

تكوين باستخدام مدخل Microsoft Azure

في هذا القسم، ستتعلم كيفية استخدام مدخل Microsoft Azure لتكوين التحجيم التلقائي لوحدات المراسلة لمساحة اسم ناقل خدمة Microsoft Azure.

صفحة إعدادات التحجيم التلقائي

أولاً، اتبع الخطوات التالية للانتقال إلى صفحة إعدادات «Autoscale» لمساحة اسم Service Bus.

  1. تسجيل الدخول إلى ⁧⁩مدخل Microsoft Azure⁧⁩.

  2. في شريط «search»، اكتب Service Bus، وحدد «Service Bus» من القائمة المنسدلة، واضغط على «ENTER» .

  3. حدد «premium namespace» من قائمة مساحات الأسماء.

  4. التبديل إلى صفحة «Scale» .

    مساحة اسم Service Bus- صفحة «Scale»

التحجيم اليدوي

يسمح لك هذا الإعداد بتعيين عدد ثابت من وحدات المراسلة لمساحة الاسم.

  1. في صفحة «Autoscale setting»، حدد «Manual scale» إذا لم يكن محددًا مسبقًا.

  2. بالنسبة لإعداد وحدات المراسلة، حدد عدد وحدات المراسلة من القائمة المنسدلة.

  3. حدد «Save» على «toolbar» لحفظ الإعداد.

    «scale» وحدات المراسلة يدويًا

«autoscale» مخصص - الشرط الافتراضي

يمكنك تكوين التحجيم التلقائي لوحدات المراسلة باستخدام الشروط. يتم تنفيذ شرط التحجيم هذا عندما لا تتطابق أي من شروط التحجيم الأخرى. يمكنك تعيين الشرط الافتراضي بإحدى الطرق التالية:

  • تغيير الحجم الذي يستند إلى مقياس (مثل وحدة المعالجة المركزية أو استخدام الذاكرة)
  • تغيير حجم عدد محدد من وحدات المراسلة

لا يمكنك تعيين جدول للتحجيم التلقائي في أيام أو نطاقات تاريخ محددة لشرط افتراضي. يتم تنفيذ شرط التحجيم هذا عندما لا تتطابق أي من شروط التحجيم الأخرى مع الجداول.

ملاحظة

لتحسين معدل نقل الاستلام، يحتفظ ناقل خدمة Microsoft Azure ببعض الرسائل في ذاكرة التخزين المؤقت الخاصة به. يقوم ناقل خدمة Microsoft Azure باقتطاع ذاكرة التخزين المؤقت فقط عندما يتجاوز استخدام الذاكرة حدا مرتفعا معينا مثل 90٪. لذلك إذا كان الكيان يرسل رسائل ولكن لا يتلقىها، يتم تخزين هذه الرسائل مؤقتا ويعكس ذلك في زيادة استخدام الذاكرة. لا يوجد ما يدعو للقلق، حيث يقوم ناقل خدمة Microsoft Azure باقتطاع ذاكرة التخزين المؤقت إذا لزم الأمر، مما يؤدي في النهاية إلى انخفاض استخدام الذاكرة. لن تتسبب الذاكرة في أي مشكلة ما لم يكن هناك أداء أو أي مشكلات أخرى في مساحة الاسم. نوصي باستخدام مقياس استخدام وحدة المعالجة المركزية للتحجيم التلقائي باستخدام ناقل خدمة Microsoft Azure.

تغيير الحجم على أساس المقياس

يوضح الإجراء التالي كيفية إضافة شرط لزيادة وحدات المراسلة تلقائيًا (توسيع الحجم) عند استخدام CPU أكبر من 75٪ وتقليل وحدات المراسلة (تقليل الحجم) عند استخدام CPU أقل من 25٪. تتم الزيادات من 1 إلى 2 و2 إلى 4 و4 إلى 8 و8 إلى 16. وبالمثل، تتم التناقصات من 16 إلى 8 و8 إلى 4 و4 إلى 2 ومن 2 إلى 1.

  1. في صفحة «Autoscale setting»، حدد «Custom auto scale» لاختيار اختيار كيفية تغيير حجم المورد الخاص بك.

  2. في المقطع الافتراضي للصفحة، حدد «name» للشرط الافتراضي. حدد رمز «pencil» لتحرير النص.

  3. حدد «Scale» استنادًا إلى مقياس وضع Scale.

  4. حدد «+ Add» قاعدة.

    الافتراضي- تغيير الحجم على أساس القياس

  5. من صفحة قاعدة «Scale» ، اتبع الخطوات التالية:

    1. حدد مقياسًا من القائمة المنسدلة «Metric name». في هذا المثال، هو CPU.

    2. حدد عامل التشغيل وقيم الحد. في هذا المثال، تكون أكبر منوو75للحد الأدنى للمقياس من أجل تشغيل إجراء التحجيم.

    3. حدد «operation» في قسم «Action». في هذا المثال، يتم تعيين ذلك إلى «Increase» .

    4. ثم حدد «Add» .

      الافتراضي - «scale out» إذا كان استخدام وحدة المعالجة المركزية أكبر من 75٪

      ملاحظة

      تزيد ميزة التحجيم التلقائي وحدات المراسلة لمساحة الاسم إذا كان استخدام CPU الكلي يتجاوز 75٪ في هذا المثال. تتم الزيادات من 1 إلى 2 و2 إلى 4 و4 إلى 8 و8 إلى 16.

  6. حدد «+ Add a rule» مرة أخرى، واتبع هذه الخطوات على صفحة «Scale» القاعدة:

    1. حدد مقياسًا من القائمة المنسدلة «Metric name». في هذا المثال، هو CPU.

    2. حدد عامل التشغيل وقيم الحد. في هذا المثال، إنهاأقل منوو25للحد الأدنى للمقياس من أجل تشغيل إجراء التحجيم.

    3. حدد «operation» في قسم «Action». في هذا المثال، يتم تعيين ذلك إلى «Decrease» .

    4. ثم حدد «Add» .

      الافتراضي - «scale in» في حالة استخدام وحدة المعالجة المركزية أقل من 25٪

      ملاحظة

      تُقلل ميزة التحجيم التلقائي وحدات المراسلة لمساحة الاسم إذا كان استخدام CPU الكلي أقل من 25٪ في هذا المثال. تتم التناقصات من 16 إلى 8 و8 إلى 4 و4 إلى 2 و2 إلى 1.

  7. تعيين «minimum»و «maximum»و «default» لوحدات المراسلة.

    القاعدة الافتراضية استنادًا إلى القياس

  8. حدد «Save» على «toolbar» لحفظ إعدادات «autoscale».

تغيير حجم عدد محدد من وحدات المراسلة

اتبع هذه الخطوات لتكوين القاعدة لتوسيع مساحة اسم لاستخدام عدد محدد من وحدات المراسلة. يتم تنفيذ شرط التحجيم الافتراضي عندما لا تتطابق أي من شروط التحجيم الأخرى.

  1. في صفحة «Autoscale setting»، حدد «Custom auto scale» لاختيار اختيار كيفية تغيير حجم المورد الخاص بك.

  2. في المقطع الافتراضي للصفحة، حدد «name» للشرط الافتراضي.

  3. حدد «Scale to» وحدات مراسلة محددة لوضع التحجيم.

  4. بالنسبة لـ «Messaging units» ، حدد عدد وحدات المراسلة الافتراضية.

    الافتراضي - تغيير حجم وحدات مراسلة محددة

تحجيم تلقائي مخصص - شروط إضافية

يوضح المقطع السابق كيفية إضافة شرط افتراضي لإعداد التحجيم التلقائي. يوضح هذا القسم كيفية إضافة المزيد من الشروط إلى إعداد التحجيم التلقائي. بالنسبة لهذه الشروط الإضافية غير الافتراضية، يمكنك تعيين جدول استنادًا إلى أيام محددة في الأسبوع أو نطاق التاريخ.

تغيير الحجم على أساس المقياس

  1. في صفحة «Autoscale setting»، حدد «Custom auto scale» لاختيار اختيار كيفية تغيير حجم المورد الخاص بك.

  2. حدد «Add» شرط القياس ضمن الكتلة الافتراضية.

    مخصص - إضافة ارتباط شرط مقياس

  3. حدد «name» للشرط.

  4. تأكد من تحديد خيار «Scale» استنادًا إلى القياس.

  5. حدد «+ Add a rule» لإضافة قاعدة من أجل زيادة وحدات المراسلة عند تجاوز إجمالي استخدام وحدة المعالجة المركزية 75٪. اتبع الخطوات من قسم الشرط الافتراضي.

  6. تعيين «minimum»و «maximum»و «default» لوحدات المراسلة.

  7. يمكنك أيضًا تعيين جدول على شرط مخصص (ولكن ليس على الشرط الافتراضي). يمكنك إما تحديد تواريخ البدء والانتهاء للحالة (أو) تحديد أيام محددة (الاثنين والثلاثاء وما إلى ذلك).

    1. إذا قمت بتحديد تحديد تواريخ «start/end» ، حدد Timezoneوتاريخ ووقت البدء وتاريخ ووقت الانتهاء (كما هو موضح في الصورة التالية) لكي يكون الشرط ساري المفعول.

      القيم الدنيا والحد الأقصى والافتراضية لعدد وحدات المراسلة

    2. إذا قمت بتحديد «Repeat» أيام محددة، حدد أيام الأسبوع والمنطقة الزمنية ووقت البدء ووقت الانتهاء عند تطبيق الشرط.

      «Repeat» أيام محددة

تغيير حجم عدد محدد من وحدات المراسلة

  1. في صفحة «Autoscale setting»، حدد «Custom auto scale» لاختيار اختيار كيفية تغيير حجم المورد الخاص بك.

  2. حدد «Add» شرط القياس ضمن الكتلة الافتراضية.

    مخصص - إضافة ارتباط شرط مقياس

  3. حدد «name» للشرط.

  4. حدد خيار «Scale to» وحدات مراسلة محددة لوضع التحجيم.

  5. حدد عدد وحدات المراسلةمن القائمة المنسدلة.

  6. بالنسبة للجدول، يمكنك إما تحديد تواريخ البدء والانتهاء للحالة (أو) تحديد مواعيد وأيام محددة (الاثنين والثلاثاء وما إلى ذلك).

    1. إذا قمت بتحديد تحديد تواريخ «start/end» ، حدد Timezoneوتاريخ ووقت البدء وتاريخ ووقت الانتهاء لكي يكون الشرط ساري المفعول.

    تغيير حجم وحدات مراسلة محددة- تواريخ البدء والانتهاء

    1. إذا قمت بتحديد «Repeat» أيام محددة، حدد أيام الأسبوع والمنطقة الزمنية ووقت البدء ووقت الانتهاء عند تطبيق الشرط.

    تغيير حجم وحدات مراسلة محددة- كرر أيامًا محددة

    لمعرفة المزيد حول كيفية عمل إعدادات التحجيم التلقائي، وخاصة كيفية اختيار ملف تعريف أو شرط وتقييم قواعد متعددة، راجع فهم إعدادات التحجيم التلقائي.

    ملاحظة

    • قد تكون المقاييس التي تستعرضها لاتخاذ قرارات بشأن التحجيم التلقائي 5-10 دقائق. عند التعامل مع أحمال العمل الشائكة، نوصي بأن يكون لديك فترات أقصر لتوسيع الحجم ومدد أطول للتحجيم (> 10 دقائق) لضمان وجود وحدات مراسلة كافية لمعالجة أحمال العمل الشائكة.

    • إذا كنت ترى حالات فشل بسبب نقص القدرة الإنتاجية (لا تتوفر وحدات مراسلة)، فارفع تذكرة دعم معنا.

تشغيل المحفوظات

بدّل إلى علامة التبويب محفوظات التشغيل في صفحة تغيير الحجم لمشاهدة مخطط يرسم عدد وحدات المراسلة كما لاحظ محرك التحجيم التلقائي. إذا كان المخطط فارغًا، فهذا يعني إما أن التحجيم التلقائي لم يتم تكوينه أو تم تكوينه ولكنه معطّل، أو أنه في فترة تهدئة.

لقطة شاشة تعرض **Run history** في صفحة **Scale**.

الإشعارات

بدّل إلى علامة التبويب إعلام في صفحة تغيير الحجم إلى:

  • تمكين إرسال رسائل البريد الإلكتروني للإعلام إلى المسؤولين والمسؤولين المشاركين وأي مسؤولين إضافيين.

  • تمكين إرسال رسائل البريد الإلكتروني للإعلام إلى نقاط نهاية HTTP أو HTTPS التي تعرضها خطافات الويب.

    لقطة شاشة تعرض علامة التبويب **Notify** في صفحة **Scale**.

تكوين باستخدام قالب Resource Manager

يمكنك استخدام عينة من قالب Resource Manager التالي لإنشاء مساحة اسم ناقل خدمة مع قائمة انتظار، وتكوين إعدادات التحجيم التلقائي لمساحة الاسم. في هذا المثال، يتم تحديد شرطي مقياس.

  • شرط المقياس الافتراضي: زيادة وحدات المراسلة عندما يتجاوز متوسط استخدام وحدة المعالجة المركزية 75% وتقليل وحدات المراسلة عندما يقل متوسط استخدام وحدة المعالجة المركزية عن 25%.
  • تعيين وحدتي مراسلة إلى مساحة الاسم في عطلات نهاية الأسبوع.

قالب

{
	"$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 لمورد إعداد تحجيم تلقائي من مدخل Azure. بعد تكوين إعدادات التحجيم التلقائي في مدخل Azure، حدد JSON على شريط الأوامر لصفحة تغيير الحجم.

صورة تعرض تحديد زر JSON على شريط الأوامر لصفحة **Scale** في مدخل Microsoft Azure.

بعد ذلك، قم بتضمين JSON في قسم resources من قالب Resource Manager كما هو موضح في المثال السابق.

اعتبارات إضافية

عند استخدام خيار التحجيم التلقائي المخصص مع الشرط أو ملف التعريف الافتراضي ، تتم زيادة وحدات المراسلة (1 -> 2 -> 4 -> 8 -> 16) أو تقليلها (16 -> 8 -> 4 -> 2 -> 1) تدريجيا.

عند إنشاء شروط إضافية، قد لا يتم زيادة وحدات المراسلة أو تقليلها تدريجيا. لنفترض أن لديك ملفي تعريف معرفين كما هو موضح في المثال التالي. في الساعة 06:00 بالتوقيت العالمي المتفق عليه، يتم تعيين وحدات المراسلة إلى 16، وفي الساعة 21:00 بالتوقيت العالمي المتفق عليه، يتم تقليلها إلى 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]
				}
			}
		}
	]
}

نوصي بإنشاء قواعد بحيث يتم زيادة وحدات المراسلة أو تقليلها تدريجيا.

الخطوات التالية

لمعرفة المزيد حول وحدات المراسلة، راجع «Premium messaging».