C# Elasticsearch.NET 7&;Nest 7-每1小时断开一次连接

C# Elasticsearch.NET 7&;Nest 7-每1小时断开一次连接,c#,asp.net-core,elasticsearch-7,elasticsearch.net,C#,Asp.net Core,Elasticsearch 7,Elasticsearch.net,我有一个.NET核心应用程序,它使用ElasticSearch.NET 7和Nest 7向ElasticSearch 7发送大量数据 该应用程序在docker容器中运行,可以完美运行约1小时。然后我们看到一条错误消息&应用程序停止工作 我收到的错误是一个错误。尝试与ES的连接,但大多以“MaxTimeOutreach”结束 出于某种原因,与ES的连接似乎定期中断。 我们当前使用的“快速修复”解决方案是在出现错误时重新启动docker容器,但我们希望解决此问题 正如您在下面的日志中所看到的:我能够

我有一个.NET核心应用程序,它使用ElasticSearch.NET 7和Nest 7向ElasticSearch 7发送大量数据

该应用程序在docker容器中运行,可以完美运行约1小时。然后我们看到一条错误消息&应用程序停止工作

我收到的错误是一个错误。尝试与ES的连接,但大多以“MaxTimeOutreach”结束

出于某种原因,与ES的连接似乎定期中断。 我们当前使用的“快速修复”解决方案是在出现错误时重新启动docker容器,但我们希望解决此问题

正如您在下面的日志中所看到的:我能够将文档发送到ES,然后在某个时候收到此错误。主要是在运行我的应用程序1小时后

2020-08-05 11:22:01.5553| INFO| 001 ES_indexName processed documents 08/05/2020 11:22:01 1 in 202.3803 ms
2020-08-05 11:29:28.9633| INFO| 001 ES_indexName processed documents 08/05/2020 11:29:28 1 in 179.7982 ms
2020-08-05 11:40:08.4666| INFO| 001 ES_indexName processed documents 08/05/2020 11:40:07 1 in 291.5695 ms
2020-08-05 11:47:26.2924|ERROR| failed Invalid NEST response built from a unsuccessful () low level call on POST: /ES_indexName/_bulk
# Invalid Bulk items:
# Audit trail of this API call:
 - [1] PingFailure: Node: https://ES_node1:port/ Exception: PipelineException Took: 00:01:40.0193513
 - [2] SniffOnFail: Took: 00:05:00.0132241
 - [3] SniffFailure: Node: https://ES_node2:port/ Exception: PipelineException Took: 00:01:40.0036955
 - [4] SniffFailure: Node: https://ES_node3:port/ Exception: PipelineException Took: 00:01:40.0019296
 - [5] SniffFailure: Node: https://ES_node1:port/ Exception: PipelineException Took: 00:01:40.0005639
 - [6] MaxTimeoutReached:
