Ballerina HTTP RetryConfig 是如何工作的?

问题描述 投票:0回答:1

我浏览了 Ballerina 文档,并在 http:RetryConfig 上找到了以下

文档

它有一个

statusCode
字段,我需要进一步澄清。

    statusCodes int[](default []) - HTTP response status codes which are considered as failures

是否必须指定状态代码才能将其视为失败?如果我们在此配置中不提供状态代码会发生什么?

ballerina ballerina-http
1个回答
0
投票

首先,了解客户端可能遇到的错误类型以及如何管理重试非常重要。错误主要有两种类型:

  1. 网络级别错误:其中包括连接错误、超时错误等。
  2. 应用程序级别错误: 这些是作为具有特定状态代码的 HTTP 响应返回的错误。

如果未在

http:RetryConfig
(默认行为)中配置 statusCodes 字段,则客户端将仅在出现网络级别错误时重试

如果您希望客户端重试特定的HTTP状态代码(指示应用程序级别错误),则需要在

statusCodes
字段中显式指定这些状态代码。例如,一个常见的用例是重试
503 - Service Unavailable status

这是一个示例配置:

import ballerina/http;

http:Client clientEP = check new ("http://localhost:9090", 
    retryConfig = {
        interval: 3,
        count: 3,
        backOffFactor: 2.0,
        maxWaitInterval: 20,
        statusCodes: [503]  // Retry on HTTP 503 Service Unavailable
    }
);
© www.soinside.com 2019 - 2024. All rights reserved.