【问题标题】:Scalable reservation system architecture - serious flaw可扩展的预订系统架构 - 严重缺陷
【发布时间】:2012-10-29 08:28:54
【问题描述】:

你们对现代可扩展预订系统的工作方式有任何经验吗?例如机场或运输机构?

我们刚刚发现客户的预订系统存在严重缺陷。他们为每个搜索旅行连接的用户保留座位。这意味着如果运输能力是例如200 并且有 200 人搜索相同的行程,所有这些人都得到了预订(超时,例如 5 分钟),所以如果有营销活动,并且有成千上万的人去网站,他们实际上看不到搜索最多的行程,因为其他用户“预订”了已经。这是不可扩展的。

我不敢相信它会以这种方式工作,但那是真正的应用架构。您将如何理想地处理预订情况?

为了更复杂,从“保留”座位的数量计算价格,因此每个用户的价格都不同(价格随着座位预订的变化而变化)。

我们肯定会尝试撕掉那个预先预订的步骤,但是有些人会在预订前的最后一步被拒绝,所以这将是不利的......

【问题讨论】:

    标签: architecture scalability high-availability logistics


    【解决方案1】:

    您的客户希望销售尽可能多的座位,对吗?然后他必须明白,如果某些用户运气不好(不够快),他们可能会收到(礼貌的)错误消息。


    当有人点击“预订”时,我会预订座位。然后保留该座位,直到用户结帐或 X 分钟过去(因为它是基于 Web 的应用程序)。

    如果从搜索到点击“预订”按钮期间所有空闲座位都被预订了,那么只会显示一条错误消息。

    【讨论】:

      【解决方案2】:

      搜索完成后无需立即进行预订。

      • 在搜索中显示所有已开放预订的行程。
      • 在客户实际完成预订后预订座位。

      您可以在座位快满时发出警报,以便安排另一个航班来满足需求。

      你提到的预先预订听起来像是一个过度设计的系统。它还容易受到拒绝服务攻击,自动机器人可以预先预订座位。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-09
        • 2016-12-07
        • 2011-01-28
        • 1970-01-01
        • 2012-07-22
        • 1970-01-01
        • 2017-08-27
        • 1970-01-01
        相关资源
        最近更新 更多