首页 / 教程列表 / Elasticsearch.NET/NEST中文文档(教程) / 配置每次请求的最大重试次数

配置每次请求的最大重试次数

784 发布于: 2021-03-25 读完约需 1 分钟

默认情况下,一个调用请求的重试次数与节点个数相同。然而,重试仍然遵守请求超时的规定。这意味着,如果有一个100个节点的集群,并且请求超时时间为20秒,那么将尽可能多地重试,但在20秒(超时时间)后就会放弃此请求。

var audit = new Auditor(() => VirtualClusterWith
    .Nodes(10)
    .ClientCalls(r => r.FailAlways())
    .ClientCalls(r => r.OnPort(9209).SucceedAlways())
    .StaticConnectionPool()
    .Settings(s => s.DisablePing())
);

audit = await audit.TraceCall(
    new ClientCall(r => r.MaxRetries(2)) {
        { BadResponse, 9200 },
        { BadResponse, 9201 },
        { BadResponse, 9202 },
        { MaxRetriesReached }
    }
);

当有100个节点的集群时,可能希望确保固定的重试次数。请记住,实际的请求数是:初始尝试次数+设置的重试次数。

var audit = new Auditor(() => VirtualClusterWith
    .Nodes(10)
    .ClientCalls(r => r.FailAlways())
    .ClientCalls(r => r.OnPort(9209).SucceedAlways())
    .StaticConnectionPool()
    .Settings(s => s.DisablePing().MaximumRetries(5))
);

audit = await audit.TraceCall(
    new ClientCall(r => r.MaxRetries(2)) {
        { BadResponse, 9200 },
        { BadResponse, 9201 },
        { BadResponse, 9202 },
        { MaxRetriesReached }
    }
);

版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。

发表评论

登录用户才能发表评论, 请 登 录 或者 注册