postgresql-xl使用pgbouncer连接池

  1. 概述

       pgbouncer是PostgreSQL的一个轻量级连接池,可以给客户端提供一个统一的视图。

    pgbouncer的作用:

    a)pgbouncer可以在后端数据库和前端应用间简历连接的桥梁,由pgbouncer去处理和后端的连接关系。

    b)对客户端的连接进行限制,防止过多的恶意连接。

    pgbouncer的特点:

    a)内存消耗低。(默认2k/连接)

    b)可以把不同的数据库连接到一个机器上,而对客户端保持透明。

    c)支持在线的重行配置而无需重启。

  2. 需求

        postgresql-xl在架构上,coordiantor节点具有连接池作用,但是在多个coordiantor节点的时候,需要配置一个

    管理多个coordinator节点的连接池。考虑到只需要要简单的连接池功能,所以选择pgbouncer这种轻量级的连接池

    相对比较合适。

  3. 背景

    服务器配置

    10.0.1.13 gtm

    10.0.1.14 dbnode01

    10.0.1.15 dbnode02

    逻辑节点配置

    gtm        gtm节点

    dbnode01  1coordinator节点,2datanode节点

    dbnode02  1coordinator节点,2datanode节点

    环境

    CentOS7.1

    postgresql-xl9.2

  4. 编译安装

    依赖包安装

    yum install –y libevent-devel

    如果yum不行,直接下载libevent包,编译安装即可。

    源码编译安装

    下载源码包,目前最新版本为1.7

    https://pgbouncer.github.io/downloads/files/1.7/pgbouncer-1.7.tar.gz

    解压

    tar xvf pgbouncer-1.7.tar.gz

    ./configure

    make & make install

    配置环境变量

    vim .bashrc

    增加pgbouncer目录

    export PATH=/usr/local/pgbouncer/bin:$PATH

    source .bashrc

  5. 配置

    pgbouncer.ini

    [database]

    postgres = host=10.0.1.14 port=10010 user=postgres dbname=postgres

    postgres = host=10.0.1.15 port=10020 user=postgres dbname=postgres
    [pgbouncer]

    logfile = /home/postgres/pgbouncer/pgbouncer.log

    pidfile = /home/postgres/pgbouncer/pgbouncer.pid

    listen_addr = 127.0.0.1

    listen_port = 6432

    auth_file = /home/postgres/pgbouncer/userlist.txt

    userlist.txt

    用户密码配置文件,测试使用明文,可以使用md5加密

    增加:

    “postgres” ““

    因为本身postgresql的用户postgres没有使用密码,所以可以直接用" ",在用户名和密码中间需要使用一个空格。

  6. 测试

    连接测试

    psql -h 127.0.0.1 -p 6432 -U postgres postgres

    创建表

    create table t1(f1 int);

    \dt

    insert记录

    insert into t1 values(1);

    insert into t1 values(22);

    查看insert数据

    select * from t1;

    数据传输情况


  7. 7.

你可能感兴趣的:(连接池,中间件,postgres,pgbouncer,postgresql-xl)