Azure Service Bus Premium 名前空間のパーティション分割を有効にする
Service Bus パーティションを使用すると、キューとトピック、またはメッセージング エンティティを複数のメッセージ ブローカーにパーティション分割できます。 パーティション分割は、パーティション分割されたエンティティの全体のスループットが、単一のメッセージ ブローカーのパフォーマンスによって制限されなくなることを意味します。 パーティション分割されたキューとトピックには、トランザクションやセッションのサポートなど、あらゆる高度な Service Bus 機能を含めることができます。 詳細については、「パーティション分割されたキューとトピック」を参照してください。 この記事では、Service Bus Premium 名前空間のパーティション分割を有効にするさまざまな方法について説明します。 この名前空間内のすべてのエンティティがパーティション分割されます。
Note
- パーティション分割は、Premium SKU での名前空間の作成時に有効にできます。
- パーティション分割された名前空間にパーティション分割されていないエンティティを作成することはできません。
- 既存の名前空間のパーティション分割オプションを変更することはできません。 パーティションの数は、名前空間の作成時にのみ設定できます。
- 割り当てられたメッセージング ユニットは、常に名前空間内のパーティションの数の乗数であり、パーティション間で均等に分散されます。 たとえば、16MU と 4 つのパーティションがある名前空間では、各パーティションに 4MU が割り当てられます。
- Availability Zones は、それがサポートされているリージョンでパーティション分割された名前空間を作成すると、その名前空間で自動的に有効になります。
- 少数のメッセージング ユニット (MU) で複数のパーティションは、多数の MU で 1 つのパーティションよりもパフォーマンスが向上します。
- Service Bus geo ディザスター リカバリー 機能を使用する場合は、パーティション分割された名前空間とパーティション分割されていない名前空間をペアリングしないようにしてください。
- Standard SKU 名前空間を Premium SKU パーティション分割された名前空間に移行することはできません。
- JMS は現在、パーティション分割された名前空間ではサポートされていません。
- この機能は、現在、インド西部を除くすべてのリージョンで利用できます。
Azure Portal の使用
Azure portal で名前空間を作成するときは、次の図に示すように、[パーティション分割] を [有効] に設定し、パーティションの数を選択します。
Azure CLI の使用
パーティション分割が有効な名前空間を作成するには、--premium-messaging-partitions
を 1 より大きい数値に設定して az servicebus namespace create
コマンドを使用します。
az servicebus namespace create \
--resource-group myresourcegroup \
--name mynamespace \
--location westus
--sku Premium
--premium-messaging-partitions 4
Azure PowerShell の使用
パーティション分割が有効な名前空間を作成するには、-PremiumMessagingPartition
を 1 より大きい数値に設定して New-AzServiceBusNamespace
コマンドを使用します。
New-AzServiceBusNamespace -ResourceGroupName myresourcegroup `
-Name mynamespace `
-Location westus `
-PremiumMessagingPartition 4
Azure Resource Manager テンプレートの使用
パーティション分割を有効にして名前空間を作成するには、名前空間のプロパティ セクションで partitions
を 1 より大きい数値に設定します。 次の例では、パーティション分割された名前空間が 4 つのパーティションで作成され、各パーティションに 1 つのメッセージング ユニットが割り当てられます。 詳細については、「Microsoft.ServiceBus 名前空間テンプレート リファレンス」に関するページを参照してください。
{
"$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"
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for all resources."
}
}
},
"resources": [
{
"type": "Microsoft.ServiceBus/namespaces",
"apiVersion": "2022-10-01-preview",
"name": "[parameters('serviceBusNamespaceName')]",
"location": "[parameters('location')]",
"sku": {
"name": "Premium",
"capacity": 4
},
"properties": {
"premiumMessagingPartitions": 4
}
}
]
}
次のステップ
Azure Service Bus の機能については、使用する言語のサンプルを試してみてください。