【问题标题】:Postgres terminology: client vs connectionPostgres 术语:客户端与连接
【发布时间】:2017-01-06 17:14:06
【问题描述】:

在 Postgres 中,客户端和连接之间是否存在一对一的关系?换句话说,一个客户端总是一个连接,没有一个客户端可以打开多个连接?

例如,当 Postgres 说:

org.postgresql.util.PSQLException: FATAL: 抱歉,客户端已经太多了。

这是否相当于“已经有太多的连接”?

此外,据我了解,Postgres 为每个客户端使用一个进程。那么这是否意味着每个进程只用于一个连接?

【问题讨论】:

    标签: postgresql


    【解决方案1】:

    参考 - https://www.postgresql.org/docs/9.6/static/connect-estab.html

    PostgreSQL 是使用简单的“每个用户进程”实现的 客户端/服务器模型。在这个模型中,有一个客户端进程 只连接到一个服务器进程。因为我们事先不知道 time 将建立多少个连接,我们必须使用 master 每次连接时产生一个新的服务器进程的进程 请求。

    是的,一个服务器进程服务一个连接。

    【讨论】:

    • 我了解一个服务器进程为一个客户端服务。我想知道的是一个客户端是否可以有多个连接都连接到同一个服务器进程。
    【解决方案2】:

    您可以从单个客户端(机器、应用程序)获得服务器可以管理的尽可能多的连接。服务器可以支持给定数量的连接,无论这些连接是否来自不同的客户端(机器、应用程序)与服务器无关。

    连接到postmaster 进程,该进程正在侦听 PG 配置为侦听的端口(默认为 5432)。建立连接时(在身份验证之后),服务器会生成一个由单个客户端独占使用的进程。该客户端可以与同一个服务器建立多个连接,例如连接到不同的数据库,或者使用不同的凭据连接到同一个数据库等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-26
      • 2017-05-16
      • 2020-10-08
      • 2013-09-06
      • 2012-01-05
      • 1970-01-01
      相关资源
      最近更新 更多