【发布时间】:2021-01-08 14:31:15
【问题描述】:
这是一个关于设计的模糊问题。我有执行订单管理的微服务。该服务协调从已下达到已交付的每个订单。中间发生了很多事情。假设这些是订单的状态。
- 已放置
- 授权
- 已发货
- 已交付
我有一个弹性搜索仪表板,它可以可视化订单是否停留在特定状态并且没有前进 - 这是一种反应性方法。我想设计一个监控子系统,它实际上监控系统中的每个订单都在配置的 SLA 中移动到下一个状态。
一般的想法是标记每个下达的订单并让 cron 工作人员检查订单是否超过了为每个状态配置的 SLA。但我认为,如果我们在一天内下达 10 万份订单,这将无法很好地扩展,cron 并不是设计此类系统的更好方法。
那么人们是如何解决这些设计问题的呢?欢迎指出任何现有方法/任何想法。
【问题讨论】:
-
我认为即使每分钟(可能是几秒钟)扫描所有 100k 订单也不会有问题。
-
并且您只需要重新检查您知道已通过的那些(例如,那些明天到期的显然不会在今天过期)。这大约是每秒 2 个项目,几乎没有问题。
-
但是@appleapple 大部分操作都在 1 小时内到期。
-
那您要监控的东西少了?好:)
-
(因为大多数工作都会结束)
标签: javascript node.js design-patterns statistics monitoring