You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Elasticsearch单节点场景下使用NEST实现网络错误重试的方案咨询

NEST 6.x 单节点连接池下网络错误官方重试配置方案

Elasticsearch 官方提供的 .NET 客户端 NEST 6.x 原生支持在 SingleNodeConnectionPool 场景下配置网络错误重试逻辑,无需自行封装完整重试机制。

默认场景下 SingleNodeConnectionPool 的最大重试次数为 0 因此不会触发重试,你可以通过以下配置手动开启重试:

  • 初始化 ConnectionSettings 时显式配置重试参数即可:
// 替换为你的负载均衡层ES访问地址
var esUri = new Uri("http://your-es-lb-host:9200");
var connectionPool = new SingleNodeConnectionPool(esUri);
var settings = new ConnectionSettings(connectionPool)
    // 配置最大重试次数,可根据蓝绿部署最长中断时间调整,例如设置为3次
    .MaximumRetries(3)
    // 开启超时场景重试,覆盖单节点池默认不重试规则
    .EnableRetryOnTimeout()
    // 可选:配置所有重试总耗时上限,避免无限等待
    .EnableRetryTimeout(TimeSpan.FromSeconds(15))
    // 可选:配置重试退避策略,每次重试间隔2秒
    .RetryTimeout(TimeSpan.FromSeconds(2));

var esClient = new ElasticClient(settings);

补充说明:你遇到的 System.Net.Sockets.SocketException 类型的网络连接异常,属于 NEST 默认的重试触发异常范畴,无需额外配置异常过滤规则,完成上述配置后这类网络错误会自动触发重试,只有重试全部失败后才会向上抛出异常。

内容的提问来源于stack exchange,提问作者Nitramk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 10:48:03