Memperbarui unit Olahpesan namespace Azure Service Bus secara otomatis

Skala otomatis memungkinkan Anda memiliki jumlah sumber yang tepat untuk menangani beban pada aplikasi Anda. Hal ini memungkinkan Anda menambahkan sumber daya untuk menangani peningkatan beban dan juga menghemat uang dengan menghapus sumber daya yang tidak aktif. Lihat Ringkasan skala otomatis di Microsoft Azure untuk mempelajari selengkapnya tentang fitur Skala Otomatis Azure Monitor.

Service Bus Premium Messaging menyediakan isolasi sumber daya di tingkat CPU dan memori sehingga setiap beban kerja pelanggan berjalan dalam isolasi. Kontainer sumber daya ini disebut unit Olahpesan. Untuk mempelajari selengkapnya tentang unit Olahpesan, lihat Service Bus Premium Messaging.

Dengan menggunakan fitur Skala Otomatis untuk namespace premium Service Bus, Anda dapat menentukan jumlah minimum dan maksimum unit Olahpesan dan menambahkan atau menghapus unit Olahpesan secara otomatis berdasarkan set aturan.

Misalnya, Anda dapat menerapkan skenario penskalaan berikut untuk namespace Service Bus menggunakan fitur Skala Otomatis.

  • Tingkatkan unit Olahpesan untuk namespace Serivice Bus saat penggunaan CPU namespace di atas 75%.
  • Mengurangi unit Olahpesan untuk namespace Service Bus saat penggunaan CPU namespace di bawah 25%.
  • Gunakan lebih banyak unit olahpesan selama jam kerja dan lebih sedikit di luar jam kerja.

Artikel ini menunjukkan cara menskalakan namespace layanan Service Bus secara otomatis (unit Olahpesan pembaruan)menggunakan portal Microsoft Azure dan template Azure Resource Manager.

Penting

Artikel ini hanya berlaku untuk tingkat premium Azure Service Bus.

Mengonfigurasi menggunakan portal Microsoft Azure

Di bagian ini, Anda mempelajari cara menggunakan portal Azure untuk mengonfigurasi penskalaan otomatis unit olahpesan untuk namespace Bus Layanan.

Nama halaman pengaturan

Pertama, ikuti langkah-langkah ini untuk menavigasi ke halaman Pengaturan skala otomatis untuk namespace Service Bus Anda.

  1. Masuk ke portal Microsoft Azure.

  2. Di bilah pencarian, ketik Service Bus, pilih Service Bus dari daftar drop-down, dan tekan ENTER.

  3. Pilih namespace premium Anda dari daftar namespace.

  4. Beralih ke halaman Skala.

    Namespace Service Bus - Halaman skala

Skala manual

Pengaturan ini memungkinkan Anda untuk mengatur jumlah unit Olahpesan tetap untuk namespace.

  1. Pada halaman Pengaturan skala otomatis, pilih Skala manual jika belum dipilih.

  2. Untuk pengaturan Unit Olahpesan, pilih jumlah unit Olahpesan dari daftar drop-down.

  3. Pilih Simpan pada toolbar untuk menyimpan pengaturan.

    Skalakan unit Olahpesan secara manual

Skala otomatis kustom - Kondisi default

Anda dapat mengonfigurasi penskalaan otomatis unit Olahpesan dengan menggunakan kondisi. Kondisi skala ini dijalankan ketika tidak ada kondisi skala lain yang cocok. Anda bisa mengatur kondisi default dengan salah satu cara berikut:

  • Skalakan berdasarkan metrik (seperti CPU atau penggunaan memori)
  • Skalakan ke jumlah unit Olahpesan tertentu

Anda tidak dapat mengatur jadwal ke skala otomatis pada hari atau rentang tanggal tertentu untuk kondisi default. Kondisi skala ini dijalankan ketika tidak ada kondisi skala lain dengan jadwal yang cocok.

Catatan