# OriginalException: Elasticsearch.Net.ElasticsearchClientException: Maximum timeout reached while retrying request. Call: unknown resource
 ---> Elasticsearch.Net.PipelineException: Failed sniffing cluster state.
 ---> System.AggregateException: One or more errors occurred. (An error occurred trying to write the request data to the specified node.) (An error occurred trying to write the request data to the specified node.) (An error occurred trying to write the request data to the specified node.)
 ---> Elasticsearch.Net.PipelineException: An error occurred trying to write the request data to the specified node.
 ---> System.Threading.Tasks.TaskCanceledException: The operation was canceled.
   at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean allowHttp2, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
   at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.DecompressionHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.HttpClient.FinishSendAsyncUnbuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
   at Elasticsearch.Net.HttpConnection.RequestAsync[TResponse](RequestData requestData, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at Elasticsearch.Net.RequestPipeline.SniffAsync(CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
 ---> (Inner Exception #1) Elasticsearch.Net.PipelineException: An error occurred trying to write the request data to the specified node.
 ---> System.Threading.Tasks.TaskCanceledException: The operation was canceled.
   at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean allowHttp2, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
   at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.DecompressionHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.HttpClient.FinishSendAsyncUnbuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
   at Elasticsearch.Net.HttpConnection.RequestAsync[TResponse](RequestData requestData, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at Elasticsearch.Net.RequestPipeline.SniffAsync(CancellationToken cancellationToken)<---

 ---> (Inner Exception #2) Elasticsearch.Net.PipelineException: An error occurred trying to write the request data to the specified node.
 ---> System.Threading.Tasks.TaskCanceledException: The operation was canceled.
   at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean allowHttp2, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
   at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.DecompressionHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.HttpClient.FinishSendAsyncUnbuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
   at Elasticsearch.Net.HttpConnection.RequestAsync[TResponse](RequestData requestData, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at Elasticsearch.Net.RequestPipeline.SniffAsync(CancellationToken cancellationToken)<---

   --- End of inner exception stack trace ---
   at Elasticsearch.Net.RequestPipeline.SniffAsync(CancellationToken cancellationToken)
   at Elasticsearch.Net.RequestPipeline.SniffOnConnectionFailureAsync(CancellationToken cancellationToken)
   at Elasticsearch.Net.Transport`1.PingAsync(IRequestPipeline pipeline, Node node, CancellationToken cancellationToken)
   at Elasticsearch.Net.Transport`1.RequestAsync[TResponse](HttpMethod method, String path, CancellationToken cancellationToken, PostData data, IRequestParameters requestParameters)
   --- End of inner exception stack trace ---
# Audit exception in step 1 PingFailure:
Elasticsearch.Net.PipelineException: An error occurred trying to write the request data to the specified node.
 ---> System.Threading.Tasks.TaskCanceledException: The operation was canceled.
   at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean allowHttp2, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
   at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.DecompressionHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.HttpClient.FinishSendAsyncUnbuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
   at Elasticsearch.Net.HttpConnection.RequestAsync[TResponse](RequestData requestData, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at Elasticsearch.Net.RequestPipeline.PingAsync(Node node, CancellationToken cancellationToken)
# Audit exception in step 3 SniffFailure:
Elasticsearch.Net.PipelineException: An error occurred trying to write the request data to the specified node.
 ---> System.Threading.Tasks.TaskCanceledException: The operation was canceled.
   at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean allowHttp2, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
   at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.DecompressionHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.HttpClient.FinishSendAsyncUnbuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
   at Elasticsearch.Net.HttpConnection.RequestAsync[TResponse](RequestData requestData, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at Elasticsearch.Net.RequestPipeline.SniffAsync(CancellationToken cancellationToken)
# Audit exception in step 4 SniffFailure:
Elasticsearch.Net.PipelineException: An error occurred trying to write the request data to the specified node.
 ---> System.Threading.Tasks.TaskCanceledException: The operation was canceled.
   at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean allowHttp2, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
   at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.DecompressionHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.HttpClient.FinishSendAsyncUnbuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
   at Elasticsearch.Net.HttpConnection.RequestAsync[TResponse](RequestData requestData, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at Elasticsearch.Net.RequestPipeline.SniffAsync(CancellationToken cancellationToken)
# Audit exception in step 5 SniffFailure:
Elasticsearch.Net.PipelineException: An error occurred trying to write the request data to the specified node.
 ---> System.Threading.Tasks.TaskCanceledException: The operation was canceled.
   at System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage request, Boolean allowHttp2, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage request, Boolean doRequestAuth, CancellationToken cancellationToken)
   at System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.DecompressionHandler.SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
   at System.Net.Http.HttpClient.FinishSendAsyncUnbuffered(Task`1 sendTask, HttpRequestMessage request, CancellationTokenSource cts, Boolean disposeCts)
   at Elasticsearch.Net.HttpConnection.RequestAsync[TResponse](RequestData requestData, CancellationToken cancellationToken)
   --- End of inner exception stack trace ---
   at Elasticsearch.Net.RequestPipeline.SniffAsync(CancellationToken cancellationToken)
# Request:
<Request stream not captured or already read to completion by serializer. Set DisableDirectStreaming() on ConnectionSettings to force it to be set on the response.>
# Response:
<Response stream not captured or already read to completion by serializer. Set DisableDirectStreaming() on ConnectionSettings to force it to be set on the response.>
 400039.9975 ms MUST RETRY
2020-08-05 11:22:01.5553 | INFO | 001 ES|u indexName处理的文档08/05/2020 11:22:01 1在202.3803毫秒内
2020-08-05 11:29:28.9633 | INFO | 001 ES|u indexName处理文件08/05/2020 11:29:28 1 in 179.7982 ms
2020-08-05 11:40:08.4666 | INFO | 001 ES|u indexName处理的文档2020-05-08 11:40:07 1英寸291.5695毫秒
2020-08-05 11:47:26.2924 |错误|失败无效的嵌套响应,该响应是通过POST上不成功的()低级调用生成的:/ES_indexName/_bulk
#无效的批量项目:
#此API调用的审核跟踪:
-[1]ping失败:节点:https://ES_node1:port/ 异常:PipelineException:00:01:40.0193513
-[2]嗅探失败:拍摄时间:00:05:00.0132241
-[3]嗅探失败:节点:https://ES_node2:port/ 异常:PipelineException:00:01:40.0036955
-[4]嗅探失败:节点:https://ES_node3:port/ 异常:PipelineException:00:01:40.0019296
-[5]嗅探失败:节点:https://ES_node1:port/ 异常:PipelineException:00:01:40.0005639
-[6]MaxTimeOutreach:
#OriginalException:Elasticsearch.Net.ElasticsearchClientException:重试请求时达到的最大超时。呼叫:未知资源
--->Elasticsearch.Net.PipelineException:无法嗅探群集状态。
--->System.AggregateException:发生一个或多个错误。(尝试将请求数据写入指定节点时出错。)(尝试将请求数据写入指定节点时出错。)(尝试将请求数据写入指定节点时出错。)
--->Elasticsearch.Net.PipelineException:尝试将请求数据写入指定节点时出错。
--->System.Threading.Tasks.TaskCanceledException:操作已取消。
位于System.Net.Http.ConnectHelper.ConnectAsync(字符串主机、Int32端口、CancellationToken CancellationToken)
位于System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage请求,布尔allowHttp2,CancellationToken CancellationToken)
在System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage请求,CancellationToken CancellationToken)
位于System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage请求,CancellationToken CancellationToken)
位于System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage请求,布尔值doRequestAuth,CancellationToken CancellationToken)
位于System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage请求,CancellationToken CancellationToken)
位于System.Net.Http.DecompressionHandler.SendAsync(HttpRequestMessage请求,CancellationToken CancellationToken)
在System.Net.Http.HttpClient.FinishSendAsyncUnbuffered(任务'1 sendTask,HttpRequestMessage请求,取消令牌源cts,布尔处理)
在Elasticsearch.Net.HttpConnection.RequestAsync[TreResponse](RequestData RequestData,CancellationToken CancellationToken)
---内部异常堆栈跟踪的结束---
在Elasticsearch.Net.RequestPipeline.SniffAsync(CancellationToken CancellationToken)
---内部异常堆栈跟踪的结束---
--->(内部异常#1)Elasticsearch.Net.PipelineException:尝试将请求数据写入指定节点时出错。
--->System.Threading.Tasks.TaskCanceledException:操作已取消。
位于System.Net.Http.ConnectHelper.ConnectAsync(字符串主机、Int32端口、CancellationToken CancellationToken)
位于System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage请求,布尔allowHttp2,CancellationToken CancellationToken)
在System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage请求,CancellationToken CancellationToken)
位于System.Net.Http.HttpConnectionPool.GetHttpConnectionAsync(HttpRequestMessage请求,CancellationToken CancellationToken)
位于System.Net.Http.HttpConnectionPool.SendWithRetryAsync(HttpRequestMessage请求,布尔值doRequestAuth,CancellationToken CancellationToken)
位于System.Net.Http.RedirectHandler.SendAsync(HttpRequestMessage请求,CancellationToken CancellationToken)
位于System.Net.Http.DecompressionHandler.SendAsync(HttpRequestMessage请求,CancellationToken CancellationToken)
在System.Net.Http.HttpClient.FinishSendAsyncUnbuffered(任务'1 sendTask,HttpRequestMessage请求,取消令牌源cts,布尔处理)
在Elasticsearch.Net.HttpConnection.RequestAsync[TreResponse](RequestData RequestData,CancellationToken CancellationToken)
---内部异常堆栈跟踪的结束---
在Elasticsearch.Net.RequestPipeline.SniffAsync(CancellationToken CancellationToken)(内部异常#2)Elasticsearch.Net.PipelineException:尝试将请求数据写入指定节点时出错。
--->System.Threading.Tasks.TaskCanceledException:操作已取消。
位于System.Net.Http.ConnectHelper.ConnectAsync(字符串主机、Int32端口、CancellationToken CancellationToken)
位于System.Net.Http.HttpConnectionPool.ConnectAsync(HttpRequestMessage请求,布尔allowHttp2,CancellationToken CancellationToken)
在System.Net.Http.HttpConnectionPool.CreateHttp11ConnectionAsync(HttpRequestMessage请求,CancellationToken CancellationToken)
在Sy