使用 pgbouncer 限制连接数

Vic*_*nov 6 postgresql pgbouncer

所以我有这个 pgbouncer 配置:

[databases]
my_db = host=10.10.10.10
my_db_with_conn_limit = host=10.10.10.10 dbname=my_db pool_size=55

max_client_conn = 300
default_pool_size = 65
reserve_pool_size = 5
reserve_pool_timeout = 1 
Run Code Online (Sandbox Code Playgroud)

目标是限制来自特定应用程序的连接数 - 当数据库名称为 database_with_conn_limit 时,只允许 55 个连接。

基本上,这些应用程序是相同的,但我希望其中一个限制连接,另一个获取任意数量的连接。

  • 这是正确的设置吗?
  • 或者我也应该为 my_db 指定 pool_size,给它所有 Postgres 的负 55?

Vao*_*sun 5

您不必“pool_size也指定 my_db”。

但您的配置不会限制连接数。您需要 max_db_connections像这里一样进行限制:

[databases]
my_db = host=10.10.10.10
my_db_with_conn_limit = host=10.10.10.10 dbname=my_db pool_size=55  max_db_connections=55
Run Code Online (Sandbox Code Playgroud)

否则,您会限制池中的会话数,但不会限制连接数...

您也可以为每个数据库+用户对设置不同的限制(我认为这是更常见的做法)。