0

预期行为

http.send 在负载下应该可以正常工作

实际行为

在给定分钟内处理 1000 个请求后,它会因打开文件描述符错误过多而失败,并在特定分钟后恢复

重现问题的步骤

  • OPA 版本:openpolicyagent/opa:0.31.0-envoy
  • 给出 OPA 的示例查询、输入、数据和策略: policy_response := http_response { http_response := http.send({ "method" : "POST", "url": opa.runtime()["env"]["URL"], "headers": { "authorization": token }, "raise_error": false, "timeout": "3s", }) }
  • OPA 返回的示例输出 {"code":"eval_http_send_network_error","message":"Post \"{url}\": dial tcp: lookup {hostname} on x.x.x.x:53: dial udp x.x.x.x:53: socket: too many open files","status_code":0,"x-request-id":"b643f986-44ca-44c4-95a6-fc4cbe1f5639"}}

我相信 http.send 正在为导致问题的每个请求创建一个新的 HTTP 客户端。是否有任何替代方案来克服这个问题。先感谢您!

4

0 回答 0