我来自客户端编程背景(主要是 C++)。但是,我现在偶尔需要参与一些 Java 中的小型服务器端项目,因此需要有经验的服务器端人员的一些建议。我不太了解应用程序服务器。
是否有任何经验法则或考虑因素来决定程序何时需要应用程序服务器(如 GlassFish 或 JBoss)?
我有 2 台用 Java 编写的服务器都在专用机器上运行。一台服务器在 Tomcat 上运行,没有任何 App Server。第二台服务器在应用服务器(Glassfish)上运行。
我需要编写一个位于中间的相当简单的程序。这就是程序要做的事情
听一个套接字。当连接来自第一台服务器时,它会创建一个线程来接受连接并继续侦听。
线程从第一台服务器获取少量数据(比如 100-200 字节),对数据进行非常小的格式化并通过 web 服务调用将其传递给第二台服务器。它获取 web 服务调用的返回值,并基于它进行一些处理 - 可能是大约 10-20 行代码 - 这不是一些主要处理 - 只是在不同的(第 3 个)服务器上调用一些 web 服务。在此之后,它将一些数据返回给第一台服务器——同样不多——可能是 50 字节。
我的程序不是网络服务。它只是从第一台服务器以特定格式获取消息,并根据从第一台服务器接收到的数据对第二台服务器进行网络服务调用。在某些情况下,您可以这样想——它充当第一台服务器的代理,向第二台服务器发出 web 服务调用。
所有主要工作都由运行在 Tomcat 服务器上的应用程序运行的第一台服务器和运行在 GlassFish 上的 Web 服务完成。这两个都是经过良好测试的程序。我想写的中间程序很简单,半天就能搞定。但是,我担心的是它是否能够承受负载。
有哪些规则/注意事项可以确定我是否可以将这个 Java 程序作为常规 Windows 服务运行,或者我是否需要 Glassfish 或任何其他应用程序服务器之类的东西。
我应该考虑每分钟/小时的连接数吗?我将为每个连接分叉一个线程,但线程本身的寿命不会很长。我应该考虑应用服务器的连接数阈值是多少?还有其他考虑吗?如果可能的话,我非常希望避免使用应用程序服务器。
是否在 App Server 下运行它只是一个问题——我这里还有什么问题吗?