【问题标题】:Architecture for DatabaseConnection in a REST applicationREST 应用程序中的数据库连接架构
【发布时间】:2016-12-05 01:36:17
【问题描述】:

我的问题看起来很简单,但有一些子问题需要更深入的检查。 我的问题: 处理数据库连接的最佳做法/架构是什么?

我找到的选项:

  1. 为每个带有数据库(DB)请求的完整服务创建一个新的 连接到数据库并在查询后再次关闭它。
  2. 在 REST 服务之外创建一个连接并将其用于每个 查询。

选项 1: 其中一个负面因素是每个请求的建立和关闭连接的成本。

选项 2: 不知道有没有用。我已经研究了 Web 服务生命周期以检查它是如何工作的,但不知道在 Web 服务完成后实例是否会保持活动状态。也不知道这是否是一个好习惯,因为可能存在破坏连接的事件。最后一个问题是我认为请求可能会相互阻塞(因此它破坏了线程的概念)。

希望你能在这个架构上帮助我一点。

你好,

尼克

【问题讨论】:

    标签: database rest architecture database-connection


    【解决方案1】:

    如果您为每个查询/事务创建一个,管理“关闭”连接会容易得多。

    我明白为什么常识要求您应该打开一个并始终使用它,但是您会遇到连接断开和多线程的问题。因此,您的下一步将是打开一个池(例如 50 个连接)并保持它们全部打开,将它们分配给不同的进程。

    如果您在需要时打开连接并在完成后将其丢弃,这实际上不会关闭连接,它只会将其返回到连接池以再次使用。

    【讨论】:

    • 感谢您命名的主要概念是“连接池/ing”,它对我帮助很大。我发现了一些提供这种连接池的框架/服务。就我而言,Apache Tomcat 也提供了这样的服务。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-19
    • 1970-01-01
    • 1970-01-01
    • 2011-12-04
    • 2011-08-17
    • 2011-09-13
    相关资源
    最近更新 更多