设计 "物品库存预警 "架构

问题描述 投票:1回答:1

我正在努力构建一个销售应用程序,买家可以在上面注册商品补货提醒。这对于小型应用来说可能很简单,用户很少,商品也不多,但是我们假设以下情况。

  1. 应用程序有100多万用户(亚马逊,eBay,AliExpress等)。

  2. 所有的用户都想买香蕉,但它的缺货。

  3. 每个用户创建一个补货提醒

  4. 香蕉补给

对于每一件商品的补货,都必须对补货提醒列表进行迭代,并进行相应的调度(邮件、推送等)。

这种系统如何设计?用哪种数据库、工具等?

architecture queue alert scaling
1个回答
2
投票

用户通知系统通常是基于队列的。究竟是什么数据库支持库存管理系统并不那么重要。

你需要两个队列,流程是这样的。

  1. 库存更新从 0>0 (或不管是什么补货)将物品添加到补货警报队列。

  2. DB worker从补货提醒队列中消耗商品,应用业务逻辑,并将用户推送到通知队列中。

  3. Notification worker从通知队列中消耗用户,并渲染邮件、推送、短信等。

这种设计的优点。

  • 推送到补货通知队列可以通过多种方式实现。一个SQL DB触发器或存储程序,加载过程中的逻辑,甚至是一个扫描DB的chron作业。

  • 一个单独的补货警报工可以最大限度地减少库存DB加载过程所要做的额外工作量。最多,它必须将项目添加到队列中。

  • 将补货警报工作者与通知工作者分离,隔离了定义补货警报的业务逻辑,允许与现有的通知队列集成。

这种设计的缺点。

  • 需要两个队列和两个工作者。

一些需要考虑的事情

  • 通知延迟有多重要?人们是否在竞价?他们是否需要知道 这会儿 它的库存,或将知道。如今 足够吗?
  • 通知是否应该批量化?一个用户要设置多少个补货提醒?是否应该有人在同一天收到两封不同商品的邮件,否则会很烦人?
© www.soinside.com 2019 - 2024. All rights reserved.