mysql 代理服务umyproxy,代理服务支持连接池,不需要对项目进行大量的改动,仅仅修改配置即可。
https://github.com/lyuangg/umyproxy
mycat(国内开源软件)
SMProxy Swoole MySQL Proxy 一个基于 MySQL 协议,Swoole 开发的MySQL数据库连接池。 A MySQL database connection pool based on MySQL protocol and Swoole.
https://github.com/louislivi/SMProxy
警惕PHP的MongoDB连接 | Coding House
你每起一个PHP-FPM的Worker进程,都会建立一个MongoDB连接(需要有请求进来并触发连接建立),所以MongoDB的连接数等价于你的Worker的进程总数。
一是换其他有连接池的语言;二是降低Worker的进程数量,变相降低连接数;三是找个 Mongodb 连接池或者中间代理
php-fpm,每台机器设置了800个进程,每个进程默认驱动会保持一个长连接,导致客户端会话数过大,每台服务器需要占用800个链接会话。
所以找了很久的解决方案最终在官方文档中发现有该配置可以关闭长连接模式,可以解决这个问题。
$manager = new MongoDB\\Driver\\Manager(URI, [], ['disableClientPersistence' => true]);
默认情况下为false,这将保留现有行为。指定true将强制Manager创建一个新的libmongoc客户端,然后当Manager对象被释放时(例如垃圾回收、PHP请求结束),该客户端将被销毁(即套接字关闭)