如何在具有不同 pool_mode 的单个服务器中安装多个 PG Bouncer

问题描述

如何在单台服务器(Ubuntu18.04)上安装多个不同池模式的PG Bouncer?

当我尝试第二次安装时,它说已经安装?

是否有其他方法可以使用不同的端口进行安装?

解决方法

您可以安装一个容器运行程序(例如 docker)并运行多个容器,每个容器都包含一个 pgbouncer 安装,例如。使用此图片:https://github.com/edoburu/docker-pgbouncer

首先安装docker:

sudo apt install docker.io

然后,start 可以启动任意数量的 pgbouncer。

pgbouncer-1:

sudo docker run --rm -d \
    -n pgbouncer-session\
    -e DATABASE_URL="postgres://user:pass@postgres-host/database" \
    -e POOL_MODE=session \
    -p 5432:5432
    edoburu/pgbouncer

pgbouncer-2

sudo docker run --rm -d \
-n pgbouncer-transaction \
-e DATABASE_URL="postgres://user:pass@postgres-host/database" \
-e POOL_MODE=transaction \
-p 5433:5432
edoburu/pgbouncer

注意容器在主机上使用不同的端口(第一个使用 5432,第二个使用 5433)。

如果您有很多配置,您可能希望对配置文件使用绑定挂载。

此外,为了稳定设置,我建议使用 docker-compose 而不是原始 docker 命令。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...