Untuk meningkatkan throughput terima, Azure Service Bus menyimpan beberapa pesan di cache-nya. Azure Service Bus memangkas cache hanya ketika penggunaan memori melebihi ambang batas tinggi tertentu seperti 90%. Jadi, jika entitas mengirim pesan tetapi tidak menerimanya, pesan tersebut di-cache dan mencerminkan peningkatan penggunaan memori. Tidak ada yang perlu dikhawatirkan, karena Azure Service Bus memangkas cache jika diperlukan, yang akhirnya menyebabkan penggunaan memori turun. Memori tidak akan menyebabkan masalah apa pun kecuali ada performa atau masalah lain dengan namespace layanan. Kami menyarankan agar Anda menggunakan metrik penggunaan CPU untuk penskalaan otomatis dengan Azure Service Bus.

Skalakan berdasarkan metrik

Prosedur berikut menunjukkan cara menambahkan kondisi untuk secara otomatis meningkatkan unit Olahpesan (peluasan skala) ketika penggunaan CPU lebih besar dari 75% dan mengurangi unit Olahpesan (penurunan skala) ketika penggunaan CPU kurang dari 25%. Tahapan dilakukan dari 1 hingga 2, 2 hingga 4, 4 hingga 8, dan 8 hingga 16. Demikian pula, tahapan dilakukan dari 16 hingga 8, 8 hingga 4, 4 hingga 2, dan 2 hingga 1.

  1. Pada halaman Pengaturan skala otomatis, pilih Skala otomatis kustom untuk opsi Pilih cara menskalakan sumber daya.

  2. Di bagian Default halaman, tentukan nama untuk kondisi default. Pilih ikon pensil untuk mengedit teks.

  3. Pilih Skalakan berdasarkan metrik untuk Mode skala.

  4. Pilih + Tambahkan aturan.

    Default - skalakan berdasarkan metrik

  5. Pada halaman Aturan skala, ikuti langkah-langkah ini:

    1. Pilih metrik dari daftar drop-down Nama metrik. Dalam contoh ini, yang ditampilkan adalah CPU.

    2. Pilih operator dan nilai ambang batas. Dalam contoh ini, nilai Lebih besar dari dan 75 untuk Ambang batas metrik guna memicu tindakan skala.

    3. Pilih operasi di bagian Tindakan. Dalam contoh ini, atur ke Tingkatkan.

    4. Kemudian, pilih Tambahkan

      Default - luaskan skalanya jika penggunaan CPU lebih besar dari 75%

      Catatan

      Fitur skala otomatis meningkatkan unit Olahpesan untuk namespace jika penggunaan CPU keseluruhan di atas 75% dalam contoh ini. Tahapan dilakukan dari 1 hingga 2, 2 hingga 4, 4 hingga 8, dan 8 hingga 16.

  6. Pilih + Tambahkan aturan lagi, lalu ikuti langkah-langkah ini di halaman Aturan skala:

    1. Pilih metrik dari daftar drop-down Nama metrik. Dalam contoh ini, yang ditampilkan adalah CPU.

    2. Pilih operator dan nilai ambang batas. Dalam contoh ini, nilai kurang dari dan 25 untuk Ambang batas metrik untuk memicu tindakan skala.

    3. Pilih operasi di bagian Tindakan. Dalam contoh ini, diatur ke Kurangi.

    4. Kemudian, pilih Tambahkan

      Default - persempit skala jika penggunaan CPU kurang dari 25%

      Catatan

      Fitur skala otomatis mengurangi unit Olahpesan untuk namespace jika penggunaan CPU keseluruhan di bawah 25% dalam contoh ini. Penurunan dilakukan dari 16 hingga 8, 8 hingga 4, 4 hingga 2, dan 2 hingga 1.

  7. Atur jumlah minimum, maksimum, dan default unit Olahpesan.

    Aturan default berdasarkan metrik

  8. Pilih Simpan pada toolbar untuk menyimpan pengaturan skala otomatis.

Skalakan ke jumlah unit Olahpesan tertentu

