修改配置deploy.json滚动更新

  • 除了公用配置里的开关类字段,凡是修改deploy.json的,都执行deploy
  • 滚动更新会新启动一批服务器接入master组网,待新服务器就绪后再通知master切换流量到新服务器上,并对旧的那批进行优雅停机
  • 滚动更新为不停服更新,对用户几乎无感知,旧服务器上的人仍可以继续游玩,打完一局回到大厅时就自然地切到了新服上,旧服当没人后会自动关闭

game滚动更新引擎

  • 修改game的app_version,执行deploy

lobby滚动更新引擎

  • 修改lobby的app_version,执行deploy

proxy滚动更新引擎

  • 添加新的proxy,旧proxy不变,执行deploy

  • 按网络游戏上传指引修改proxy的IP和端口
  • 待一段时间后,旧proxy监控人数为0后,移除旧proxy,执行deploy

使用备机滚动更新

  • 如果要更新mods,先执行push_mods
  • 如果要更新引擎,修改app_version
  • 修改game的ip为备机,执行deploy

deploy.json配置不变指定update_mod_type来滚动更新

game/lobby滚动更新mods

  • 执行push_mods推送最新mods
  • 设置machine_pattern为要更新的机器,默认为全部机器
  • 设置update_mod_type为要更新的类型type 更新类型为fps的服务器

  • 执行update_mod

一个新的fps服务器启动了,旧的fps服务器将优雅停机 master不会再分配新用户到旧fps服务器上,而是分配给新的fps服务器

生存服更新的限制

由于生存服地图是存到服务器磁盘目录,没有存到数据库,所以会有以下限制

  • 不能滚动更新

  • 不能执行clear(该指令会清除地图存储文件)

  • 地图数据只会保存在玩家所在的服务器,需保证让玩家每次进入时都在原始服务器(比如有建造服1、建造服2,玩家在建造服1搭建了房子,玩家进入建造服2的话是看不到房子的)

  • 更新生存服脚本方式:

    • 使用add_mod上传文件到生存服
    • 使用restart重启更新