5

减少 Java 和 Scala 应用程序启动时间的方法已经在这里这里讨论过。建议的解决方案之一是使用客户端-服务器方法与Nailgun或简单的手写服务器通过 TCP 套接字与netcat进行通信。

一方面,Nailgun 就是为此目的而设计的。另一方面,它的最后一个版本 0.7.1 是在 2005 年,我有点担心开发是否停止以及它有多稳定。netcat 似乎是一个非常标准的工具,可在许多 Linux/Unix 系统上使用。但是这两个系统对我来说都是新的,所以我想知道我的观察是否正确,以及使用 Nailgun 与 netcat 为 Java 应用程序提供快速命令行界面的其他优点和缺点是什么?

PS 你可能想知道为什么要改进启动时间,因为它已经很合理了(在我的机器上大约 100 毫秒),或者为什么不使用 C/C++ 来代替。第一个是因为应用程序将被执行多次(例如,从 bash 脚本中的循环中)并且不幸的是这个使用场景无法更改,第二个是因为这个控制台程序将只是现有片段的替代接口(CLI)用 Java 编写的软件。

4

3 回答 3

4

我的建议是现在使用钉枪,并证明这种解决方案确实对启动时间有积极影响。

如果您确认瓶颈是启动时间,那么您可以实现一个非常简单的客户端/服务器,其优点是可以自由使用任何通信程序(netcat、wget、curl、perl 等)并完全控制协议。

于 2010-10-28T11:03:03.557 回答
3

“在下载之前,请注意它是不安全的。甚至没有关闭。虽然有办法确保客户端从本地机器连接到服务器,但还没有任何“用户”的概念。任何程序在 Nailgun 中运行的运行与服务器本身具有相同的权限。您已被警告。

我个人希望在将其投入生产之前修复它......

于 2010-10-28T10:46:48.207 回答
0

Nailgun 运行良好,Netcat 也运行良好。我都用过。Netcat 适用于任何程序,而不仅仅是 Java。它可以用来在你的局域网上执行关机脚本。对于 Windows,您可能只需要使用 Nailgun。

于 2015-05-04T04:52:09.973 回答