首先你需要定义什么是INSTANT对你意味着什么。对于某些人来说,这意味着在90%的时间内。对于其他人,他们会很乐意平均有10-20秒的差距。更重要的是,你需要了解你的需求的含义;换句话说,您的企业几乎没有等待时间是值得的吗?您的要求越宽松,建设越便宜,维护越容易。
您应该知道,就计算和锁定资源而言,近距离通知可能非常昂贵。刷新越多,需要的网页往返次数越多(即使在这种情况下它们最小)。让数据新鲜到数据库对数据库来说也可能是昂贵的,因为您可能会创建大量的请求,这反过来会影响其他性能良好的请求。例如,如果您的网站以1000个登录用户运行,则每秒可能需要1000个数据库请求(假设这是您的INSTANT定义),如果设计不正确,则可能会在SQL Azure中创建限制条件。
我以前用过类似的需求(虽然精度不是第二;更像是分钟)的一种方法是从本地网站缓存中的内存表中加载所有记录。后台线程锁定并刷新一次记录中的所有记录的内存数据。这使我们能够将数据库流量减少一千倍,因为屏幕上显示的数据来自本地缓存,并且需要单个数据库连接来刷新缓存(每个Web服务器)。因为我们有多个Web服务器,并且我们需要所有Web服务器上的数据在彼此之间完全相同,所以我们同步所有Web服务器的请求以每分钟刷新一次缓存。把它们放在一起需要花费很多时间,但它使我们能够构建一个高度可扩展的系统。
上述技术可能无法满足您的要求,但我的观点是对新鲜数据的需求越高,您需要进行的设计/工程设计工作就越多,以确保您的系统不会受到新鲜度要求的太大影响。
希望这会有所帮助。
非常感谢您分享这些知识。我知道这将是相当昂贵的;但让我们说,这个商业案例更像是一种低估态度。想象一下,这些必须是必须的。立即我的意思是,一旦更改被插入到数据库中,相关用户会立即得到通知。我听说过轮询和推送sql缓存依赖关系,(参见第2部分) – test 2012-03-27 22:26:26
,但是从我们搜索的内容中获得;这些不能在SQL Azure数据库上实现;因此我们正在寻找另一种机制;相同类型的机制,例如移动应用程序的推送通知,一旦插入通知,它会立即发送到手机。现在我想将其应用于网络。感谢您的时间和耐心! – test 2012-03-27 22:26:48