连接池
Yesf支持协程连接池。整体结构如下:
- 驱动(连接池&协议实现)
- 适配器
用一段简单的代码来表示:
class A_Pool {
// connect, pool manager, etc
}
class A_Adapter implements SomeInterface {
private $pool; // instance of A_Pool
}
1
2
3
4
5
6
7
2
3
4
5
6
7
Yesf中所有数据库连接均为连接池,这是因为一个协程进入阻塞状态时,当前进程会先处理下一个请求。当阻塞的连接响应时,再回去处理之前的协程。若一个连接在多个协程中使用,当连接响应时,Swoole可能无法唤醒正确的协程。
配置
全局配置:
; 最小连接数
connection.default.min=1
; 最大连接数
connection.default.max=5
1
2
3
4
2
3
4
单个配置:
; 最小连接数,可选
connection.my.min=1
; 最大连接数,可选
connection.my.max=5
; 适配器名称
connection.my.adapter=mysql
; 驱动名称
connection.my.driver=mysql
; 主机名
connection.my.host=localhost
; 端口
connection.my.port=3306
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12