0

好吧,我现在有一个游戏服务器在我的本地开发机器上运行,但我想将它部署到真正的服务器机器上。最简单的方法是将 jar 文件传输到服务器并使用 java -jar server.jar 运行它。但我想可靠地将这个 jar 部署到服务器并让它像守护进程一样运行。如果 server.jar 崩溃或内存不足,上述命令将终止,但我没有重新启动服务器。其次,我希望它可以部署到多个物理服务器。因此 server.jar 在许多物理机器上启动并作为守护进程继续运行。

我曾考虑在 Java EE 中的 servlet 中运行服务器,但我认为这行不通,因为 Java EE 要求您的应用程序不会自行创建套接字。而且因为我使用 kryonet 作为网络库,所以我无法阻止我的应用程序这样做/我不知道如何克服这个问题。

有什么办法可以做我想做的事吗?也许为此任务构建了任何应用程序建议或框架?

谢谢

4

1 回答 1

0

一般来说,因为我对java不太熟悉,最简单的方法是通过服务器的操作系统来处理你的问题。举个例子,如果你的应用程序在某个时候容易崩溃,你可以用操作系统观察一个任务,如果任务崩溃了,只需重新启动它。

下一步是编写你自己的“启动器”,它与操作系统基本相同,但以更可控的方式。

对于你的第二个问题,老实说,我不明白你的意思。每个应用程序都可以多次启动。因此,在一台运行更多服务器的物理机器上是没有问题的(您处理端口分配或分发配置文件的两种方式)。如果您想在许多物理机器上部署您的服务器,应该会出现什么问题?先生,我不理解这个问题。

通常,要部署服务器,您需要为管理员安装又名自述文件,并且它应该只包含依赖项,不允许分发以及一个或多个设置文件来配置您的服务器。您也可以输入 *.sh 脚本以使用正确的设置启动您的 server.jar,或者在 Windows 中输入 *.bat。如果您有启动器,请记住它应该 100% 取决于设置,因此管理员可以控制一切。

一般情况就这样。先生,如果这不是特定于 java 的,但老实说,我不知道这样的主题是否甚至可以是特定于语言的。这太基础了。

于 2015-06-17T13:00:07.533 回答