Реализация политики повторных попыток с помощью JavaScript или TypeScript
Любое приложение, работающее в облаке или взаимодействующее с удаленными службами и ресурсами, должно иметь возможность обрабатывать временные ошибки. Обычно эти приложения могут столкнуться с ошибками из-за мгновенной потери сетевого подключения, времени ожидания запроса, когда служба или ресурс занята или другие факторы. Разработчики должны создавать приложения для прозрачной обработки временных сбоев, чтобы повысить стабильность и устойчивость.
В этой статье вы узнаете, как использовать клиентскую библиотеку служба хранилища Azure javaScript для настройки политики повторных попыток для приложения, подключающегося к Хранилище BLOB-объектов Azure. Политики повторных попыток определяют, как приложение обрабатывает неудачные запросы, и всегда должны быть настроены на соответствие бизнес-требованиям приложения и характеру сбоя.
Настройка параметров повтора
Политики повторных попыток для хранилища BLOB-объектов настраиваются программным способом, предлагая контроль над применением параметров повторных попыток к различным запросам и сценариям службы. Например, веб-приложение, которое выдает запросы на основе взаимодействия с пользователем, может реализовать политику с меньшим количеством повторных попыток и более короткими задержками, чтобы повысить скорость реагирования и уведомить пользователя о возникновении ошибки. Кроме того, приложение или компонент, выполняющий пакетные запросы в фоновом режиме, может увеличить количество повторных попыток и использовать экспоненциальную стратегию обратного выхода, чтобы разрешить успешное выполнение запроса.
В следующей таблице перечислены параметры, доступные при создании экземпляра StorageRetryOptions , а также тип, краткое описание и значение по умолчанию при отсутствии изменений. Необходимо упреждать настройку значений этих свойств в соответствии с потребностями приложения.
Свойство | Type | Описание | Default value |
---|---|---|---|
maxRetryDelayInMs |
number |
Необязательно. Указывает максимальную задержку, разрешенную перед повтором операции. | 120 секунд (или 120 * 1000 мс) |
maxTries |
number |
Необязательно. Максимальное количество попыток повторных попыток перед отказом. | 4 |
retryDelayInMs |
number |
Необязательно. Указывает объем задержки, используемой перед повторным повтором операции. | 4 секунды (или 4 * 1000 мс) |
retryPolicyType |
StorageRetryPolicyType | Необязательно. StorageRetryPolicyType по умолчанию — это экспоненциальная политика повторных попыток. | StorageRetryPolicyType.Exponential |
secondaryHost |
string |
Необязательно. Вторичная конечная точка учетной записи хранения для повторных запросов. Прежде чем задать это значение, необходимо понять проблемы, связанные с чтением устаревших и потенциально несогласованных данных. Дополнительные сведения см. в статье "Использование геоизбыточности для разработки высокодоступных приложений". | нет |
tryTimeoutInMs |
number |
Необязательно. Максимально допустимое время до отмены запроса и предполагается сбой. Это время ожидания применяется к запросу операции и должно основываться на пропускной способности, доступной для хост-компьютера и близости к службе хранилища. | Значение 0 или неопределено приводит к отсутствии времени ожидания по умолчанию на клиенте, а время ожидания на стороне сервера используется. Дополнительные сведения см. в разделе "Время ожидания" для операций службы BLOB-объектов. |
В следующем примере кода мы настраиваем параметры повторных попыток в экземпляре StorageRetryOptions, передайте его в новый экземпляр StoragePipelineOptions и передайте pipeline
при создании экземпляраBlobServiceClient
:
const options = {
retryOptions: {
maxTries: 4,
retryDelayInMs: 3 * 1000,
maxRetryDelayInMs: 120 * 1000,
retryPolicyType: StorageRetryPolicyType.EXPONENTIAL
},
};
const pipeline = newPipeline(credential, options);
const blobServiceClient = new BlobServiceClient(
`https://${accountName}.blob.core.windows.net`,
credential,
pipeline
);
В этом примере каждый запрос службы, выданный BlobServiceClient
объектом, использует параметры повторных попыток, как определено в retryOptions
. Эта политика применяется к клиентским запросам. Вы можете настроить различные стратегии повторных попыток для клиентов служб в зависимости от потребностей приложения.
Связанный контент
- Рекомендации по архитектуре и общие рекомендации по политикам повторных попыток см. в разделе "Обработка временных ошибок".
- Рекомендации по реализации шаблона повторных попыток для временных сбоев см . в шаблоне повторных попыток.