Cloud 云本地环境中的连接池

Cloud 云本地环境中的连接池,cloud,connection-pooling,Cloud,Connection Pooling,在云本地环境中仍然需要连接池吗 连接池(例如开放数据库连接)在过去非常流行 我猜(不知道)在云本地环境中,它们不再需要了 有一个容器/吊舱池。这样,连接池就不再需要了 这是真的吗?您仍然需要连接池 连接池可以防止您在希望向另一个服务发送HTTP请求时产生TCP连接建立开销。我相信这大约是两个往返时间(RTT)(SYN->ACK)。看见网络I/O非常耗时,因此可以为请求节省大量时间 连接池对底层操作系统也很有帮助。例如,在Kubernetes上下文中,您可能正在与“服务”通信。Kubernetes

在云本地环境中仍然需要连接池吗

连接池(例如开放数据库连接)在过去非常流行

我猜(不知道)在云本地环境中,它们不再需要了

有一个容器/吊舱池。这样,连接池就不再需要了


这是真的吗?

您仍然需要连接池

连接池可以防止您在希望向另一个服务发送HTTP请求时产生TCP连接建立开销。我相信这大约是两个往返时间(RTT)(SYN->ACK)。看见网络I/O非常耗时,因此可以为请求节省大量时间


连接池对底层操作系统也很有帮助。例如,在Kubernetes上下文中,您可能正在与“服务”通信。Kubernetes使用
iptables
将流量正确路由到服务
iptables
使用名为
conntrack
的文件跟踪
iptables
正在管理的所有连接。这是一个大小有限的文件。连接池可以防止您淹没
conntrack
文件。这是一个相关的问题。

您仍然需要连接池

连接池可以防止您在希望向另一个服务发送HTTP请求时产生TCP连接建立开销。我相信这大约是两个往返时间(RTT)(SYN->ACK)。看见网络I/O非常耗时,因此可以为请求节省大量时间


连接池对底层操作系统也很有帮助。例如,在Kubernetes上下文中,您可能正在与“服务”通信。Kubernetes使用
iptables
将流量正确路由到服务
iptables
使用名为
conntrack
的文件跟踪
iptables
正在管理的所有连接。这是一个大小有限的文件。连接池可以防止您淹没
conntrack
文件。这里有一个相关的问题。

和往常一样,要衡量,不要猜测,但如果您关心性能,您仍然希望以某种方式连接池

除了上述原因(TCP 3-way handhsake)之外,出于以下原因,您还需要连接池:

  • 数据库可能需要为每个连接分叉或启动一个新进程,这可能是一个非常昂贵的操作
  • 关闭连接后,操作系统可能必须清理数据库进程,以获得安全内存、文件描述符、套接字等
  • 数据库可能需要验证用户的登录凭据,在某些情况下可能是LDAP用户帐户,因此涉及另一个网络往返
  • 如果您的连接不是普通TCP连接,但在最坏的情况下使用SSL/TLS(不可能恢复会话),则可能会产生完整TLS握手的开销,包括通过internet上的CRL或OCSP验证RSA签名和检查证书的状态
  • 我们专业地使用此功能,并且:

    • 池化HttpClient(用于REST/SOAP Web服务)
    • 将连接池连接到RabbitMQ(RabbitMQ监视器提供了对其所称的:搅动统计信息的深入了解,以便轻松查看建立新连接的频率)

    您可能还想查看其他“云架构解决方案”,如:service mesh,它是一种尝试在微服务架构中将此类问题与您的应用程序解耦的实现。它们可以使用本地代理服务器,连接池采用所谓的“侧车模式”。有关更完整的解释,请参见:

    一如既往,测量,不要猜测,但如果您关心性能,您仍然希望以某种方式连接池

    除了上述原因(TCP 3-way handhsake)之外,出于以下原因,您还需要连接池:

  • 数据库可能需要为每个连接分叉或启动一个新进程,这可能是一个非常昂贵的操作
  • 关闭连接后,操作系统可能必须清理数据库进程,以获得安全内存、文件描述符、套接字等
  • 数据库可能需要验证用户的登录凭据,在某些情况下可能是LDAP用户帐户,因此涉及另一个网络往返
  • 如果您的连接不是普通TCP连接,但在最坏的情况下使用SSL/TLS(不可能恢复会话),则可能会产生完整TLS握手的开销,包括通过internet上的CRL或OCSP验证RSA签名和检查证书的状态
  • 我们专业地使用此功能,并且:

    • 池化HttpClient(用于REST/SOAP Web服务)
    • 将连接池连接到RabbitMQ(RabbitMQ监视器提供了对其所称的:搅动统计信息的深入了解,以便轻松查看建立新连接的频率)
    您可能还想查看其他“云架构解决方案”,如:service mesh,它是一种尝试在微服务架构中将此类问题与您的应用程序解耦的实现。它们可以使用本地代理服务器,连接池采用所谓的“侧车模式”。有关更完整的说明,请参阅: