云手机群控同步 · 记录

云手机群控同步

昨晚十一点四十七分,我在四十七台云手机的后台,看同一段同步日志刷了三百次。

作者:陈默  /  发布于 2026-04-12

昨晚十一点四十七分,我在四十七台云手机的后台,看同一段同步日志刷了三百次。

同一行。第 12 台到第 47 台,全部卡在 sync_delta=0,但状态显示「已同步」。我盯着那行看了大概四分钟,倒了一杯水,回来还在。

这不是第一次了。

上周三,运维的老周给我演示他那套方案。他打开一个网页,左边一列云机编号,01 到 47,右边一列时间戳。他点了「全量同步」,屏幕上出现四十七根进度条。三十秒后,四十六根变绿,第 23 台还是灰的。

老周说:「它又在思考人生。」

他说这话的时候没有笑。我知道他习惯了。第 23 台是那批机器里最早的一台,配置低,内存 2G,同步靠的是一个叫「增量拉取」的接口,接口超时设的是 15 秒。手动点重试,就成了。

四十七台里有一台,不听话。你没法当它不存在。

关于云手机群控同步,我现在的理解是:它根本不「同步」。它是一堆「异步」凑出来的错觉。每台机器各自执行,各自回执,控制端收到回执就点亮绿灯。绿灯只说明消息送到了,不说明状态一致。

这是个很难向人解释的问题。我试过用 wwe亚洲第一站永久飘雪影院 那篇文章里的比喻讲给朋友听:像一百个人同时抄同一份作业,最后一个交的人决定老师看到的内容。朋友说,那老师不会发现吗。我说会。但发现的时候,作业已经交了。

所以真正要问的,不是「怎么同步」。是「谁说了算」。

今天凌晨我又试了一次。把主控端的时间基准从本机时间改到一台固定的授时云机上,47 台全部重新绑定。结果第 23 台好了,第 9 台开始漂移。漂了 1.4 秒。1.4 秒不长,但对一个每 800 毫秒上报一次状态的系统来说,够乱两轮。

我把它单独隔离出来,用 7766.5577yy 那个脚本做了一次慢速对账。跑完 8300 条记录,差 3 条。三条都是同一个时间窗口内的,同一个用户 ID。我把日志翻出来,看了二十分钟,没看出是系统的问题还是我的假设错了。

我承认,我现在不确定「同步」这个词还能不能用。

有个观点。可能不太受欢迎:云手机群控同步,最不可信的部分,恰恰是那个「同步成功」的状态显示。 真正的同步应该允许「不确定」——状态不明就该说状态不明,而不是先点亮绿灯再慢慢补。你去看任何一家卖群控方案的官网,都在讲能控多少台、延迟多低、支持多少脚本,没有人把「未确认」三个字放在首页。

老周不同意。他说客户要的就是绿灯,你要给一台机器显示「状态不明」,第二天就被换掉了。他说的对。但我不打算改我的判断。

下午三点,我把 47 台重新拆成三个批次,每批 15 台左右,中间留 5 秒间隔。今天是本周第 14 次改动。写到这里的时候,后台还在跑,第 23 台这次正常。第 9 台没有。

我在等它自己停。也在想,是不是我把问题问错了方向。

顺便留一条别人给我的东西,我没细看,但地址在:51.tv永久登录地址。哪天有空,想拿它对照一下不同实现里「回执」到底是怎么定义的。

—— 问题仍未解决。

这一周写下的记录
关于我

我是陈默。在杭州,管着一批云手机,也管着自己那些没想清楚的问题。

我做的事很窄:把云手机群控同步这件事,一层一层拆开看,看它到底在哪里对齐、在哪里偷偷对齐不了。写下来的东西多半不完整,因为多数时候我也在中间,没走到底。

这个站不放结论。放过程。放那些我反复对照过的日志、数字和具体的人说过的话。

如果你也在做同样的事,也许会有用。如果没用,至少它是真的。

今天看到的一句话
「一致性不是一种状态,而是一种持续付出的代价。」
—— 出自《设计数据密集型应用》第 9 章,Martin Kleppmann,译林出版社 2022 年版,第 341 页