作者:容易 2013-04-02 9:54:06


 

pgbouncer的安装和配置

有些配置参数理解可能有错误,欢迎指出

 


一、使用pgbouncer的目的
 通过pgbouncer做为中间层,实现django与postgresql的长连接,django 请求连接 pgbouncer短连接,pgbouncer与postgresql建立固定长连接。建立长连接的目的,由于postgresql是采用进程机制工作,每次建立新的连接都会创建新的进程服务相关请求,如果大并发的情况下,会严重的消耗系统资源,以及影响应用的响应速度。pgbouncer采用线程的方式处理客户端请求,对大量短连接请求具有内存消耗小,相应速度快等优势,另外可以实现后端数据的负载均衡(该功能还在研究学习中)。
二、pgbouncer安装(使用root用户进行安装)
 1、pgbouncer运行依赖libevent,这里使用libevent-2.0.20-stable.tar.gz
./configure --prefix=/opt/libevent
make  && make install
 2、安装pgbouncer 
 tar -zxvf pgbouncer-1.5.3.tar.gz
 ./configure --prefix=/opt/pgbouncer --with-libevent=/opt/libevent/
 make && make install
 查看pgbouncer是否安装成功,可以通过查看config.log中最后的返回值exit来确认,0是成功1是失败. 
 安装完成后建立以下目录
 cd /opt/pgbouncer
 mkdir etc  log  run
 并且为以下目录授权,pgbouncer不允许直接使用root运行,这里将运行帐号设置为pgsql
 shown pgsql  log run 
 cp /opt/pgbouncer/share/doc/pgbouncer/pgbouncer.ini /opt/pgbouncer/etc/
 cp /opt/pgbouncer/share/doc/pgbouncer/userlist.txt /opt/pgbouncer/etc/
 其中pgbouncer.ini为pgbouncer的配置,userlist.txt为认证和授权文件,pgbouncer的授权与postgresql的授权是分开的,userlist.txt的帐号可以与登录postgresql的帐号不同。
 3、配置
    pgbouncer.ini 配置,采用;为注释符号。
    基本配置如下
[databases]
myblog = host=127.0.0.1 port=5432 dbname=blogdb user=blog  password='haha' client_encoding=UNICODE
;myblog就是django到时候需要连接的数据库名,后面那段是指pgbouncer连接的实际数据信息
[pgbouncer]
logfile = /opt/pgbouncer/log/pgbouncer.log 设置日志目录,该目录必须让运行pgbouncer的用户有写权限
pidfile = /opt/pgbouncer/run/pgbouncer.pid  设置pgbouncer运行时的进程id存放文件的路径,运行用户必须有写权限
listen_addr = 127.0.0.1  监听的IP
listen_port = 6666  监听的端口
auth_type = md5  认证授权的加密方式
auth_file = /opt/pgbouncer/etc/userlist.txt  授权文件
admin_users = pgsql,pgbouncer 可以连接到pgbouncer数据库的用户
pool_mode = transaction   连接池的工作模式
server_reset_query = DISCARD ALL 在连接释放的时候,服务器可被其它客户端使用之前,发给服务器的查询。
server_check_query = select 1 简单地啥也不干的查询,检查服务器连接是否活着。 
server_check_delay = 30  在不执行健康查询的时候,保持已释放的连接诶多久处于立即可用状态。
max_client_conn = 1000  最大客户端连接数
default_pool_size = 20  最大连接池数
reserve_pool_size = 5   当出现高并发的时候,额外增加连接数

 


 

 

One Response


    还没有评论!
1  

Leave your comment

请留下您的姓名(*)

请输入正确的邮箱地址(*)

请输入你的评论(*)


感谢开源 © 2016. All rights reserved.&3Q Open Source&^_^赣ICP备15012863号-1^_^
乐于分享共同进步 KreativeThemes