Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом кратком руководстве вы используете Azure CLI для создания раздела служебной шины и создания подписок на этот раздел.
Что такое темы и подписки служебной шины?
Разделы и подписки шины сервисов поддерживают модель обмена сообщениями типа публикация/подписка. При использовании разделов и подписок компоненты распределенного приложения не взаимодействуют напрямую друг с другом; вместо этого они обмениваются сообщениями через раздел, который выступает в качестве посредника.
В отличие от очередей Service Bus, в которых каждое сообщение обрабатывается одним потребителем, топики и подписки обеспечивают обмен данными по схеме один ко многим, используя модель публикации и подписки. Можно зарегистрировать несколько подписок на тему. Когда сообщение отправляется в тему, оно становится доступным для каждой подписки для обработки независимо. Подписка на раздел напоминает виртуальную очередь, которая получает копии сообщений, отправленных в раздел. При необходимости можно зарегистрировать правила фильтрации для раздела на основе каждой подписки, что позволяет фильтровать или ограничивать, какие сообщения получают подписки на раздел.
Разделы и подписки служебной шины позволяют масштабироваться для обработки большого количества сообщений в большом количестве пользователей и приложений.
Предпосылки
Если у вас нет подписки Azure, вы можете создать бесплатную учетную запись перед началом работы.
В этом быстром начале работы вы используете Azure Cloud Shell, который можно запустить после входа в портал Azure. Дополнительные сведения о Azure Cloud Shell см. в статье "Обзор Azure Cloud Shell". Вы также можете установить и использовать Azure PowerShell на компьютере.
Создание темы и подписок служебной шины
Каждая подписка на раздел может получать копию каждого сообщения. Разделы полностью протоколируются и семантически совместимы с очередями служебной шины. Разделы служебной шины поддерживают широкий набор правил выбора с условиями фильтра с необязательными действиями, которые задают или изменяют свойства сообщения. Каждый раз, когда правило совпадает, оно создает сообщение. Дополнительные сведения о правилах, фильтрах и действиях см. по этой ссылке.
Войдите на портал Azure.
Запустите Azure Cloud Shell, выбрав значок, показанный на следующем рисунке. Переключитесь в режим Bash , если Cloud Shell находится в режиме PowerShell .
Выполните следующую команду, чтобы создать группу ресурсов Azure. Обновите имя группы ресурсов и расположение, если хотите.
az group create --name MyResourceGroup --location eastusВыполните следующую команду, чтобы создать пространство имен Service Bus. Обновите имя пространства имен, чтобы сделать его уникальным.
namespaceName=MyNameSpace$RANDOM az servicebus namespace create --resource-group MyResourceGroup --name $namespaceName --location eastusВыполните следующую команду, чтобы создать тему в пределах пространства имен.
az servicebus topic create --resource-group MyResourceGroup --namespace-name $namespaceName --name MyTopicСоздание первой подписки на раздел
az servicebus topic subscription create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --name S1Создание второй подписки на раздел
az servicebus topic subscription create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --name S2Создание третьей подписки на раздел
az servicebus topic subscription create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --name S3Создайте фильтр в первой подписке, используя настраиваемые свойства (
StoreIdявляется одним изStore1,Store2иStore3).az servicebus topic subscription rule create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --subscription-name S1 --name MyFilter --filter-sql-expression "StoreId IN ('Store1','Store2','Store3')"Создайте фильтр для второй подписки с использованием свойств клиента (
StoreId = Store4)az servicebus topic subscription rule create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name myTopic --subscription-name S2 --name MySecondFilter --filter-sql-expression "StoreId = 'Store4'"Создайте фильтр в третьей подписке, используя свойства клиента (
StoreIdне вStore1,Store2,Store3, илиStore4).az servicebus topic subscription rule create --resource-group MyResourceGroup --namespace-name $namespaceName --topic-name MyTopic --subscription-name S3 --name MyThirdFilter --filter-sql-expression "StoreId NOT IN ('Store1','Store2','Store3', 'Store4')"Выполните следующую команду, чтобы получить основную строку подключения для пространства имен (namespace). Эта строка подключения используется для подключения к очереди и отправки и получения сообщений.
az servicebus namespace authorization-rule keys list --resource-group MyResourceGroup --namespace-name $namespaceName --name RootManageSharedAccessKey --query primaryConnectionString --output tsvЗапишите строку подключения и имя раздела. Вы используете их для отправки и получения сообщений.
Дальнейшие шаги
Чтобы узнать, как отправлять сообщения в раздел и получать эти сообщения через подписку, ознакомьтесь со следующей статьей: выберите язык программирования в TOC.