等待标头时超出客户端超时

时间:2019-07-30 10:02:15

标签: performance go newrelic newrelic-platform

我收到以下错误消息,我正在使用go v1.10.4 linux / amd64。

我没有任何防火墙或任何防火墙。我们拥有的Java服务器(相同网段)中的新Relic运行良好。

我们尝试过:

  • 将超时时间增加到60秒
  • 在服务器中使用http2
  • 使用Postman返回503并返回:
      

    {“ exception”:{“ message”:“服务器错误”,“ error_type”:“ RuntimeError”}}

  • ./ nrdiag的故障排除说“未发现问题”

下面是我们的代码:

$('#consult').on('click', function(e) {
    e.preventDefault();

    if (!$('#supportForm').valid())
        return;

    var form = $('#supportForm').serialize();
    $.ajax({ ...

无论如何,请注意,some_key已删除:

  

(28422)2019/07/29 18:08:50.058559 {“ level”:“警告”,“ msg”:“应用程序连接失败”,“ context”:{“ error”:“发布{{3} } \ u0026marshal_format = json \ u0026method = connect \ u0026protocol_version = 17:net / http:请求已取消(在等待标头时超过了Client.Timeout)“}}

2 个答案:

答案 0 :(得分:2)

我认为这是由于DNS网络超时造成的。

您可以通过以下步骤(在Ubuntu中)轻松进行测试

  1. 选择“ IPv4设置”标签。
  2. 禁用“自动”切换开关,然后输入DNS解析器的IP地址,以逗号分隔。我们将使用Google DNS名称服务器:

    8.8.8.8,8.8.4.4

如果有效,则可以将DNS重置为“自动”

答案 1 :(得分:0)

在Windows OS上,使用WSL2运行Linux容器,我遵循以下步骤,

  1. 运行命令docker注销
  2. 运行命令docker network prune,以删除网络的所有预配置设置。
  3. 从Docker设置中,启用8.8.8.8的DNS服务器配置
  4. 重新启动Docker
  5. 现在执行带有登录名的登录命令登录,docker登录{registry}