Włączanie partycjonowania w usłudze Azure Service Bus w warstwie Podstawowa lub Standardowa

Partycje usługi Service Bus umożliwiają partycjonowanie kolejek i tematów lub jednostek komunikatów w wielu brokerach komunikatów. Partycjonowanie oznacza, że ogólna przepływność partycjonowanej jednostki nie jest już ograniczona przez wydajność pojedynczego brokera komunikatów. Ponadto tymczasowa awaria brokera komunikatów, na przykład podczas uaktualniania, nie renderuje partycjonowanej kolejki ani tematu. Partycjonowane kolejki i tematy mogą zawierać wszystkie zaawansowane funkcje usługi Service Bus, takie jak obsługa transakcji i sesji. Aby uzyskać więcej informacji, zobacz Partycjonowane kolejki i tematy. W tym artykule przedstawiono różne sposoby włączania wykrywania zduplikowanych komunikatów dla kolejki usługi Service Bus lub tematu.

Ważne

  • Partycjonowanie jest dostępne podczas tworzenia jednostek dla wszystkich kolejek i tematów w jednostkach SKU w warstwie Podstawowa lub Standardowa .
  • Nie można zmienić opcji partycjonowania w żadnej istniejącej kolejce lub temacie. Opcję można ustawić tylko podczas tworzenia kolejki lub tematu.
  • W przestrzeni nazw warstwy Standardowa można tworzyć kolejki i tematy usługi Service Bus w rozmiarach 1, 2, 3, 4 lub 5 GB (wartość domyślna to 1 GB). Po włączeniu partycjonowania usługa Service Bus tworzy 16 kopii (16 partycji) jednostki, z których każdy ma określony rozmiar. W związku z tym, jeśli tworzysz kolejkę o rozmiarze 5 GB, z 16 partycjami maksymalny rozmiar kolejki zmieni się (5 * 16) = 80 GB.

Korzystanie z witryny Azure Portal

Podczas tworzenia kolejki w witrynie Azure Portal wybierz pozycję Włącz partycjonowanie , jak pokazano na poniższej ilustracji.

Enable partitioning at the time of the queue creation

Podczas tworzenia tematu w witrynie Azure Portal wybierz pozycję Włącz partycjonowanie , jak pokazano na poniższej ilustracji.

Enable partitioning at the time of the topic creation

Interfejs wiersza polecenia platformy Azure

Aby utworzyć kolejkę z włączonym partycjonowaniem, użyj az servicebus queue create polecenia z ustawioną wartością --enable-partitioningtrue.

az servicebus queue create \
    --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --name myqueue \
    --enable-partitioning true

Aby utworzyć temat z włączonym partycjonowaniem, użyj az servicebus topic create polecenia z ustawioną wartością --enable-partitioningtrue.

az servicebus topic create \
    --resource-group myresourcegroup \
    --namespace-name mynamespace \
    --name mytopic \
    --enable-partitioning true

Korzystanie z programu Azure PowerShell

Aby utworzyć kolejkę z włączonym partycjonowaniem, użyj New-AzServiceBusQueue polecenia z ustawioną wartością -EnablePartitioning$True.

New-AzServiceBusQueue -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -QueueName myqueue `
    -EnablePartitioning $True

Aby utworzyć temat z włączonym partycjonowaniem, użyj New-AzServiceBusTopic polecenia z ustawioną wartością -EnablePartitioningtrue.

New-AzServiceBusTopic -ResourceGroup myresourcegroup `
    -NamespaceName mynamespace `
    -Name mytopic `
    -EnablePartitioning $True

Korzystanie z szablonu usługi Azure Resource Manager

Aby utworzyć kolejkę z włączonym partycjonowaniem, ustaw wartość enablePartitioning na true wartość w sekcji właściwości kolejki. Aby uzyskać więcej informacji, zobacz Dokumentacja szablonu przestrzeni nazw/kolejek 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"
      }
    },
    "serviceBusQueueName": {
      "type": "string",
      "metadata": {
        "description": "Name of the Queue"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location for all resources."
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.ServiceBus/namespaces",
      "apiVersion": "2018-01-01-preview",
      "name": "[parameters('serviceBusNamespaceName')]",
      "location": "[parameters('location')]",
      "sku": {
        "name": "Standard"
      },
      "properties": {},
      "resources": [
        {
          "type": "Queues",
          "apiVersion": "2017-04-01",
          "name": "[parameters('serviceBusQueueName')]",
          "dependsOn": [
            "[resourceId('Microsoft.ServiceBus/namespaces', parameters('serviceBusNamespaceName'))]"
          ],
          "properties": {
            "enablePartitioning": true
          }
        }
      ]
    }
  ]
}

Aby utworzyć temat z włączonym wykrywaniem duplikatów, ustaw wartość enablePartitioning na true w sekcji właściwości tematu. Aby uzyskać więcej informacji, zobacz Microsoft.ServiceBus namespaces/topics template reference (Dokumentacja szablonu przestrzeni nazw/tematów Microsoft.ServiceBus).

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "service_BusNamespace_Name": {
      "type": "string",
      "metadata": {
        "description": "Name of the Service Bus namespace"
      }
    },
    "serviceBusTopicName": {
      "type": "string",
      "metadata": {
        "description": "Name of the Topic"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location for all resources."
      }
    }
  },
  "resources": [
    {
      "apiVersion": "2018-01-01-preview",
      "name": "[parameters('service_BusNamespace_Name')]",
      "type": "Microsoft.ServiceBus/namespaces",
      "location": "[parameters('location')]",
      "sku": {
        "name": "Standard"
      },
      "properties": {},
      "resources": [
        {
          "apiVersion": "2017-04-01",
          "name": "[parameters('serviceBusTopicName')]",
          "type": "topics",
          "dependsOn": [
            "[resourceId('Microsoft.ServiceBus/namespaces/', parameters('service_BusNamespace_Name'))]"
          ],
          "properties": {
            "enablePartitioning": true
          }
        }
      ]
    }
  ]
}

Następne kroki

Wypróbuj przykłady w wybranym języku, aby zapoznać się z funkcjami usługi Azure Service Bus.

Znajdź przykłady dla starszych bibliotek klienckich .NET i Java poniżej:

30 września 2026 r. wycofamy biblioteki zestawu SDK usługi Azure Service Bus WindowsAzure.ServiceBus, Microsoft.Azure.ServiceBus i com.microsoft.azure.servicebus, które nie są zgodne z wytycznymi dotyczącymi zestawu Azure SDK. Zakończymy również obsługę protokołu SBMP, więc nie będzie można już używać tego protokołu po 30 września 2026 r. Przeprowadź migrację do najnowszych bibliotek zestawu Azure SDK, które oferują krytyczne aktualizacje zabezpieczeń i ulepszone możliwości przed tą datą.

Mimo że starsze biblioteki mogą być nadal używane poza 30 września 2026 r., nie będą już otrzymywać oficjalnej pomocy technicznej i aktualizacji od firmy Microsoft. Aby uzyskać więcej informacji, zobacz ogłoszenie o wycofaniu pomocy technicznej.