一、Pgbouncer 的介绍

  • Pgbouncer是一个针对PostgreSQL数据库的轻量级连接池,任何目标应用都可以把 pgbouncer 当作一个 PostgreSQL 服务器来连接,然后pgbouncer 会处理与服务器连接,或者是重用已存在的连接。
  • pgbouncer 的目标是降低因为新建到 PostgreSQL 的连接而导致的性能损失。

二、PgBouncer的作用

  • PgBouncer可以在后端数据库和前端应用间建立连接的桥梁,由PgBouncer去处理和后端数据库的连接关系。

  • 对客户端连接进行限制,预防过多或者恶意的连接请求。

三、概念图(下图很形象)

四、 PgBouncer的优点

  • 内存消耗低(默认为2k/连接),因为Bouncer不需要每次都接受完整的数据包
  • 可以把不同的数据库连接到一个机器上,而对客户端保持透明
  • 支持在线的重新配置而无须重启
  • pgbouncer 可以限制每一对用户+数据库 到PostgreSQL Cluster的总连接数

五、 PgBouncer缺点

  • 仅支持V3协议,因此后端版本须>=7.4

  • 并没有真正实现数据库的负载均衡,如果单一的对一个数据库操作会使某个数据节点读写量增大
  • 当某个数据库down掉后,就不能通过pgbouncer连接起来,缺少了数据库备份的功能

六、总结

  • 主要工作还是每一个数据节点对数据的存取,pgbouncer只是提供给客户端数据节点的分配和链接以及限制客户端连接的数量。
  • 但整体上实现了对数据的负载均衡

七、重要的配置文件(例子)

[databases]

osdba=host=127.0.0.1 port=5432 user=osdba dbname=osdb

  • “本句话说明该pgbouncer创建了针对127.0.0.1的osdb的一个连接池,该链接池对调用方的呈现的数据库名称是osdba,它映射到本机的osdb数据库上。所有访问pgbouncer上的osdba的请求都会转到osdb上完成。这意味着,客户端通过pgbouncer单次连接时,只能连接到某台主机上的某个数据库”

postgres1= host= 192.168.12.32 port=5432 user=ddong dbname=template1

postgres2=host=192.168.12.33 port=5432 user=ddong dbname=template1

[pgbouncer]

listen_port=64321

listen_addr=127.0.0.1

auth_type=md5

auth_file=users.txt

logfile=pgbouncer.log

pidfile=pgbouncer.pid

admin_users = bntest

  • 在装有psql的机器上使用命令:psql -h 127.0.0.1 -p 64321 -U <用户名> <数据库名>(如数据库:osdba、postgres1、postgres2)

  • 用户名为users.txt文件里的用户
  • 如:psql -h 127.0.0.1 -p 64321 -U ddong postgres1 即通过pgbouncer登录到主机为192.168.12.32的数据库为template1的机器上
  • Pgbouncer的配置文件有映射关系,如上例所示

八、手册参考

九、注意事项

  • 基于pgbouncer的数据库集群 以上配置文件和参考文档针对软件包:PostgreSQL-9.0.13.tar.gz pgbouncer-1.3.4.tgz
  • 安装完成后,须有bin目录和lib目录下的环境变量配置,安装目录所属用户

