首先,您需要定义 INSTANT 对您意味着什么。对某些人来说,这意味着 90% 的时间在一秒钟之内。对于其他人来说,他们会很高兴平均有 10-20 秒的差距。更重要的是,您需要了解需求的含义;换句话说,您的业务等待时间接近于零是否值得?您的要求越宽松,建造成本就越低,维护也就越容易。
您应该知道,就计算和锁定资源而言,具有近时间通知可能非常昂贵。您刷新的次数越多,需要的 Web 往返次数就越多(即使在这种情况下它们是最少的)。更新到秒的数据对数据库来说也是代价高昂的,因为您可能会创建大量请求,这反过来可能会影响其他性能良好的请求。例如,如果您的网站在 1000 个用户登录的情况下运行,您可能需要每秒 1000 个数据库请求(假设这是您对 INSTANT 的定义),如果设计不当,这反过来可能会在 SQL Azure 中产生限制条件。
我过去使用的一种类似要求的方法(尽管精度不是秒;更像是分钟)是从本地网站缓存中的内存表中加载所有记录。后台线程一次性锁定并刷新所有记录的内存数据。这使我们能够将数据库流量减少一千倍,因为屏幕上显示的数据来自本地缓存,并且需要单个数据库连接来刷新缓存(每个 Web 服务器)。因为我们有多个 Web 服务器,并且我们需要所有 Web 服务器上的数据在一秒钟内完全相同,所以我们同步所有 Web 服务器的请求以每分钟刷新一次缓存。将这些放在一起花费了很多小时,但它使我们能够构建一个高度可扩展的系统。
上述技术可能无法满足您的要求,但我的观点是,对新鲜数据的需求越高,您需要进行的设计/工程工作就越多,以确保您的系统不会受到新鲜度要求的太大影响。
希望这可以帮助。