如何可靠地将游戏服务器 jar 部署到机器上?
How to reliably deploy a game server jar to a machine?
好吧,我现在有一个游戏服务器,运行正在我的本地开发机器上运行,但我想将它部署到一个真正的服务器机器上。最简单的方法是将 jar 文件传输到服务器并使用 java -jar server.jar 运行 它。
但我想可靠地将这个 jar 部署到服务器并像守护进程一样保持 运行ning。如果 server.jar 崩溃或 运行 内存不足但我没有重新启动服务器,则上述命令将终止。
其次,我希望它可以部署到多个物理服务器。所以 server.jar 在许多物理机器上启动并保持 运行ning 作为守护进程。
我考虑过 运行在 Java EE 中的 servlet 中连接服务器,但我认为这行不通,因为 Java EE 要求您的应用程序不会自行创建套接字.因为我使用 kryonet 作为网络库,所以我无法阻止我的应用程序执行 it/i 不知道如何解决这个问题。
有什么办法可以做我想做的事吗?也许有任何应用程序建议或为此任务构建的框架?
谢谢
一般来说,因为我对java不太熟悉,最简单的方法是通过服务器的OS来处理你的问题。例如,如果您的应用程序在某个时刻倾向于崩溃,您可以使用 OS 观察一个任务,如果任务崩溃,只需重新启动它。
下一步将是编写您自己的 "launcher" 代码,其功能与 os 基本相同,但方式更可控。
关于你的第二个问题,老实说我不明白你的意思。每个应用程序都可以多次启动。因此,在一台拥有更多服务器 运行 的物理机器上没有问题(处理端口分配或分发配置文件的两种方式)。如果你想在许多物理机器上部署你的服务器,应该会出现什么问题? Sr 我不明白这个问题。
一般来说,要部署一台服务器,您需要一份供管理员安装的自述文件,它应该只包含依赖项,不允许分发和一个或多个设置文件来配置您的服务器。您还可以放入 *.sh 脚本以使用正确的设置启动您的 server.jar,或者放入 *.bat 用于 windows。如果您有启动器,请记住它应该 100% 依赖于设置,以便管理员可以控制一切。
将军就是这样。 Sr 如果这不是 java 特定的,但老实说我不知道这样的主题是否甚至可以是特定于语言的。这太基础了。
好吧,我现在有一个游戏服务器,运行正在我的本地开发机器上运行,但我想将它部署到一个真正的服务器机器上。最简单的方法是将 jar 文件传输到服务器并使用 java -jar server.jar 运行 它。 但我想可靠地将这个 jar 部署到服务器并像守护进程一样保持 运行ning。如果 server.jar 崩溃或 运行 内存不足但我没有重新启动服务器,则上述命令将终止。 其次,我希望它可以部署到多个物理服务器。所以 server.jar 在许多物理机器上启动并保持 运行ning 作为守护进程。
我考虑过 运行在 Java EE 中的 servlet 中连接服务器,但我认为这行不通,因为 Java EE 要求您的应用程序不会自行创建套接字.因为我使用 kryonet 作为网络库,所以我无法阻止我的应用程序执行 it/i 不知道如何解决这个问题。
有什么办法可以做我想做的事吗?也许有任何应用程序建议或为此任务构建的框架?
谢谢
一般来说,因为我对java不太熟悉,最简单的方法是通过服务器的OS来处理你的问题。例如,如果您的应用程序在某个时刻倾向于崩溃,您可以使用 OS 观察一个任务,如果任务崩溃,只需重新启动它。
下一步将是编写您自己的 "launcher" 代码,其功能与 os 基本相同,但方式更可控。
关于你的第二个问题,老实说我不明白你的意思。每个应用程序都可以多次启动。因此,在一台拥有更多服务器 运行 的物理机器上没有问题(处理端口分配或分发配置文件的两种方式)。如果你想在许多物理机器上部署你的服务器,应该会出现什么问题? Sr 我不明白这个问题。
一般来说,要部署一台服务器,您需要一份供管理员安装的自述文件,它应该只包含依赖项,不允许分发和一个或多个设置文件来配置您的服务器。您还可以放入 *.sh 脚本以使用正确的设置启动您的 server.jar,或者放入 *.bat 用于 windows。如果您有启动器,请记住它应该 100% 依赖于设置,以便管理员可以控制一切。
将军就是这样。 Sr 如果这不是 java 特定的,但老实说我不知道这样的主题是否甚至可以是特定于语言的。这太基础了。