pgbouncer介绍的更多相关文章

  1. PL/Proxy介绍

    PL/Proxy 介绍 一.概述 1.PL/Proxy 是一个采用PL Language语言的数据库分区系统. 目的:轻松访问分区数据库 它的理念是代理远程函数体内指定.函数调用同样标签创建的函数,所 ...

  2. 使用PgBouncer连接池

    1.pgbouncer 的介绍 pgbouncer是一个针对PostgreSQL数据库的轻量级连接池,任何目标应用都可以把 pgbouncer 当作一个 PostgreSQL/Greenplum 服务 ...

  3. PostgreSQL Replication之第八章 与pgbouncer一起工作(5)

    8.5 维护 pgbouncer 除了我们在本章已经说明的,pgbouncer有一个很好的能够执行基本管理和监控任务的交互式管理界面. 它是如何工作的呢?pgbouncer提供给您一个虚假的称为pgb ...

  4. PostgreSQL Replication之第八章 与pgbouncer一起工作(4)

    8.4 提升性能 从一开始考虑pgbouncer的时候,性能就是一个关键的因素.为了确保高性能,有些问题必须认真对待.首先,确保参与您设置的所有节点相互之间的距离较近.这对于降低网络往返时间有很多的帮 ...

  5. CSS3 background-image背景图片相关介绍

    这里将会介绍如何通过background-image设置背景图片,以及背景图片的平铺.拉伸.偏移.设置大小等操作. 1. 背景图片样式分类 CSS中设置元素背景图片及其背景图片样式的属性主要以下几个: ...

  6. MySQL高级知识- MySQL的架构介绍

    [TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...

  7. Windows Server 2012 NIC Teaming介绍及注意事项

    Windows Server 2012 NIC Teaming介绍及注意事项 转载自:http://www.it165.net/os/html/201303/4799.html Windows Ser ...

  8. Linux下服务器端开发流程及相关工具介绍(C++)

    去年刚毕业来公司后,做为新人,发现很多东西都没有文档,各种工具和地址都是口口相传的,而且很多时候都是不知道有哪些工具可以使用,所以当时就想把自己接触到的这些东西记录下来,为后来者提供参考,相当于一个路 ...

  9. JavaScript var关键字、变量的状态、异常处理、命名规范等介绍

    本篇主要介绍var关键字.变量的undefined和null状态.异常处理.命名规范. 目录 1. var 关键字:介绍var关键字的使用. 2. 变量的状态:介绍变量的未定义.已定义未赋值.已定义已 ...

随机推荐

  1. java的集合框架最全详解

    java的集合框架最全详解(图) 前言:数据结构对程序设计有着深远的影响,在面向过程的C语言中,数据库结构用struct来描述,而在面向对象的编程中,数据结构是用类来描述的,并且包含有对该数据结构操作 ...

  2. Emoji表情符号录入MySQL数据库报错的解决方案(MySQL utf8与utf8mb4区别)

    本文转自:http://blog.itpub.net/26230597/viewspace-1243233/前言:手机app应用评论的时候,恢复表情符号,提示失败. 1,查看tomcat后台日志,核心 ...

  3. 使用mvvm框架avalon开发公司内部运营管理系统的一些心得

    接触avalon差不多有一年时间了,当时是看前端大牛司徒正美的博客才了解到还有这么一个高大上的玩意,然后就加入了avalon的讨论群.从群里零零散散的了解了avalon的一些特性,感觉很强大,感觉思想 ...

  4. AngularJS API之extend扩展对象

    angular.extend(dst,src),在我实验的1.2.16版本上是支持深拷贝的.但是最新的API显示,这个方法是不支持深拷贝的. 另外,第二个参数src支持多个对象. 第一种使用方式 va ...

  5. EF更新指定字段...

    EF更新指定的字段... 搜来搜去发现没有自己想要的啊... 或许本来就有更好的办法来实现我这个,所以没有人来搞吧... 如果有,请不吝告知..GG.. //要更改UserInfo表中指定的列,比如这 ...

  6. ACM3 求最值

    /*2*2014.11.18*求最值*描述:给定N个整数(1<=N<=100),求出这N个数中的最大值,最小值.*输入:多组数据,第一行为一个整数N,第二行为N个不超过100的正整数,用空 ...

  7. 微信小程序即将开放申请?微信小论坛小程序专场16日或可见分晓

    9月22号微信小程序内测至今已经好一段时间了,首批只开放了200个名额,没拿到内测资格的朋友早就等到心急了.就在刚刚,微信公开课宣布微信小论坛小程序专场即将在11月16号举行,微信公众平台小程序会在当 ...

  8. MVC后台传dt数据

    //MVC后台传dt数据 public JsonResult TeacherVoteInfo([FromBody]Teacher_VoteModel model) { string tname = m ...

  9. maven之window安装

    1.下载:apache-maven-3.3.9-bin.zip 2.解压下载的maven文件到任意指定文件夹 3.配置maven 右键“我的电脑” -> "属性" 在打开的属 ...

  10. Ajax前台调用后台方法、AJAX Pro2(回调函数)

    //获取分店 function cityResult() { if (cityName != "") { $("#ddlcity_").find("o ...