Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
При построении рабочих процессов с помощью Durable Functions или SDK Durable Task ваши оркестрации должны где-то хранить своё состояние. Поставщики хранилища обрабатывают это, сохраняют журнал оркестрации, состояние сущности и внутренние сообщения в бэкенд по вашему выбору. Это надежное хранилище, что делает рабочие процессы надежными— они могут приостановить, масштабировать, перезапустить и восстановить без потери хода выполнения.
Durable Functions поддерживают различные поставщики серверного хранилища. Вы можете настроить приложения для использования двух типов поставщиков хранилища, доступных для устойчивых задач:
- Управляемое Azure
- Планировщик устойчивых задач (рекомендуется)
- Хранилище «Принеси своё» (BYO)
- Azure Storage
- Netherite
- Microsoft SQL Server (MSSQL)
Замечание
В настоящее время вы не можете перенести данные из одного поставщика серверной части хранилища в другой. Если вы хотите использовать новый поставщик, создайте новое приложение, настроенное с помощью нового поставщика.
Пакеты SDK для долговременных задач поддерживают управляемый Azure Durable Task Scheduler в качестве поставщика хранилища.
Планировщик устойчивых задач
Планировщик устойчивых задач — это полностью контролируемый, высокопроизводительный бэкенд-поставщик, спроектированный и разработанный в сотрудничестве с Microsoft Research. Он стремится обеспечить лучший пользовательский интерфейс в таких аспектах, как управление, наблюдаемость, производительность и безопасность.
К ключевым преимуществам планировщика устойчивых задач относятся:
- Снижение затрат на управление и операции по сравнению с поставщиками серверной части BYO
- Панель наблюдаемости и управления.
- Поддерживает максимальную пропускную способность всех серверных компонентов сегодня.
- Поддержка проверки подлинности с помощью управляемого удостоверения.
Существующие пользователи пакета SDK для Durable Functions и устойчивых задач могут использовать планировщик без изменений кода. Узнайте больше о планировщике устойчивых задач и о начале работы.
Примеры для планировщика устойчивых задач можно найти на GitHub.
Azure Storage
Azure Storage является одним из "собственных" поставщиков хранилища для Durable Functions. В нем используются очереди, таблицы и большие двоичные объекты (BLOB) для сохранения состояния оркестрации и состояния сущности, а также аренды BLOB для управления разделами. Поставщик Azure Storage встроен в расширение Durable Functions и не имеет других зависимостей.
Ключевыми преимуществами поставщика Azure Storage являются следующие:
- Установка не требуется. Вы можете использовать учетную запись хранилища, созданную для вас в процессе установки приложения-функции.
- Модель выставления счетов с минимальными затратами без сервера — в Azure Storage используется модель ценообразования, основанная на потреблении (подробная информация).
- Лучшая поддержка инструментов — Azure Storage предлагает кроссплатформенную локальную эмуляцию и интегрируется с Visual Studio, Visual Studio Code и основными инструментами Azure Functions.
- Самый зрелый - Azure Storage был оригинальной и самой проверенной системой хранения для Durable Functions.
- Поддержка использования удостоверения вместо секретов для подключения к поставщику хранилища.
Поставщик Azure Storage не требует явной конфигурации, ссылок на пакеты NuGet или ссылок на пакеты расширений. Подробные параметры конфигурации, включая подключения, аутентификацию на основе удостоверений и параметры host.json, см. в разделе хранилище Azure для службы Durable Functions.
Microsoft SQL Server (MSSQL)
Поставщик хранилища MSSQL сохраняет все состояние в базе данных MSSQL. Он совместим с локальными и облачными развертываниями SQL Server, включая базу данных SQL Azure.
Ниже приведены основные преимущества поставщика хранилища MSSQL.
- Поддерживаются отключенные среды; для установки SQL Server не требуется подключение к Azure.
- Универсально совместимо с различными средами и облаками, включая размещенные в Azure и локальные системы.
- Строгая консистентность данных, обеспечивающая резервное копирование, восстановление и переключение на резервный канал без потери данных.
- Встроенная поддержка пользовательского шифрования данных (функция SQL Server).
- Интегрируется с существующими приложениями баз данных с помощью встроенных хранимых процедур.
Дополнительные сведения о поставщике хранилища MSSQL:
Netherite
Замечание
Поддержка использования серверной части хранилища Netherite с Durable Functions заканчивается 31 марта 2028 г. Мы рекомендуем оценить планировщик устойчивых задач для рабочих нагрузок, которые в настоящее время используют Netherite.
Серверная часть хранилища Netherite спроектирована и разработана в Microsoft Research. В нем используются Azure Event Hubs и технология базы данных FASTER поверх Azure Page Blobs.
Ниже приведены основные преимущества поставщика хранилища Netherite.
- Более высокая пропускная способность и более низкая стоимость по сравнению с другими поставщиками объектов хранения.
- Поддерживает оптимизацию соотношения цены и производительности, что позволяет масштабировать производительность по мере необходимости.
- Поддерживает до 32 разделов данных со шлюзами событий SKU базового и стандартного уровней.
- Более экономично, чем у других поставщиков, для высокопроизводительных рабочих нагрузок.
Дополнительные сведения о поставщике хранилища Netherite:
- Документация по Netherite.
- Исходный код поставщика хранилища Netherite.
- Более подробная оценка поставщика хранилища Netherite: Безсерверные рабочие процессы с устойчивыми функциями и Netherite.
Сравнение поставщиков хранилища
Вы можете использовать следующую таблицу, чтобы понять значительные компромиссы между различными поддерживаемыми поставщиками хранилища и решить, какой поставщик хранилища лучше всего подходит для ваших потребностей.
| Функция | Планировщик устойчивых задач | Azure Storage | MSSQL | Netherite |
|---|---|---|---|---|
| Официальный статус поддержки | ✅ Общедоступная версия (GA) | ✅ Общедоступная версия (GA) | ✅ Общедоступная версия (GA) | ✅ Общедоступная версия (GA) |
| Внешние зависимости | N/A | учетная запись Azure Storage (версия 1 общего назначения) | SQL Server 2019 или база данных Azure SQL | Центры событий Azure Учетная запись хранилища Azure (общего назначения) |
| Возможности локальной разработки и эмуляции | Эмулятор планировщика долговременных задач | Azurite 3.12+ (кроссплатформенный) | SQL Server Developer Edition (поддерживает Windows, Linux и контейнеры Docker) | Поддерживает эмуляцию центров задач в памяти (дополнительные сведения) |
| Настройка центра задач | Явный | Явный | Неявная по умолчанию (дополнительные сведения) | Явный |
| Максимальная пропускная способность | Крайне высоко | Умеренно | Умеренно | Крайне высоко |
| Максимальное горизонтальное масштабирование оркестрации или объектов (узлы) | N/A | 16 | N/A | 32 |
| Максимальное горизонтальное масштабирование активности (узлы) | N/A | N/A | N/A | 32 |
| Поддержка устойчивых сущностей | ✅ Полностью поддерживается. | ✅ Полностью поддерживается. | ⚠️ поддерживается, кроме случаев использования .NET Isolated | ✅ Полностью поддерживается. |
| Поддержка масштабирования KEDA 2.0 (дополнительные сведения) |
Скоро! | ❌ Не поддерживается | ✅ Поддерживается с помощью масштабируемого компонента MSSQL (дополнительные сведения) | ❌ Не поддерживается |
| Поддержка пакетов расширений (рекомендуется для приложений не на .NET) | Скоро! | ✅ Полностью поддерживается. | ✅ Полностью поддерживается. | ✅ Полностью поддерживается. |
| Можно настроить соотношение цены и производительности? | Скоро! | ❌ Нет | ✅ Да (виртуальные процессоры SQL) | ✅ Да (единицы пропускной способности и единицы емкости для центров событий) |
| Поддержка отключенной среды | ❌ Требуется подключение к Azure | ❌ Требуется подключение к Azure | ✅ Полностью поддерживается. | ❌ Требуется подключение к Azure |
| Подключения на основе идентификации | ✅ Полностью поддерживается. | ✅ Полностью поддерживается. | ⚠️ Требуется масштабирование, управляемое средой выполнения | ❌ Не поддерживается |
| План потребления Flex | ✅ Полностью поддерживается. | ✅ Полностью поддерживается (см. заметки) | ✅ Полностью поддерживается. | ❌ Не поддерживается |