同一个 PostgreSQL 上的多个连接池

Multiple connection pool on same PostgreSQL

我的申请主要有两个部分,

  1. 使用 Django python 后端的 angular 编写的用户界面。
  2. 重映射减少类过程。

两者都使用 postgres 进行查找,所以我怀疑我是否对两者使用相同的连接池,当我的 map reduce 由于大量查找而运行时,我的其他应用程序将无法工作,因为没有可用的连接.有没有解决这个问题的方法。(避免 postgres 本身在积压中)

PS:我正在使用 pgbouncer 进行池化

最简单的方法是将这两个部分分开。 至少在连接资源方面。 (例如,内存消耗和 gc 是否会从重组中获益未被问及)

您可以使用以下方法之一实现此目的:

  1. 使用两个独立的池,每个池一个。
    这样,您可以根据每个部分的连接要求设置池。

  2. 更改您的代码以为其他部分维护足够的 "free" 资源。
    这是非常乏味的,只有在资源需求时才有用 需要根据算法的内部状态进行细粒度控制。

通常您会希望采用建议 1。