云原生环境中的连接池

2024-01-06

云原生环境中还需要连接池吗?

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

我想(不知道)在云原生环境中不再需要它们了。

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

这是真的?


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

除了上述原因(TCP 3 次握手)之外,您还需要连接池,原因如下:

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

我们专业地使用它,并且:

  • 池化 httpclient(用于 REST/SOAP Web 服务)
  • 汇集与 RabbitMQ 的连接(RabbitMQ 监视器提供对它们所谓的“流失统计”的深入了解,以轻松查看建立新连接的频率)

您可能还想查看其他“云架构解决方案”,例如:服务网格Istio https://istio.io/docs/concepts/traffic-management/是一种尝试将此类问题与微服务架构中的应用程序解耦的实现。这些可以使用本地代理服务器以及所谓的“侧车模式”中的连接池。更完整的解释请参见:红帽对服务网格的解释 https://www.redhat.com/en/topics/microservices/what-is-a-service-mesh

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

云原生环境中的连接池 的相关文章

  • 运行 GO111MODULE=on go install 。 ./cmd/... 在云初始化中

    我有一个使用 cloud init 部署的 bash 脚本 我的 bash 脚本包含以下部分代码 GO111MODULE on go install cmd 当直接在已部署服务器的终端中运行我的 bash 脚本时 它按预期工作 但是当我在云
  • Azure 的云服务负载平衡极其不均匀

    我正在利用 Azure 托管云服务 最近我对其进行了修改 使其可以跨多个实例进行扩展 包括会话缓存辅助角色 我的问题是 为什么我会在一个实例上看到极端负载 高达 90 但在其他实例上却没有 所有其他实例为 15 20 我应该担心吗 在我设置
  • 在云中托管公共(只读)Neo4j 实例

    我正在开展一个开放科学项目 以了解药物为何有效 我们创建了一个名为Hetionet https github com dhimmel hetionet有 47 031 个节点和 2 250 197 个关系 是使用 Neo4j https t
  • 监听/通知 pgconnection 宕机了 java?

    我正在使用 PostgreSQL DB 并应用它LISTEN NOTIFY功能 所以我的监听器位于我的 AS 应用程序服务器 上 并且我在数据库上配置了触发器 这样当对表执行 CRUD 操作时NOTIFY请求在 AS 上发送 LISTENE
  • Node+Passport.js + Sessions + 多个服务器

    护照很棒 我现在发现它处理会话的方式存在一些问题 一定是我用错了 登录 会话 我存储在数据库中的用户数据对我来说一切都很顺利 然而 我发现当我转移到生产环境 具有多个服务器的 EC2 上的云 时 我每次都会丢失登录会话 现在我很清楚这一点
  • Tomcat JDBC 连接池:testOnBorrow 与 testWhileIdle

    由于各种原因 池中的连接可能会变得无效 服务器连接超时 网络问题 我的理解是 Tomcat JDBC 连接池不对其向应用程序提供的连接的有效性提供任何保证 为了防止 实际上只是降低风险 从池中获取无效连接 解决方案似乎是配置连接验证 验证连
  • ZeroMQ 多线程:按需创建套接字还是使用套接字对象池?

    我正在利用 ZeroMQ N to N 发布 订阅模型构建一个 POC 在我们的应用服务器中 当处理 http 请求时 如果线程从数据库中提取数据 它就会使用该数据更新本地 memcache 实例 为了同步应用程序服务器集群中的其他 mem
  • 由于 NanoMatch 问题,Firestore 的 Firebase 功能失败

    我是云函数新手 正在测试此示例代码https github com firebase functions samples tree master quickstarts uppercase firestore https github co
  • .net 连接池

    我不明白常规连接和连接池之间的语法差异是什么 当我使用using关键例如 using SqlConnection connection new SqlConnection connectionString connection Open c
  • 更新 AWS S3 对象密钥(密钥名称)

    我需要重命名 AWS S3 存储桶中存储的大量文件 每个文件 对象将单独重命名 基于特定标准 没有通用的 前缀 后缀 我想出了 current filename 和 new filename 的列表 它们可以作为 bat 文件 队列在 CL
  • 当我使用 Tomcat 7 JDBC 连接池取消部署 Web 应用程序时,为什么连接仍然存在?

    我已经将一个最小的 Spring Web 应用程序部署到 Tomcat 7 0 22 它由几个页面 一个控制器 一个服务和一个 DAO 组成 该 DAO 有一个运行 SELECT 查询的方法 Web 应用程序配置为使用新的Tomcat JD
  • 多个环境中的 Azure 云服务项目配置(.csdef 和 .cscfg)

    目前我们有一个开发云服务 acme dev service 和一个生产云服务 acme prod service 我们解决方案中当前的设置有一个名为 acme application 的云服务项目 它使用 cscfg 和 csdef 文件的
  • Azure Web应用服务时区更改问题

    我们正在使用 Azure Web 应用程序服务进行多租户应用程序 但应用程序服务的默认时区是 UTC 我只想更改该地区的时区 我已经在应用程序设置中尝试了 WEB TIMEZONE 变量 但不起作用 You are setting wron
  • 关闭还是不关闭 Oracle 连接?

    我的应用程序存在性能问题 因此我开始从根本上调查这个问题 与数据库的连接 最佳实践说 打开连接 使用它并尽快关闭 但我不知道这会导致的开销 所以问题是 1 尽快打开 使用 关闭连接是使用 ODP NET 的最佳方法吗 2 有没有办法以及如何
  • V100 和 P100 在 Google Compute Engine 上的可用性

    描述 我刚刚尝试了一段时间 使用我的个人帐户设置或保留用于机器学习的虚拟机 我在 n1 上使用了几个月 具有大约 8 GB 或更多 GB RAM 以及用于机器学习的 P100 或 V100 现在尝试了至少一半具有 P100 V100 可用性
  • Oracle 连接池类

    我想在 Helper 类中为 Oracle DB 设置连接池 public class DbConnection Data source for the pooled connection private static OracleData
  • 为什么连接没有在我的 iSeries/ASP.NET MVC 4 应用程序中重用?

    我们正在 Windows 2008 服务器场上运行 MVC 4 Web 应用程序 我们一直在尝试将服务器场升级到 Windows 2008 R2 64 位服务器 但在 iSeries 运行 V7R1 上遇到了连接池问题 我们经常调用 DB2
  • 在云服务器中运行 python 脚本的最简单方法是什么?

    我有一个网络爬行 python 脚本 需要几个小时才能完成 并且无法在我的本地计算机上完整运行 有没有一种方便的方法可以将其部署到简单的 Web 服务器 该脚本基本上将网页下载到文本文件中 如何最好地实现这一点 谢谢 既然你说性能是一个问题
  • JDBC中为什么要关闭连接?如果我们不这样做,会发生什么

    在java中与数据库通信 我们经常遵循以下步骤 加载驱动程序 建立连接 创建声明或PreparedStatement get the ResultSet 关闭连接 我很困惑我们应该关闭连接 都说创建连接很昂贵 所以为什么我们不能这样做 st
  • pg_stat_activity 中具有“空闲”状态的持久“COMMIT”查询

    如果我查询 select from pg stat activity where application name example application 我得到了很多行 哪个州是idle查询是COMMIT 它们是持久的并且不会消失 一段时

随机推荐