# 部署服务器

# 准备阶段

在进行Java版网络游戏搭建和部署流程前,首先需要注册成为我的世界开发者,并完成入驻申请,申请开发阶段服务器。具体步骤,请详细阅读如下文档:

  1. 开发准备阶段概述

  2. 入驻申请

  3. 申请开发阶段服务器

  4. 使用数据库前端连接数据库

  5. 连接开发机

# 特别提示

  1. 拿到机器后,要先访问添加白名单,之后才可以正常登入
  2. spigot机器的java环境对应的操作命令,分别是java8java18,其中运行Spigot请使用java8(具体原因详见常见问题合集)

# JAVA服部署流程

  • 在准备好开发机后,连接上开发机

  • 通过服主各自的Java服框架,部署各自的Java服(必须存在BC服)

  • 经过初步的调研,确定目前使用的Spigot版本为1.12.2,因此为了兼容基岩版1.18客户端,需要在Spigot服使用ViaVersion插件

  • 下载ViaVersion插件 (opens new window),并放置于 Spigot服目录/plugins/ 目录下。

  • 下载SpigotMaster插件,并放置于 Spigot服目录/plugins/ 目录下。

  • 下载BungeeMaster插件,并放置于 BC服目录/plugins/ 目录下。

  • BC服目录/plugins/ 下,新建文件夹 BungeeMaster,并在 BungeeMaster 文件夹下新建文件 config.yml(此为BungeeMaster插件配置)

    目录结构1

    目录结构2

    目录结构3

  • 然后填入如下内容,其中

    • server_id 取值区间在[12000, 14000)内,并且保持单次部署唯一即可

    • master_port端口范围要求[29000,31000)

      • master_port是指BC服监听Master服连接所用端口,请注意与下述用于原生游戏的query_port区分,以免造成端口冲突
    • 填写完毕后,请记下相关参数,后面需要在studio中填写

    config.yml

  • 打开BC服目录/config.yml文件(此为bc服配置),配置bc服监听的端口,端口范围要求[29000,31000)

    • 记下端口参数,后面需要在studio中填写
  • 注意,此处的query_porthost中冒号后面的端口值,请保持一致

    • 该处的端口,均为BC服用于监听来自Geyser服相关连接的端口

    config.yml

# 负载/协议转换部分部署流程

  • 打开MCStudio,选择基岩版服务器,并选择右上角新建选项,打开后,选择空白Spigot服

    Studio部署流程

  • 选择更多后,点击服务器配置,开始配置

    Studio部署配置

  • 其中,控制服的配置不再赘述,和基岩版网络服务器相似

  • 代理服和协议服实际上是同一个进程,所以配置合在一起说明:

    • 每个proxy内部会启动一个geyser,因此只需要调整proxy的数量,不需要配置geyser的数量。
    • proxy单进程内存:暂时未被使用
    • geyser单服最大人数:建议为200~300人,正式上线后根据proxy与geyser进程的负载情况再进行调整。0表示无上限,但正式服强烈建议设置最大人数,避免整服卡死。
    • geyser单进程内存:指geyser的java部分的最大可用堆内存。0表示使用默认值,开发与审核阶段默认为1G,正式阶段默认为6G。一般来说6G内存至少可以承载500人。

    框架上半部分部署

  • BC服的配置则根据Java服部署中,BC服的数量和配置来决定。如,根据上个步骤截图数据,则最终配置为:

    框架上半部分部署

    • 如图所示,BC服端口即为query_port
    • 控制服端口即为master_port
  • 配置完成后,点击部署

  • 查看日志,若部署成功,则可以通过工具箱打开ModPC开发包,进入游戏开始测试

    框架上半部分部署

# 部署多个代理服与BC

  • 在代理服的配置界面填写数量即可部署多个代理服(协议服与代理服为一对一的关系,所以这个数量也是协议服的数量),点击增加代理服则可以在不同机器上部署代理服。

  • 如果需要部署多个BC:

    1. 在机器上部署好多个BC(可以分布在不同机器上),按上面的指引分别配置好server_id,master_port,query_port。注意这三个字段,不同bc之间不能有重复。
    2. 在studio的BC服配置界面,点击增加BC服,然后填写每个BC的ip,server_id,master_port,query_port。
    3. 重新部署,即可与多个BC组网,master会平均分配玩家到各个BC。

# Proxy与Geyser服的性能参数

一个proxy可以支撑300个玩家的跑图及连续登录,并且维持流畅运行,此时geyser建议分配4G的内存上限,整个进程最多会占用5G内存,以及5个核心的cpu。

# 常见部署问题合集

常见部署问题合集