为什么选择云同步
跨服同步插件很多,真正的差别在于出事的时候:切服太快、数据库卡一下、分流突然崩溃、停服更新时玩家还在线。 下面这张表列出常见做法在这些情况下会怎样,以及云同步怎么处理。
一张表看差异
| 情况 | 常见做法 | 云同步 |
|---|---|---|
| 切服时旧分流还没存完 | 等固定几秒再读取,网络或数据库一慢就读到旧存档(回档) | 新分流拿不到锁就不读,冻结玩家等旧分流存完归还(默认最多 5 秒),读到的一定是最新版本 |
| 两个分流同时写同一个人 | 后写的覆盖先写的,物品可能复制或消失 | 写入条件是「持有者 + 版本号」都对,不符合就写不进去,冲突的一方直接锁定该玩家 |
| 存档数据损坏 | 直接载入 | 每份快照带 SHA-256,校验不过就拒绝载入并踢出,不会把坏数据套到玩家身上 |
| 分流崩溃 / 被强制关闭 | 玩家资料一直被标记为「使用中」,要管理员手动解锁,或者干脆不管锁(有复制风险) | 锁只在持有分流还有心跳时有效;崩溃的分流停止心跳后,玩家到别的分流就能载入最后一份完整存档 |
| 数据库卡顿 / 断线 | 玩家继续游玩,之后存档失败,搬过的东西回档或复制 | 续约失败立刻冻结(不能搬、丢、交易、放方块),恢复后自动解冻;确定不安全才踢出 |
| 背包塞满大量 NBT 物品 | 存档超时、写入失败,甚至卡住主线程 | 压缩后超过上限(默认 4 MB)就拒绝写入并取消切服,提示玩家先清潜影盒;所有数据库操作都在异步线程 |
| 插件启动失败(配置错、连不上库) | 插件停用,玩家照样进服,用本地旧资料游玩,之后全乱 | 挡下所有登录并提示原因,修好重启才放人 |
| 停服更新 | 直接 stop,最后几秒的操作看运气 | /maintenance run:先存档、冻结,送大厅或安全踢出,确认清空才关服;有人存档失败就取消关服 |
| 需要的组件 | 常要求 Redis 或额外的同步中继 | 只要 MySQL;Redis 可选(加速转服),故障时自动回退 |
| 语言 | 英文 | 指令、提示、配置注释全中文 |
和 HuskSync 怎么选
HuskSync 是很成熟的开源同步插件,两者的取舍很清楚:
- HuskSync 同步的数据种类更多:成就进度、统计、位置、持久化数据(PDC)等。如果这些对你很重要,请选择 HuskSync。
- HuskSync 需要 Redis;云同步只要 MySQL 就能完整运作,Redis 只是可选的加速。
- 云同步专注在「绝不复制、绝不回档」的流程:租约锁、心跳接管、卡顿冻结、启动失败挡登录,以及维护模式 / 安全排空重启,全部内置。
- 云同步附赠 Bungee 加强模块:先存档再转服,并按 TPS、人数、内存挑选最健康的分流。
适合谁
- 背包里有贵重物品的 RPG / 生存分流服:复制一件神器就能毁掉经济,云同步把「不复制」放在 第一位。
- 分流多、常重启的服务器:崩溃自动接管、维护模式安全排空,不用每次手动解锁玩家。
- 只有 MySQL、不想再维护 Redis 的小团队。
- 想要中文配置与中文支持的服主。
目前不包含的功能
云同步专注于「背包与角色状态」的安全同步,以下内容目前不同步:
- 成就进度、统计数据、玩家位置
- 其他插件存在玩家身上的持久化数据(PDC)
- 跨服聊天、跨服传送(请搭配专门的插件)