自动休眠/启动/代理Minecraft服务器

521 阅读1分钟

墙面

为一群不经常在线的朋友托管内部minecraft服务器会浪费很多资源:vanilla / spigot / paper服务器的实现在空闲时都会有适度的CPU使用率(在我的低端家庭服务器上为20%-30%),更不用说消耗相当数量的内存了。

Facade旨在当闲置一段时间(可配置)后自动关闭(休眠)服务器,当有新玩家连接时,它会重新启动服务器并将所有数据代理到服务器实例上。 这个过程对玩家是透明的:服务器状态始终对玩家开放,在整个过程中显示友好信息(如MOTD,启动服务器时连接超时等),以表明服务器处于休眠状态。

特点

  • 轻量级:用Go语言编写,我们努力留下尽可能少的CPU/内存足迹。

  • 自动关机和重启:当服务器闲置一段时间时,安排关闭服务器,并在需要时自动重新启动服务器。

  • 响应服务器列表平移:当我们的Minecraft服务器由于不活动而休眠时,我们仍然响应客户端发送给我们的服务器列表平移数据包,这样,客户端仍然看到我们的服务器是活着的。这是通过在我们的代理服务器中实现服务器列表ping协议来实现的,实际的minecraft服务器只有在客户端试图登录时才会被重新启动。

  • 可配置:Facade的行为是可配置的,以适应服务器所有者的不同需求。