pgBouncer
pgBouncer Connection Pooling Example
Crunchy pgBouncer is a lightweight connection pooler for PostgreSQL databases.
The following examples create the following containers:
- pgBouncer Primary
- pgBouncer Replica
- PostgreSQL Primary
- PostgreSQL Replica
In Kubernetes and OpenShift, this example will also create:
- pgBouncer Primary Service
- pgBouncer Replica Service
- Primary Service
- Replica Service
- PostgreSQL Secrets
- pgBouncer Secrets
To cleanup the objects created by this example, run the following in the pgbouncer
example directory:
./cleanup.sh
pgBouncer
, see the official website.This example uses a custom configuration to create the pgbouncer user and an auth function in the primary for the pgbouncer containers to authenticate against. It takes advantage of the post-startup-hook and a custom sql file mounted in the /pgconf directory.
Docker
Run the pgbouncer
example:
cd $CCPROOT/examples/docker/pgbouncer
./run.sh
Once all containers have deployed and are ready for use, psql
to the target
databases through pgBouncer
:
psql -d userdb -h 0.0.0.0 -p 6432 -U testuser
psql -d userdb -h 0.0.0.0 -p 6433 -U testuser
To connect to the administration database within pgbouncer
, connect using psql
:
psql -d pgbouncer -h 0.0.0.0 -p 6432 -U pgbouncer
psql -d pgbouncer -h 0.0.0.0 -p 6433 -U pgbouncer
Kubernetes and OpenShift
/pgconf
.Run the pgbouncer
example:
cd $CCPROOT/examples/kube/pgbouncer
./run.sh
Once all containers have deployed and are ready for use, psql
to the target
databases through pgBouncer
:
psql -d userdb -h pgbouncer-primary -p 6432 -U testuser
psql -d userdb -h pgbouncer-replica -p 6432 -U testuser
To connect to the administration database within pgbouncer
, connect using psql
:
psql -d pgbouncer -h pgbouncer-primary -p 6432 -U pgbouncer -c "SHOW SERVERS"
psql -d pgbouncer -h pgbouncer-replica -p 6432 -U pgbouncer -c "SHOW SERVERS"