#Meteor为增强扩展性弃用轮询和差异机制
一直活跃在Meteor社区的Tom Coleman最近发表了一篇文章:扩展Meteor:实时程序的挑战,介绍了Meteor为增强扩展性而在实时处理机制上作出的调整。自2012年Meteor问世以来,人们就在询问它的扩展性如何。虽然Meteor的实时处理特性很吸引人,但人们也很关心它的处理能力,关心它能否驾驭得了更多资源。
Tom Coleman在他的这篇文章中介绍了传统的、单页的和实时的三种不同的web程序模型,并指出三种模型实现扩展性时所面临的问题也是不同的;阐述了轮询和差异机制的处理特点及不足;接着又讲解了Meteor采用的新机制:Oplog tailing,以及这种机制的源起和优势;最后又给出了一些增强程序扩展性的策略性建议。同时他也提醒说:“... Meteor的扩展性领域仍处于快速变化的状态下,所以在这个主题上很难做到盖棺定论 ”。
最后,在一个实时的单页程序中(比如Meteor程序),客户端不仅能请求更多数据,服务器还可以把数据推送给客户端 (比如当数据库中的数据发生变化时)。
这引发了一些有趣的问题:服务器怎么知道数据什么时候发生了变化?还有,服务器怎么知道该把那些变化发送给哪个用户?这些问题是掌握实时程序性能特点的关键。