1,概念

pgpool-II是pg和客户端之间的中间件。
pgpool-II用户手册。

2,功能

1)连接池

保持已有连接,当连接参数(用户名、数据库、协议版本)相同时重用这些连接。适用于一些短连接的应用。

2)内置复制功能

pgpool-II管理多个pg服务器,数据变更同时发送到所有的pg。其中一台节点失效不影响其它节点使用。
当然也可以通过pg的流复制完成主备库之间的数据同步。

3)负载均衡

分发select查询到所有可用的服务器中,读性能与pg服务器数量成正比。
高可用:一个pg不可用时,pgpool-II会把用户请求转发到其他可用的pg上。通过超时和重试次数的探测机制去检测pg是否正常工作。

4)限制超过限度的连接

pg连接数达到MAX时,新的连接将被拒绝。
pgpool-II连接数达到MAX时,新的连接放入队列,而不是立即返回一个错误。

3,进程工作原理

进程工作原理图

1)pcp process

是一个命令行管理工具,用户可以使用pcp向pgpool-II发送管理命令。

2)parent process

负责检查各个底层数据库的健康状态。

3)child process

负责接收用户发过来的SQL请求,然后再根据规则分发到底层数据库上。

4)worker process

pgpool-II 3.X增加的进程,负责检查底层数据库之间的复制延迟。

5)watchdog process

可以把多个pgpool-II组成一个高可用集群,解决pgpool-II自身的高可用问题,提供了vip管理功能。

看门狗模块功能:

  1. 检测pgpool服务是否正常工作
  2. watchdog互相监控
  3. 在某些故障检测中交换各自pgpool的主备状态。
  4. 在pgpool进行主备切换时自动进行虚拟IP地址的漂移:当一个standby pgpool提升为master pgpool时,相应的虚拟IP也会漂移过来。这样应用程序不需要修改配置就可以连接到新的主pgpool上。
  5. 故障pgpool恢复后,自动注册为standby,恢复为高可用状态。

更多推荐