Ikuti langkah-langkah ini untuk mengonfigurasi aturan untuk menskalakan namespace untuk menggunakan jumlah unit Olahpesan tertentu. Sekali lagi, kondisi default diterapkan ketika tidak ada kondisi skala lain yang cocok.

  1. Pada halaman Pengaturan skala otomatis, pilih Skala otomatis kustom untuk opsi Pilih cara menskalakan sumber daya.

  2. Di bagian Default halaman, tentukan nama untuk kondisi default.

  3. Pilih Skalakan ke unit Olahpesan tertentu untuk Mode skala.

  4. Untuk Unit Olahpesan, pilih jumlah unit Olahpesan default.

    Default - skalakan ke unit Olahpesan tertentu

Skala otomatis kustom - kondisi tambahan

Bagian sebelumnya memperlihatkan kepada Anda cara menambahkan kondisi default untuk pengaturan skala otomatis. Bagian ini memperlihatkan kepada Anda cara menambahkan lebih banyak kondisi ke pengaturan skala otomatis. Untuk kondisi non-default tambahan ini, Anda dapat mengatur jadwal berdasarkan hari-hari tertentu dalam seminggu atau rentang tanggal.

Skalakan berdasarkan metrik

  1. Pada halaman Pengaturan skala otomatis, pilih Skala otomatis kustom untuk opsi Pilih cara menskalakan sumber daya.

  2. Pilih Tambahkan kondisi skala di bawah blok Default.

    Kustom - tambahkan tautan kondisi skala

  3. Tentukan nama untuk kondisi tersebut.

  4. Konfirmasikan bahwa Skalakan berdasarkan opsi metrik dipilih.

  5. Pilih + Tambahkan aturan untuk menambahkan aturan untuk meningkatkan unit Olahpesan saat penggunaan CPU keseluruhan di atas 75%. Ikuti langkah-langkah dari bagian kondisi default.

  6. Atur jumlah minimum, maksimum, dan default unit Olahpesan.

  7. Anda juga dapat mengatur jadwal pada kondisi kustom (tetapi tidak pada kondisi default). Anda dapat menentukan tanggal mulai dan tanggal selesai untuk kondisi (atau) memilih hari tertentu (Senin, Selasa, dan sebagainya.) dalam seminggu.

    1. Jika Anda memilih Tentukan tanggal mulai/selesai, pilih Zona Waktu, Tanggal dan waktu mulai serta Tanggal dan waktu selesai (seperti yang diperlihatkan dalam gambar berikut) agar kondisi tersebut berlaku.

      Nilai minimum, maksimum, dan default untuk jumlah unit Olahpesan

    2. Jika Anda memilih Ulangi hari tertentu, pilih hari dalam seminggu, zona waktu, waktu mulai, dan waktu akhir saat kondisi akan berlaku.

      Ulangi hari tertentu

Skalakan ke jumlah unit Olahpesan tertentu

  1. Pada halaman Pengaturan skala otomatis, pilih Skala otomatis kustom untuk opsi Pilih cara menskalakan sumber daya.

  2. Pilih Tambahkan kondisi skala di bawah blok Default.

    Kustom - tambahkan tautan kondisi skala

  3. Tentukan nama untuk kondisi tersebut.

  4. Pilih skala ke opsi unit Olahpesan tertentu untuk Mode Skala.

  5. Pilih jumlah unit Olahpesan dari daftar drop-down.

  6. Untuk jadwal, tentukan tanggal mulai dan selesai untuk kondisi (atau) pilih hari tertentu (Senin, Selasa, dan sebagainya.) seminggu dan waktu.

    1. Jika Anda memilih Tentukan tanggal mulai/selesai, pilih Zona Waktu, Tanggal dan waktu mulai serta Tanggal dan waktu selesai agar kondisi tersebut berlaku.

    skalakan ke unit Olahpesan tertentu - tanggal mulai dan selesai

    1. Jika Anda memilih Ulangi hari tertentu, pilih hari dalam seminggu, zona waktu, waktu mulai, dan waktu akhir saat kondisi akan berlaku.

    skalakan ke unit Olahpesan tertentu - ulangi hari tertentu

    Untuk mempelajari selengkapnya tentang cara kerja pengaturan skala otomatis, terutama cara kerja profil atau kondisi dan mengevaluasi beberapa aturan, lihat Memahami pengaturan Skala Otomatis.

    Catatan

    • Metrik yang Anda tinjau untuk membuat keputusan tentang penskalaan otomatis mungkin berusia 5-10 menit. Saat Anda berhadapan dengan lonjakan beban kerja, sebaiknya Anda memiliki durasi yang lebih pendek untuk meningkatkan skala dan durasi yang lebih lama untuk mengurangi (> 10 menit) untuk memastikan bahwa ada cukup unit pesan untuk memproses lonjakan beban kerja.

    • Jika Anda melihat kegagalan karena kurangnya kapasitas (tidak ada unit Olahpesan yang tersedia), minta tiket dukungan bersama kami.

