假设我们有一个响应式销售预测系统。
每次我们进行销售时,我们都会重新计算对未来销售的预测。如果有大量的销售触发我们的重新预测,这会很好地发挥作用。然而,如果销售额从每秒100次事件减少到0次,会发生什么呢?并在很长一段时间内保持0?我们在销售良好时发布的预测是最新的预测。
在这种情况下,您如何对表示“没有销售发生”的事件进行建模,而不会回退到某个每小时/每分钟/任意时间段的批处理事件,该事件显示“X时间已过”。
这是一个通用问题的具体案例-如何在基于事件的系统中模拟没有发生任何事情的时间流逝-而不使用滴答作响的时钟样式事件,这将唤醒每个人重新考虑他们的当前值,这是一个无法扩展的实现。
我考虑过的唯一有意义的选择是:每次我们进行销售时,我们都会在未来2小时内安排一个延迟事件,要求我们重新考虑对该销售的评估。在处理该延迟事件时,我们可以选择安排更多延迟事件以供重新考虑。
发布于 2015-09-30 10:41:18
考虑到这是一个非常通用的场景,您已经做了一个相当大的假设,即除非一次只完成一个销售,否则不可能提出一个以可伸缩的方式重新评估过去销售的设计。
在场景中有许多不同的规模相关数字,而您只看到一个计划的预测更新器可能试图同时处理大量过去的销售。
我能想到的其他可伸缩性问题:
如果你期望的是每秒100美元的销售额,
什么是好的设计将基于真实的场景。一般的情况考虑起来很有趣,但是好的设计需要根据他们的情况来塑造。
以下是我的一些想法,它们可能是合适的:
https://stackoverflow.com/questions/32826445
复制相似问题