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

我们正处于关键时刻(甚至可以说,我们需要将数据库服务器与应用程序Web服务器分开)。 这是我们在仔细和彻底地监测服务器(负载平均值,CPU使用率等)本身之后才到达的。

当数据库服务器分离时:

  1. 2台服务器之间的networking通信path的理想设置/最佳实践是什么? 如果它运行在同一台服务器上,数据库和应用程序之间的连接将使用TCP / IP通信,但是如何在分离时运行/设置,从而不会影响性能? 例如,目前我们的JDBC URL看起来像jdbc:postgresql://localhost:9999/ourproductiondb ,可能这个localhost将被更改为数据库服务器的私有IP地址。

  2. 在我们的应用程序中,我们也允许应用程序用户提交/附加实际存储在服务器磁盘中的附件(.txt,.doc,.pdf,.xls等),并且只将其文件path存储在数据库中。 在应用程序Web服务器或数据库服务器中,哪一个物理维护/保存文档是理想的地方?

我们作为一个单独的服务器将数据库分离的这个领域是非常新的,我们对此的了解非常有限。 因此,任何资源,链接,文件,文章,指导方针,build议等在这方面都受到高度的欢迎和真正的赞赏。

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

恕我直言,你只是担心太多。

  1. 也许我没有得到这个问题,但你有最好的(也是唯一的)选项是非常相同的TCP / IP。 您唯一可能担心的是服务器之间的延迟(ping时间)。 只要它在同一个局域网上,没关系。

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

您只需要移动PostgreSQL并将URL中的“localhost”更改为新的服务器IP。