登录
首页 >  Golang >  Go问答

需要为每个应用程序创建几个 HTTP 客户端?

来源:stackoverflow

时间:2024-03-01 15:57:24 187浏览 收藏

目前golang学习网上已经有很多关于Golang的文章了,自己在初次阅读这些文章中,也见识到了很多学习思路;那么本文《需要为每个应用程序创建几个 HTTP 客户端?》,也希望能帮助到大家,如果阅读完后真的对你学习Golang有帮助,欢迎动动手指,评论留言并分享~

问题内容

假设应用程序向不同的服务发出大量请求,那么在 Go 应用程序中管理 http 客户端的最佳实践是什么?互联网上有几个选项:

  • 整个应用程序使用一个客户端
  • 每个外部服务使用一个客户端
  • 每个请求使用一个客户端

我认为第二种解决方案是最有效的,因为它允许重用 TCP 连接,因为每个服务都有一个单独的连接池。有什么想法吗?特别是关于第一个解决方案 - 它可能会导致什么问题?或者有什么更好的解决办法吗?


解决方案


对此没有通用的答案。这取决于你在做什么。将您的 http 客户端的范围限定在其用例范围内。如果整个应用程序需要单个实例,请使用一个实例。如果您的应用程序的不同部分甚至每个请求都需要不同的内容,请这样做。

如果您需要不同的超时、不同的 cookie jar、不同的代理配置、不同的 TLS 证书或任何其他不同的配置,您将需要多个。

如果您的整个应用程序需要相同的配置,那么使用单个客户端实例是合理的。

如果您的应用程序的不同部分(例如 cookie jar)共享状态,那么您必须使用相同的客户端*贯穿您的应用程序。

*或者找到其他方法来同步共享状态,但使用共享客户端可能是最简单的。

今天关于《需要为每个应用程序创建几个 HTTP 客户端?》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>