我有一个依赖于 BlazeDS 和 Oracle Application Express 的应用程序,它们都需要使用 Tomcat 或同等版本。我有以下两台 Linux 服务器:
(1)Oracle数据库11G
(2)Apache Web服务器
此外,我的应用程序需要 Java 和 C 程序主要用于大量的数字运算。
我的第一个问题是将 Java 和 C 应用程序逻辑放在哪个服务器上?应该是数据库服务器还是 Web 服务器?或者,这取决于……?
我的第二个问题是将 Tomcat 放在哪个服务器上(它总是在 Web 服务器上运行,还是取决于第一个问题的答案)?
如果有多种可能性,将不胜感激其优缺点。
答案1
Tomcat 可以运行在任意一台服务器上(或者完全不同的服务器上)。我倾向于将 Tomcat 和 C 代码放在 Web 服务器上,并将所有内存和 CPU 分配给数据库服务器。如果 Java 和 C 代码是瓶颈,则为 Tomcat 添加第三台服务器。除非别无选择,否则我不喜欢将数据库服务器用作多功能服务器。只要 Web 服务器可以处理传入流量和数字运算,就让它成为“应用程序”服务器。
答案2
它通常运行在第三个应用服务器上。
对于 Tomcat,在典型的企业环境中,它将是:Apache 反向代理 -> Tomcat 应用程序服务器 <-> 数据库服务器
如果您是轻量级的并且不需要在 Web 层上进行很多限制,那么您始终可以直接使用 Tomcat 上的 HTTP 或 HTTPS 连接器(使用 APR 或内置的 Coyote 连接器)进行前端连接。
答案3
我反对把任何不必要的东西放在数据库服务器上。除非你还有另一台服务器,否则就把它放在网络服务器上。