专用 Web 和数据库服务器之间的网络通信

专用 Web 和数据库服务器之间的网络通信

我们正处于一个关键时刻(我甚至可以说,现在正是时候),我们需要将数据库服务器与应用程序 Web 服务器分开。这是我们在仔细彻底地监控服务器(平均负载、CPU 使用率等)之后得出的结论。

当数据库服务器分离时:

  1. 两台服务器之间的网络通信路径的理想设置/最佳实践是什么?如果在同一台服务器上运行,数据库和应用程序之间的连接将利用 TCP/IP 通信,但是当它们分开时应该如何运行/设置,以便性能不会受到很大影响?例如,目前我们的 JDBC URL 看起来像jdbc:postgresql://localhost:9999/ourproductiondb,可能localhost会将其更改为数据库服务器的私有 IP 地址。

  2. 在我们的应用程序中,我们还允许应用程序用户提交/附加附件(.txt、.doc、.pdf、.xls 等),这些附件实际上物理存储在服务器磁盘中,只有其文件路径存储在数据库中。在应用程序 Web 服务器中还是在数据库服务器中,哪个是物理维护/保存文档的理想位置/方法?

我们对将数据库分离为单独服务器这一领域还很陌生,我们对此的了解非常有限。因此,我们非常欢迎并非常感谢任何与此相关的资源、链接、文档、文章、指南、建议等。

笔记:我们的交易工具是:RHEL5 64 位、Apache Tomcat 6.0.10、JDK 1.6、PostgreSQL 8.2.22、pgpool 2.0.1

答案1

依我之见,你只是担心太多了。

  1. 也许我不明白这个问题,但您拥有的最佳(也是唯一的)选项是相同的 TCP/IP。您可能唯一担心的是服务器之间的延迟(ping 时间)。只要它在同一个 LAN 上,就没问题。

  2. 最理想的位置可能是两者中负载最小的服务器。由于文件不存储在数据库中,因此它们与数据库无关。将它们保存在应用程序服务器上似乎是最直接的。

您所要做的就是移动 PostgreSQL 并将 URL 中的“localhost”更改为新的服务器 IP。

相关内容