博客›渠道连接

超售到底是怎么发生的——为什么更快的 Airbnb 日历同步解决不了问题

两个渠道之间的缺口不是靠速度填补的。真正填补它的,是让所有渠道读取同一个库存池,而不是各自持有互相信任的多份副本。

Prime Host Partners 团队2026年8月9日 · 阅读需 7 分钟

几乎没有一次超售是因为系统太慢造成的。真正的原因是同一间房在多个地方被同时记录,而每个地方都只相信自己手上的那份数据。只要真相存在多个版本,两个版本之间迟早会出现矛盾的那一刻——速度只能缩短这个瞬间,永远无法让它消失。

相关完整指南
超售是如何发生的

想象周六晚上最后一间房,同时挂在两个渠道上。两位客人几乎同时下单。每个渠道各自检查自己那份库存数据,看到房间还空着,于是都接受了预订。等到关房的指令传到第二个渠道时,第二笔预订已经成立了。

没有人犯错。两个渠道都完全按照设计运作。问题出在架构上:两个系统被允许同时认为自己拥有同一间房。

为什么 Airbnb 和 Booking.com 之间的 iCal 同步无法填补这个缺口

用 iCal 串联日历通常是大多数人迈出的第一步,这也合情合理。但 iCal 是一种“拉取式”格式:对方会按照自己的节奏去抓取你的日历文件,通常间隔是几十分钟,平台繁忙时甚至更久。它从来不是即时的,也从来没有任何保证。

iCal 传不了的内容
1价格iCal 只传递被封锁的日期。你的价格仍然需要在每个渠道分别维护,这正是价格出现偏差的起点。
2限制条件最短入住天数、禁止入住、禁止退房等限制都不会同步。同一个日期可能在一个渠道显示需要连住两晚,在另一个渠道却完全没有限制。
3可靠的时效你没法让对方平台抓取得更快。预订集中出现的那几个晚上,恰恰就是抓取间隔形成的那个窗口,第二笔预订正好落在里面。
为什么更快的推送仍然不够

从 iCal 换成真正的实时连接,能把这个窗口从几分钟大幅缩短到几秒钟。这确实是实实在在的进步,也能消除大部分事故。但它消除不了这个问题的根源,因为推送式的设计本质上仍然意味着存在多份副本,只是事后再去协调。

还有一种更隐蔽的失败,是速度解决不了的。有些渠道会对库存做自己的自动调整——比如取消预订到达时自动把房间加回去。如果你的系统在渠道正在应用自己的增减值的同一时刻,写入一个绝对数值,两个操作的先后顺序可能颠倒,结果有时会比真实情况更高。

速度能减少两份副本产生矛盾的频率。只有单一真相来源,才能彻底消除它们产生矛盾的可能性。
真正能填补这个缺口的方法

结构性的解决办法是停止保留多份副本。库存数量由单一的真实房间池计算得出,每个渠道只是这个池子的一个视图,而不是其中一部分的所有者。无论预订从哪里进来,这个池子都会相应减少,每个渠道都会被修正到与新数量一致。

唯一决定库存数量的地方,是那一个真实房间池——渠道从来不单独持有自己的额度
无论来自哪个渠道,包括现场入住,每一笔新预订都会立刻减少这个池子
后台会定期用真实预订重新推算正确数量,并与每个渠道当前显示的数字进行比对
一旦核对发现某个渠道卖出的数量超过真实数量,会立即修正,而不是等到下一次定期运行
当信息不完整时,系统会报告“无法核实”,而不是假设这个渠道没问题

最后一点比看起来更重要。一个读不到渠道当前真实状态的系统,只有两个选择:猜,或者承认读不到。往“大概还有空房”的方向猜测,正是房间被卖两次的典型原因。拒绝瞎猜,才是一个“通常是对的”系统和一个“客满时真正靠得住”系统之间的差别。

想亲自看看这一切是如何真实运作的?
以只读模式体验真实系统,无需填写任何信息。

继续阅读

© 2026 Prime Host Partners
隐私政策服务条款