Azure Service Bus 프리미엄 네임스페이스에 대해 분할 사용

Service Bus 파티션을 사용하면 큐 및 토픽 또는 메시징 엔터티가 여러 메시지 broker에 분할될 수 있습니다. 분할은 분할된 엔터티의 전체 처리량이 단일 메시지 broker의 성능으로 제한되지 않는다는 의미입니다. 분할된 큐 및 항목은 트랜잭션 및 세션에 대한 지원 같은 모든 고급 Service Bus 기능을 포함할 수 있습니다. 자세한 내용은 분할된 큐 및 토픽을 참조하세요. 이 문서에서는 Service Bus 프리미엄 네임스페이스에 대해 분할을 사용하도록 설정하는 다양한 방법을 보여 줍니다. 이 네임스페이스의 모든 엔터티는 분할됩니다.

참고 항목

  • 프리미엄 SKU에서 네임스페이스를 만드는 동안 분할을 사용하도록 설정할 수 있습니다.
  • 분할된 네임스페이스에 분할되지 않은 엔터티를 만드는 것은 허용되지 않습니다.
  • 기존 네임스페이스에서는 분할 옵션을 변경할 수 없습니다. 파티션 수는 네임스페이스 만들기 중에만 설정할 수 있습니다.
  • 할당된 메시징 단위는 항상 네임스페이스에 있는 파티션 양의 승수이며 파티션 전체에 균등하게 분산됩니다. 예를 들어 16MU 및 4개의 파티션이 있는 네임스페이스에서 각 파티션에는 4MU가 할당됩니다.
  • 가용성 영역을 지원하는 지역에서 분할된 네임스페이스를 만들면 네임스페이스에서 자동으로 사용하도록 설정됩니다.
  • MU(메시징 단위)가 낮은 다중 파티션은 MU가 높은 단일 파티션에 비해 더 나은 성능을 제공합니다.
  • Service Bus 지리적 재해 복구 기능을 사용할 때 분할된 네임스페이스와 분할되지 않은 네임스페이스를 쌍으로 사용하지 않도록 합니다.
  • 표준 SKU 네임스페이스를 프리미엄 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 기능을 살펴봅니다.