Files
netease-modsdk-wiki/docs/mcguide/27-手机网络游戏/课程2:Apollo基础知识/第4节:部署.md
boybook 760c2dd9ad 2.6
2025-12-01 20:59:16 +08:00

116 lines
5.1 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
front: https://mc.res.netease.com/pc/zt/20201109161633/mc-dev/assets/img/bushujieshao.32a5d8c3.png
hard: 入门
time: 15分钟
---
# 部署
任何针对服务器配置的修改或者服务器mod的修改仅保存在本地。若需要在服务器中生效需要进行部署操作。开发、审核、上线阶段都需要部署操作。
MCStudio部署网络服有多种方式包含智能部署重新部署热更三种。另外开发阶段的部署跟审核、上线阶段的部署又有设置上的区别。
简单起见,这里先介绍最常用的一种情况:开发阶段执行智能部署。
在开发阶段任何服务器配置或者服务器mod的修改之后可直接点击部署按钮将修改同步到开发机中。
![](./images/bushujieshao.png)
以下内容涉及较多进阶知识,建议在入门阶段暂时跳过。
------
## 智能部署
网络服开发页面的部署按钮默认采取智能部署方式,总是尝试采取最快最低成本的更新方式,使修改的代码生效。
通常在开发阶段,总是使用智能部署就可以了。
常用的配置包括修改服务器数量修改Apollo大小版本新增一种类型的大厅服/游戏服等。
Apollo网络服中的各种配置可以一次性修改部署会自动根据配置的变化选择最优的部署方式。
如果网络服配置修改了**全局设置**,如控制服、功能服、数据库或更多配置,**智能部署**会触发**重新部署**,重新部署前会关闭当前的所有服务器并清空该网络服的文件,再进行部署。
通常情况下,只修改大厅服/游戏服/代理服,则不会触发重新部署,而是采取**滚动更新**方式应用到服务器上。
**滚动更新**使用最新Mod代码启动一批新服来接管需要更新的旧服务器旧服务器将采取**优雅停机**的方式退出
![](./images/gundonggengxin.png)
**滚动更新注意事项**假如配置中选择了【保存地图】那么需要两次滚动更新才能安全更新对应服务器上的Mod第一次更新选择删除服务器让目标服务器正常关闭并上传地图文件第二次更新新建服务器使用相同的配置参数并且选择使用【服务器最新地图】。
**优雅停机**:正在服务器游玩的玩家不受影响,但不会再分配新玩家进入,当所有玩家退出后,旧服自然停机
**样例**修改Mod目录内的游戏服gameA的代码并保存点击网络服开发的部署按钮则MCStudio会滚动更新所有gameA游戏服并移除本地电脑中的gameA的客户端脚本缓存
**注意**如果开发者正在gameA游戏服中则开发者必须退出后重新登陆gameA游戏服方可验证新的代码
![](./images/bushujieshao.png)
## 重新部署
在网络服开发分页,选中网络服的更多 => 重新部署可以显式指定MCStudio使用重新部署来应用修改。
重新部署会关闭当前的所有服务器并清空该网络服的文件包括日志再重新上传Mod进行部署。
![](./images/chongxinbushu.png)
## 热更
热更是指不停服更新服务器部分的代码,它的执行有以下前提:
- 修改的Mod内容**只包含运行在服务端部分**的代码,即**developer_mods**里的代码修改
- **只修改了函数内实现**
如果满足上述条件,则可以选中网络服的更多 => 热更来应用新的服务器代码
热更可以避免客户端被踢出,更新应用的速度也比滚动更新和重新部署更快速,在开发期提升调试的效率,在正式运营时也可以作为问题的修复手段
**样例**开发者在gameA游戏服验证Mod功能时发现异常通过修改游戏服gameA的developer_mods里的代码进行修复或增加日志用于排查问题保存后点击更多 => 热更则MCStudio会上传更新的代码到gameA游戏服并执行服务端代码热更操作开发者无需退出gameA即可继续验证内容
![](./images/hotfix.png)
## 开发阶段部署设置
- 开发阶段部署需要关闭验证、关闭崩溃自动拉起、关闭运营数据。
- 开发阶段部署需要开启打包代码、开启打印调试代码。
![1591081377849](./images/kaifabushu.png)
## 审核阶段部署设置
- 完成开发后可进行提审,以便申请正式物理机。您需要在发布界面的开发者平台上新建一个正式网络服项目。
- 新建好正式网络服项目并设置对应的游戏ID
- 审核阶段部署需要关闭验证、关闭崩溃自动拉起、关闭运营数据。
- 审核阶段部署需要开启打包代码、开启打印调试代码。
![1591081377849](./images/shenhebushu.png)
## 上线阶段部署设置
- 通过网络服的demo提审后会发放正式物理机您需要在发布界面的开发者平台上新建一个正式网络服项目。
- 新建好正式网络服项目并设置对应的游戏ID
- 上线部署需要关闭打印调试代码
- 上线部署都需要开启打包代码
- 上线部署需要开启认证和崩溃自动拉起,同时也需要开启监控运营数据
![1591081377849](./images/shangxianbushu.png)