Riwayat eksekusi

Beralih ke tab Jalankan riwayat pada halaman Skala untuk melihat bagan yang memplot jumlah unit olahpesan seperti yang diamati oleh mesin skala otomatis. Jika bagan kosong, itu berarti skala otomatis tidak dikonfigurasi atau dikonfigurasi tetapi dinonaktifkan, atau dalam periode pendinginan.

Cuplikan layar memperlihatkan **Jalankan riwayat** di halaman **Skala** .

Pemberitahuan

Beralih ke tab Beri Tahu pada halaman Skala ke:

  • Aktifkan pengiriman email pemberitahuan ke administrator, rekan administrator, dan administrator tambahan lainnya.

  • Aktifkan pengiriman email pemberitahuan ke titik akhir HTTP atau HTTPS yang diekspos oleh webhook.

    Cuplikan layar memperlihatkan tab **Beri tahu** dari halaman **Skala**.

Konfigurasikan menggunakan templat Azure Resource Manager

Anda dapat menggunakan contoh templat Azure Resource Manager berikut untuk membuat namespace layanan Azure Service Bus dengan antrean, dan mengonfigurasi pengaturan skala otomatis untuk namespace layanan. Dalam contoh ini, dua kondisi skala ditentukan.

  • Kondisi skala default: tingkatkan unit olahpesan ketika penggunaan CPU rata-rata di atas 75% dan kurangi unit olahpesan ketika penggunaan CPU rata-rata di bawah 25%.
  • Tetapkan dua unit olahpesan ke namespace layanan pada akhir pekan.

Templat

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

Anda juga dapat membuat contoh JSON untuk sumber daya pengaturan skala otomatis dari portal Microsoft Azure. Setelah Anda mengonfigurasi pengaturan skala otomatis di portal Microsoft Azure, pilih JSON pada bilah perintah halaman Skala.

Gambar memperlihatkan pilihan tombol JSON pada bilah perintah halaman **Skala** di portal Azure.

Kemudian, sertakan JSON di bagian resources templat Azure Resource Manager seperti yang ditunjukkan pada contoh sebelumnya.

Pertimbangan tambahan

Saat Anda menggunakan opsi Skala otomatis kustom dengan kondisi atau profil Default , unit olahpesan ditingkatkan (1 -> 2 -> 4 -> 8 -> 16) atau menurun (16 -> 8 -> 4 -> 2 -> 1) secara bertahap.

Saat Anda membuat kondisi tambahan, unit olahpesan mungkin tidak ditingkatkan atau dikurangi secara bertahap. Misalkan, Anda memiliki dua profil yang didefinisikan seperti yang ditunjukkan dalam contoh berikut. Pada pukul 06.00 UTC, unit olahpesan diatur ke 16, dan pada pukul 21.00 UTC, unit pesan dikurangi menjadi 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]
				}
			}
		}
	]
}

Kami menyarankan agar Anda membuat aturan sehingga unit olahpesan ditingkatkan atau berkurang secara bertahap.

Langkah berikutnya

Untuk mempelajari tentang unit Olahpesan, lihat Olahpesan premium