次の方法で共有


Azure Service Bus Premium 名前空間のパーティション分割を有効にする

Service Bus パーティションを使用すると、キューとトピック、またはメッセージング エンティティを複数のメッセージ ブローカー間でパーティション分割できます。 パーティション分割とは、パーティション分割されたエンティティの全体的なスループットが、単一のメッセージ ブローカーのパフォーマンスによって制限されなくなったことを意味します。 パーティション分割されたキューとトピックには、トランザクションやセッションのサポートなど、すべての高度な Service Bus 機能を含めることができます。 詳細については、「パーティション分割されたキューとトピック」を参照してください。 この記事では、Service Bus Premium 名前空間のパーティション分割を有効にするさまざまな方法について説明します。 この名前空間内のすべてのエンティティはパーティション分割されます。

  • JMS は現在、パーティション分割された名前空間ではサポートされていません。
  • Premium レベルで名前空間の作成時にパーティション分割を有効にすることができます。
  • パーティション分割されていないエンティティをパーティション分割された名前空間に作成することはできません。
  • 既存の名前空間でパーティション分割オプションを変更することはできません。 名前空間の作成時にパーティションの数を設定します。
  • 割り当てられたメッセージング ユニットの数は、常に名前空間内のパーティション数の乗数であり、パーティション間で均等に分散されます。 たとえば、16 MU と 4 つのパーティションがある名前空間では、各パーティションに 4 MU が割り当てられます。
  • メッセージング ユニット (MU) が低い複数のパーティションを使用すると、より高い RU を持つ 1 つのパーティションに対するパフォーマンスが向上します。
  • Service Bus の地理的災害復旧機能を使用する場合は、パーティション化された名前空間をパーティション化されていない名前空間と組み合わせないでください。
  • Standard レベルの名前空間を Premium レベルのパーティション分割された名前空間に 移行 することはできません。
  • パーティション分割された名前空間では、個別の SessionId または PartitionKey を使用したメッセージのバッチ処理はサポートされていません。
  • この機能は現在、インド西部、カタール中部、オーストリア東部を除くすべてのリージョンで使用できます。

Azure Portal の使用

Azure portal で名前空間を作成する場合は、次の図に示すように、[パーティション分割] を [有効] に設定し、パーティションの数を選択します。 名前空間の作成時にパーティション分割が有効になっている画面のスクリーンショット。

Azure CLI の使用

パーティション分割が有効な名前空間を作成するには、az servicebus namespace create コマンドを使用し、--premium-messaging-partitions 1 より大きい数値に設定します。

az servicebus namespace create \
    --resource-group myresourcegroup \
    --name mynamespace \
    --location westus 
    --sku Premium
    --premium-messaging-partitions 4

Azure PowerShell の使用

パーティション分割が有効な名前空間を作成するには、New-AzServiceBusNamespace コマンドを使用し、-PremiumMessagingPartition 1 より大きい数値に設定します。

New-AzServiceBusNamespace -ResourceGroupName myresourcegroup `
    -Name mynamespace `
    -Location westus `
    -PremiumMessagingPartition 4

テンプレートの使用

パーティション分割が有効になっている名前空間を作成するには、名前空間のプロパティ セクションで premiumMessagingPartitions を 1 より大きい数値に設定します。 次の例では、パーティション分割された名前空間が 4 つのパーティションで作成され、各パーティションに 1 つのメッセージング ユニットが割り当てられます。 詳細については、 Microsoft.ServiceBus 名前空間テンプレート リファレンスを参照してください

@description('Name of the Service Bus namespace')
param serviceBusNamespaceName string

@description('Location for all resources.')
param location string = resourceGroup().location

resource serviceBusNamespace 'Microsoft.ServiceBus/namespaces@2024-01-01' = {
  name: serviceBusNamespaceName
  location: location
  sku: {
    name: 'Premium'
    capacity: 4
  }
  properties: {
    premiumMessagingPartitions: 4
  }
}

次のステップ

任意の言語のサンプルを使用して、Azure Service Bus の機能を確認します。