外观
⚡ 跨服预加载
预加载是随 InvSync 主插件提供的代理增强,拥有主插件即可使用,无需额外付费。基础同步正常后再启用。
解决什么问题
普通路径在玩家进入目标服后抢锁、读数据并应用。预加载利用代理切服事件,提前协调源服保存,通知目标服准备数据,并将支持的原版字段写入离线玩家存档。
这样可减少进服后的数据库等待与集中应用开销,但不是网络传送零延迟,也不保证所有插件/模组字段提前应用。
组件与前提
| 位置 | 组件 / 要求 |
|---|---|
| 每台子服 | 同版本 InvSync 主插件,正常共享 Redis 和持久化库 |
| Velocity 代理 | 对应 InvSyncVelocity 组件,Java 17+,随主插件一起提供 |
| BungeeCord 代理 | 对应 InvSyncBungee 组件,Java 17+,随主插件一起提供 |
| 子服 Java | 按子服本身要求,不因代理构建目标而统一变成 Java 17;具体预写环境仍需验证 |
text
代理切服事件
→ 源服预保存与交接确认
→ 目标服抢锁、预读、可用时离线写
→ 玩家登录等待已认领任务
→ 应用剩余扩展字段通信选择
| 项目 | Redis(推荐) | WS(兼容) |
|---|---|---|
| 网络 | 代理能访问同一个 Redis | 子服能访问代理 WS 端口 |
| 新增监听端口 | 不需要 | 需要配置代理监听与防火墙 |
| 多代理 | 支持每个代理参与同一批子服 | 每台子服只连一个代理,其余代理不能获得相同预加载体验 |
| 基础同步 | 仍依赖 Redis 与持久化库 | 仍依赖 Redis 与持久化库,WS 不替代它们 |
失败时会怎样
预加载未命中、目标离线写失败或新玩家无档案时,可转回普通同步。源服恢复根据交接结果与兼容兜底处理,不能统一写成“所有失败五秒解冻”。基础数据服务异常不能靠预加载兜底消除。
默认关闭;开启前在测试账号上验证普通进服、切服、资源包等待、连接失败和断网场景。见预加载排查。