![]() |
1
3
不,没有免费午餐,没有银弹。一切都取决于精心设计。你已经介绍了很多常用的技术,它巧妙地应用了它们,这需要注意和避免假设。 我查询了你的两个陈述: 您意味着控制推送通知是非常困难的。我本以为在很多情况下,你会有一个主计算引擎,它可以获取数据并进行计算。引擎一定要在某一点停止,此时它可以发送“新数据就绪”事件,该事件可以包含有关更改内容的更细粒度的信息。 你说打4个层间电话太贵了。它的基础是什么?与什么相比?如果你关心的是多重因素(10个D实例)调用(5个C实例)调用(2个B实例)调用(1个A实例),所以A被100个调用击中,那么我们肯定会优化?每个级别都可以说“如果我现在正在打电话或者最近听到了答案,就不需要再打电话了”。 当我们考虑层的伸缩性好处时,一些便宜的查询可能不会太多。 |
![]() |
2
0
通过数据管理器推送,并压缩在不到n纳秒内发生的更改。 数据管理器实现发布订阅。 这意味着数据生产者只依赖于数据管理器,而数据消费者只获取数据。 (消费者有一个依赖逆转。) 这使得所有数据流管道在粘合代码中都显式地显示出来。 订阅可以提前设置,因此conusmers不需要知道如何工作。 数据管理器可以使用它自己的线程来调用订阅者通知,这将生产者与消费者巧妙地分离开来。 您可以轻松压缩更改,因为数据管理器只使用1个线程来通知,它可以通过计时器“通知”,当它唤醒时,它只看到最新的状态。 |