Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Служебная шина Azure — это полностью управляемый брокер сообщений корпоративного типа с поддержкой очередей сообщений и разделов публикации и подписки. Используйте служебную шину для развязки приложений и служб друг от друга. Это обеспечивает следующие преимущества:
- Балансировка нагрузки осуществляется между конкурирующими работниками.
- Безопасная маршрутизация и передача данных и управления через границы служб и приложений
- Координирует транзакционную работу, требующую высокой надежности
Обзор
Приложения и службы передают данные между собой с помощью сообщений. Сообщение — это контейнер, содержащий данные и украшенный метаданными. Данные могут быть любым типом информации, включая структурированные данные, закодированные с общими форматами, такими как JSON, XML, Apache Avro или обычный текст.
Ниже приведены некоторые распространенные сценарии обмена сообщениями:
Обмен сообщениями. Передача бизнес-данных, например данных о продажах, заказах и перемещении запасов, а также журналов.
Разделение задач между приложениями. Повышение надежности и масштабируемости приложений и служб. Производители и потребители не обязаны одновременно быть доступны или подключены к Интернету. Балансировка нагрузки избавляет от перегрузки служб при всплесках трафика.
Балансировка нагрузки. Несколько конкурирующих потребителей могут одновременно считывать сообщения из очереди, при этом каждый из них безопасно получает эксклюзивный доступ к конкретным сообщениям.
Разделы и подписки. Включите поддержку соотношений 1:n между издателями и подписчиками, позволяя подписчикам выбирать определенные сообщения из потока опубликованного контента.
Транзакции. Выполните несколько операций, все в рамках атомарной транзакции. Например, в области транзакции можно выполнить следующие операции:
- Получение сообщения из одной очереди.
- Публикация результатов обработки в одну или несколько очередей.
- Переместите входное сообщение из исходной очереди.
Результаты обработки становятся доступными для следующих потребителей только при условии успешного выполнения каждой из операций, включая успешное согласование входного сообщения, что гарантирует однократную обработку. Такая модель транзакций служит надежной основой для реализации шаблона компенсирующих транзакций в общем контексте решения.
Сеансы обмена сообщениями. Реализуют крупномасштабную координацию рабочих процессов и мультиплексированных передач, при которых требуется строгое упорядочение сообщений или обработка сообщений с отсрочкой.
Если вы уже работали с другими брокерами сообщений, такими как Apache ActiveMQ, основные понятия Служебной шины будут вам знакомы. Поскольку Service Bus является платформой как услуга (PaaS), важное отличие состоит в том, что вам не нужно беспокоиться о выполнении следующих действий. Azure заботится о ваших делах.
- Беспокойство о аппаратных сбоях
- поддержание актуальности операционных систем и продуктов через установку исправлений
- размещение журналов и управление дисковым пространством;
- управление резервными копиями;
- Переключение на резервный компьютер
Основные понятия
В этом разделе обсуждаются основные понятия о шине обслуживания.
Очереди
Вы отправляете и получаете сообщения через очереди. Очереди позволяют хранить сообщения, пока принимающее приложение сможет получить и обработать их.
Сообщения в очередях упорядочиваются и получают метку времени поступления. После того как брокер принимает сообщение, он всегда надежно хранит его в тройном избыточном хранилище, распределенном по зонам доступности, если пространство имен поддерживает зонирование. Служебная шина сохраняет сообщения в памяти или в нестабильном хранилище, пока клиент не сообщит им о том, что они приняты.
Сообщения доставляются в режиме извлечения, поэтому система доставляет их только по запросу. В отличие от модели активного опроса, использующейся в некоторых других облачных очередях, вытягивающая операция может быть длительной и завершается только после того, как сообщение становится доступным.
Примечание.
Сравнение очередей Service Bus с очередями хранилища, подробнее см. в разделе Сравнение и сопоставление очередей хранилища и очередей Service Bus.
Темы
Вы также можете использовать разделы для отправки и получения сообщений. Хотя очередь часто используется для точка-точка связи, топики полезны в сценариях публикации и подписки.
Разделы могут иметь несколько независимых подписок. Эти подписки присоединяются к теме и иначе работают точно так же, как очереди со стороны получателя. Подписчик на тему может получать копию каждого сообщения, отправленного в эту тему. Подписки — это именованные сущности. Подписки по умолчанию устойчивы, но их можно настроить для истечения срока действия, а затем автоматически удалять. Через API службы сообщений Java (JMS) служебная шина Premium также позволяет создавать переменные подписки, которые существуют в течение срока подключения.
Вы можете определить правила для подписки. Правило подписки содержит фильтр для определения условия, по которому сообщение копируется в соответствующую подписку, и необязательное действие, которое может изменять метаданные сообщения. Дополнительные сведения см. в статье Фильтры и действия разделов. Эта возможность удобна в следующих случаях:
- вы не хотите, чтобы подписка получала все сообщения, отправленные в раздел;
- Вы хотите помечать сообщения дополнительными метаданными, когда они проходят через систему подписки.
Примечание.
Дополнительные сведения об очередях и разделах см. в статье Очереди, разделы и подписки служебной шины.
Пространства имен
Пространство имен — это контейнер для всех компонентов системы обмена сообщениями, таких как очереди и темы. Пространство имен может содержать одну или несколько очередей и топиков и часто служит контейнером приложения.
Пространство имен можно сравнить с сервером в терминологии других брокеров, но понятия не эквивалентны напрямую. Пространство имен Служебной шины предоставляет вам вашу собственную часть емкости большого кластера, который состоит из десятков постоянно активных виртуальных машин. При необходимости он охватывает три зоны доступности Azure. Вы получаете преимущества доступности и надежности эксплуатации брокера сообщений в огромном масштабе. При этом вам также можно не беспокоиться о базовых сложностях. Служебная шина реализует бессерверный обмен сообщениями.
Расширенные функции
Служебная шина также имеет дополнительные функции, которые позволяют решать более сложные задачи обмена сообщениями. В разделах ниже описываются основные возможности.
Сеансы обмена сообщениями
Чтобы реализовать гарантию "первым пришел, первым обслужен" (FIFO) при обработке сообщений в очередях или подписках служебной шины, используйте сеансы. Вы также можете использовать сеансы для реализации шаблонов ответа на запрос. Шаблон ответа на запрос позволяет приложению отправителя отправлять запрос и предоставляет способ правильной отправки ответа в приложение отправителя. Дополнительные сведения см. в статье Сеансы обмена сообщениями.
Автоматическая переадресация
Функция автоперенаправления позволяет соединить очередь или подписку с другой очередью или темой, которые являются частью одного пространства имен. При включении автоперенаправления Service Bus автоматически удаляет сообщения, помещенные в первую очередь или подписку (источник), и помещает их во вторую очередь или раздел (назначение). Дополнительные сведения см. в статье Объединение в цепочки сущностей служебной шины с помощью автоматической переадресации.
Перемещение в очередь мертвых писем
Service Bus очереди и подписки топиков предоставляют вторичную очередь, называемую очередью недоставленных писем (DLQ). Очередь недоставленных писем содержит сообщения, которые не могут быть доставлены получателю или сообщения, которые не могут быть обработаны. Вы можете удалить сообщения из очереди недоставленных сообщений и проверить их. Приложение может с помощью оператора, исправлять проблемы и повторно отправить сообщение, регистрировать тот факт, что произошла ошибка и предпринять исправление. Дополнительные сведения см. в статье Обзор очередей недоставленных сообщений служебной шины.
Доставка по расписанию
Сообщения можно отправлять в очередь или раздел для отложенной обработки. Например, вы можете запланировать обработку задания системой в определенное время. Дополнительные сведения см. в разделе Запланированные сообщения.
Отсрочка сообщений
Когда клиент очереди или подписки получает сообщение, которое готово к обработке, но обработка в данный момент невозможна из-за особых обстоятельств в приложении, сущность может отложить извлечение сообщения на более позднее время. Сообщение остается в очереди или подписке, но игнорируется. Дополнительные сведения см. в статье Откладывание сообщений.
Транзакции
Транзакция объединяет две или несколько операций в область выполнения. Служба Service Bus поддерживает группировку операций в отношении одной сущности обмена сообщениями (очередь, тема, подписка) в рамках транзакции. Дополнительные сведения см. в статье Обзор обработки транзакций в служебной шине.
Фильтры и действия
Подписчики могут самостоятельно определять, какие сообщения они хотят получать из раздела. Эти сообщения определяются в одном или нескольких именованных правилах подписки. Каждое правило состоит из условия фильтра, которое выбирает определенные сообщения и при необходимости содержит действие , которое заметит выбранное сообщение. При каждом совпадении с условиями правила подписка создает копию сообщения, которая может быть по-разному аннотирована в зависимости от совпадающих правил. Дополнительные сведения см. в статье Фильтры и действия разделов.
Автоматическое удаление в режиме простоя
С помощью автоматического удаления при простое можно указать интервал простоя, после которого очередь автоматически удаляется. Интервал сбрасывается при наличии трафика в очереди. Минимальная длительность составляет пять минут.
Поиск повторяющихся данных
Если возникает ошибка, из-за которую клиент сомневается в результатах операции отправки, повторяющееся обнаружение устраняет сомнения в этих ситуациях. Отправитель может повторно отправить то же сообщение, а очередь или раздел отменяют все повторяющиеся копии. Дополнительные сведения см. в разделе Обнаружение дубликатов.
Пакетное удаление сообщений
Служебная шина Azure поддерживает удаление сообщений в пакетах. Эта функция полезна, когда сообщения в очередях или подписках становятся устаревшими или неактуальными, что требует их очистки. Дополнительные сведения см. в разделе "Пакетное удаление".
Безопасность
Служебная шина поддерживает такие протоколы безопасности, как общие ключи доступа (SAS), управление доступом на основе ролей (RBAC), и управляемые удостоверения для ресурсов Azure.
Служебная шина поддерживает стандартные протоколы AMQP 1.0 и HTTP/REST.
Geo-Replication
При простое регионов или ЦОД (центров обработки данных) Azure георепликация позволяет продолжать обработку данных в другом регионе.
Примечание.
Дополнительные сведения об этих возможностях см. в статье Дополнительные возможности Служебной шины Azure.
обеспечение соответствия стандартам и протоколам.
Основным протоколом передачи данных для Служебной шины является AMQP (расширенный протокол управления очередью сообщений) версии 1.0, реализованный по открытому стандарту ISO/IEC. Он позволяет клиентам создавать приложения, работающие со Служебной шиной и локальными брокерами, например ActiveMQ или RabbitMQ. Руководство по протоколу AMQP содержит подробные сведения на случай, если вам нужна такая абстракция.
Служебная шина уровня "Премиум" полностью совместима с API службы сообщений Java (JMS) 2.0 для Java/Jakarta EE. И наконец, Служебная шина уровня "Стандартный" поддерживает подмножество JMS 1.1, предназначенное для работы с очередями. JMS представляет собой популярную абстракцию для брокеров сообщений, которая интегрируется со множеством приложений и платформ, включая популярную платформу Spring. Чтобы перейти на использование Служебной шины Azure с других брокеров, достаточно просто воссоздать топологию очередей и разделов, а затем изменить зависимости и конфигурацию на стороне поставщика клиента. Пример вы найдете в руководстве по миграции на ActiveMQ.
Клиентские библиотеки
Полностью поддерживаемые клиентские библиотеки Служебной шины включены в пакет Azure SDK.
-
Служебная шина Azure для .NET
- Сторонние платформы, обеспечивающие более высокий уровень абстракции, созданные на основе пакета SDK, включают NServiceBus и MassTransit.
- Библиотеки Служебной шины Azure для Java
- Поставщик Служебной шины Azure для Java JMS 2.0
- модули Azure Service Bus для JavaScript и TypeScript
- Библиотеки Azure Service Bus для Python
Основным протоколом Служебной шины Azure является AMQP 1.0, с которым можно работать из любого совместимого клиента. Некоторые клиенты AMQP с открытым кодом включают примеры, явным образом демонстрирующие взаимодействие со Служебной шиной. Ознакомьтесь с руководством по протоколу AMQP 1.0, чтобы узнать, как напрямую использовать возможности Служебной шины через клиенты AMQP 1.0.
| Язык | Библиотека |
|---|---|
| Java | Apache Qpid Proton-J |
| C/C++ | Azure uAMQP C, Apache Qpid Proton-C |
| Python | Apache Qpid Proton Python |
| Рубин | Apache Qpid Proton Ruby |
| Вперед | Azure Go AMQP, Apache Qpid Proton Go |
| C#/F#/VB | AMQP .NET Lite, Apache NMS AMQP |
| JavaScript/Node | Rhea |
Интеграция
Служебная шина полностью интегрируется со многими службами Майкрософт и Azure, такими как:
- Сетка событий
- Логические приложения
- Функции Azure
- Энергетическая платформа
- Динамика 365
- Azure Stream Analytics
Следующие шаги
Чтобы начать работу с обменом сообщениями в Service Bus, см. следующие статьи:
- Очереди, топики и подписки Service Bus
- Краткое руководство. .NET, Java, JMS 2.0 или NServiceBus
- Цены на служебную шину
- Обмен сообщениями: уровень "Премиум"