公司的一个 php 项目经常调用众多的三方平台的 api ,有 http 协议和 https 协议;由于 php-fpm 模式无法复用链接,所以每次进行 api 调用时需要经过:tcp 握手、( tls 握手)、http 报文交互、连接关闭几个阶段;比较明显的就是接口延迟高,业务量大时出现大量的 TIME_WAIT 。
使用 go 语言开发了一个网络请求代理中间件,接管 php 的网络请求,在代理程序中保持连接的复用;经测试能极大的降低网络延迟,目前已在生产环境使用。
如果项目采用微服务架构,且包括由 PHP 开发的微服务,而这些微服务之间通过 HTTP 进行调用,那么可以使用 Fastcar 作为 PHP 的网络请求中间件。能有效地维持长连接,降低资源开销,以及减少网络延迟。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.