首页 > 解决方案 > Elixir HTTP close connection error with Hackney {error: :closed}

问题描述

我在使用 Tesla 作为 http 客户端并使用 Hackney 作为适配器的 elixir 应用程序中遇到了奇怪的问题。

在对外部服务器进行 HTTP 调用时,它会间歇性地导致错误 --> 错误::关闭。我的应用程序在 pod 内运行并具有 istio sidecar 代理。我正在使用 elixir 1.10、Tesla 1.3.3、hackey 1.15、Erlang/OTP 22。

以下是我用来拨打电话的配置。是否有人遇到过这个问题,如果是,那么他是如何解决的。我应该做些什么来解决这个间歇性问题。

hackney_options =
  if(insecure,
    do: [recv_timeout: timeout, ssl_options: [verify: :verify_none]],
    else: [recv_timeout: timeout]
  )

adapter = {Tesla.Adapter.Hackney, hackney_options}

client =
  headers
  |> middlewares(timeout, retry, should_retry)
  |> Tesla.client(adapter)

标签: elixirtesla

解决方案


推荐阅读