视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
php有数据库连接池吗
2020-11-27 14:42:45 责编:小采
文档


php-cp(php-connect-pool)是用php扩展写的一个数据库连接池。

一、它不同于市面上其他的开源数据库中间件产品

1、它不需要单独部署中间件集群,是跑在应用服务器上的代理进程,减少了一层外部依赖,这样使得架构更加简单、清爽、可靠。

2、性能更高,减少了一次网络传输,它通过高效的ipc方式和php进程通信,并且避免了协议解析的消耗。

3、同时支持redis和mysql,不需要部署2套单独的中间件系统。

二、简单原理图

三、技术特性

1、支持最大最小连接数配置。

2、支持压力小自动回收连接(力度和频率可配置)。

3、支持平滑重启。

4、支持连接用光的排队机制。

5、同时支持mysql和redis。

6、使用简单,框架简单整合后(修改new 方法),现有业务一行代码都不用改即可用上连接池。

7、提供了get_disable_list函数,来获得不可用的宕机ip列表,这样负载均衡也可以做在客户端(配置文件全部的ip和宕机ip做差集,然后再随机即可)。

btw:你也可以用lvs,但是lvs转发在系统架构上引入了依赖,dr模式不能跨网段又了扩容,而且后端db出问题只能知道lvs的vip。

8、连接池进程会启动ping进程来监听宕机列表,如果可用会反映到get_disable_list函数的返回值上.

9、做了大量优化,虽然请求经过连接池进程转发,但是基本无qps损耗。

四、如何使用

1、把pool.ini文件放到 /etc/ 并按需修改里面的配置。

2、启动代理进程

./pool_server start

支持 "start" "stop" "restart" "reload"命令

3、修改php脚本

$db = new PDO(xxxxx);
修改成 $db = new pdo_connect_pool(xxxx);//dont use persistent
$redis = new Redis();
修改成 $redis = new redis_connect_pool();//dont use pconnect

提示:

尽早调用$db/$redis->release() 来释放这个进程占用的连接到池子里面。

推荐教程:PHP视频教程

下载本文
显示全文
专题