您现在的位置是:主页 > news > 信息类网站有哪些/打广告

信息类网站有哪些/打广告

admin2025/6/18 6:33:33news

简介信息类网站有哪些,打广告,政府网站建设报告,网站转发代码1.应用场景 主要了解学习如何基于PHP使用TCP长连接的一种优化思路。 2.学习/参考 文档阅读 PHP - CGI, Fast-FGI, PHP-FPM - 学习/实践 php使用tcp长连接的一种优化思路-阿里云开发者社区 一、面向人群 如果站点架构满足以下几点,那么本文的优化方案会非常适合&…

信息类网站有哪些,打广告,政府网站建设报告,网站转发代码1.应用场景 主要了解学习如何基于PHP使用TCP长连接的一种优化思路。 2.学习/参考 文档阅读 PHP - CGI, Fast-FGI, PHP-FPM - 学习/实践 php使用tcp长连接的一种优化思路-阿里云开发者社区 一、面向人群 如果站点架构满足以下几点,那么本文的优化方案会非常适合&…

1.应用场景

主要了解学习如何基于PHP使用TCP长连接的一种优化思路。

2.学习/参考

文档阅读

PHP - CGI, Fast-FGI, PHP-FPM - 学习/实践

php使用tcp长连接的一种优化思路-阿里云开发者社区

一、面向人群

如果站点架构满足以下几点,那么本文的优化方案会非常适合:

1)使用PHP等脚本语言作为开发语言
2)需要连接后端服务,例如 RPC服务、Memcache 或 Redis等
3)流量非常大

二、解决的问题

image.png

常见的web架构如上

1)最前端是APP或者Web页面 [即客户端或浏览器]
2)服务器上层是Web-Server进行接入
3)PHP脚本语言调用后端数据,完成业务逻辑,拼接页面
4)最后端是服务、缓存、数据库

PHP 是一种脚本语言,不像C++/Java那样进程能够常驻,所以它连接后端的服务都是使用短连接:

[--- 这里有个问题,基于PHP-FPM 是可以常驻内存的,所以这里的分析,要有思考地参考学习]

image.png

上图是一种典型场景,站点PHP部署在机器A上, 缓存memcache部署在机器B上,之间通过短连接通信, 过程为:

1)PHP建立TCP短连接
2)按照Memcache协议发送数据
3)接收Memcache返回的数据
4)PHP关闭TCP短连接

在站点流量小时,上述过程没有任何问题,当站点流量非常大,QPS很高的情况下,PHP对Memcache的TCP建立+关闭TCP短连接的开销便不能忽略了,有可能成为性能的瓶颈,如何进行优化是本文即将讨论的核心。

三、UNIX Domain Socket

话锋一转,先一起来看看UNIX Domain Socket技术。
UNIX Domain Socket是一种进程间IPC IPC(Inter-Process Communication,进程间通信)]通讯机制.

它不需要经过网络协议栈,不需要打包拆包、计算校验和、维护序号和应答等,只是将应用层数据从一个进程拷贝到另一个进程。

它可以用于同一台主机上两个没有亲缘关系的进程,并且是全双工的,提供可靠消息传递(消息不丢失、不重复、不错乱)的IPC机制。

四、优化方案

可以看到,UNIX Domain Socket的效率会远高于TCP短连接,但它只能用于同一台主机间的进程通讯,

而PHP应用和后端服务往往是部署在不同的机器上的,此时能否利用它来进行优化呢?

答案是肯定的。
image.png

优化后的简易架构图如上,在PHP应用服务器上部署一个Local-Proxy,PHP与Local-Proxy之间使用UNIX Domain Socket来通讯,而Local-Proxy与后端服务进行TCP长连接通讯,这样就大大提升了通讯效率,免除了每次请求都要进行的建立+关闭TCP短连接的开销。

五、Local-Proxy要点

要实现上述优化方案,Local-Proxy是实现要点,在实现Local-Proxy时,有这么几点需要注意

1)协议设计:Local-Proxy本身没有任何业务逻辑,只负责请求转发,上游发送过来Memcache协议,透传给后端的Memcache,这样的话,上游客户端不需要进行任何代码的修改
2)通讯方式:如上文所述,Local-Proxy与上游使用UNIX Domain Socket进行通讯,与下游使用TCP长连接进行通信
3)高效框架:这种方案是为了解决TCP短连接的效率损耗,这样对Local-Proxy的效率要求就非常高,可以选用成熟高效的网络框架(例如libevent)和TCP长连接连接池技术来实现
4)请求映射:需要将上游发过来的请求与发往下游的请求一一映射起来,这样才能正确的对应上请求包与响应包

具体实现

TBD


3.问题/补充

TBD

4.参考

PHP使用TCP长连接的一种优化思路-阿里云开发者社区

PHP - CGI, Fast-FGI, PHP-FPM - 学习/实践_穿素白衫的少年的博客-CSDN博客

后续补充

...