修改配置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重启更新