poolboy_mysql代码解析
poolboy_mysql(https://github.com/mysql-otp/mysql-otp-poolboy)
整合了mysql-otp 和 poolboy两个库
poolboy(https://github.com/devinus/poolboy)
提供一个可伸缩的进程池
维护较好的一个数据库驱动,
与emysql的区别:
1.本身不启动application,生成的连接可以挂在任意进程下,emysql则挂在自己启动的emysql_conn_mgr下
2.创建连接会创建一个临时进程,不会阻塞主进程。emysql创建进程会阻塞
3.由于1的特点,可以接入pool_boy动态管理mysql连接池
架构:
pool1:poolboy的主进程,一个pool对应一个
<0.159.0>: poolboy_sup,进程池的管理进程
poolboy的动态进程数管理:
当取出进程的时候,判断如果当前没有进程可取, 且没有达到最大溢出限制,则动态增加进程
当放回进程时,如果等待队列为空
溢出进程为0时:放回进程
溢出进程大于0时:丢弃进程,溢出数-1
浙公网安备 33010602011771号