我正计划为我的网站创建一个实时分析页面--有点像Google,但会有真实的实时数据,这将随着新用户在我的网站上加载页面等而发生变化。
主站点是/将使用Asp.Net/C#作为带有MS数据库的后端编写的,前端将支持JavaScript (JQuery)、CSS3、HTML5 (如果需要的话)。
我想知道我可以使用哪些方法来进行实时分析;如何将数据放到分析的页面上,我可以使用什么高效地绘制,并使用快速输入/输出存储数据。
我想到的第一件事就是使用Node.js --我能用它来实现一个实时分析页面吗?是个好主意吗?还有更好的选择吗?这个有什么缺点吗?
我是否需要运行在服务器上的C#应用程序来使用Node.js向网站发送/接收所有数据?
使用MS 数据库是否足够快?我是否需要实时存储所有数据,或者是否可以在每x秒/分钟的时间内将其分块存储?(哪个更有效?)
这说明了我对这件事的最初想法-

编辑:
我将在多个站点上使用这个系统,我一次可以获得10次点击量,达到100万次(极不可能,但仍有可能)。我想要能够扩大这个系统,并使它适应它所处的环境。
发布于 2012-07-09 13:55:34
这真的取决于实时数据需要如何“实时”。例如,我最近做了这个:
http://www.reed.co.uk/labs/realtime/
这显示了工作申请进入系统。显然,繁忙期间发生的事情太多了,无法实时查询主数据库--因此,我们所做的是查询一个滑动的“窗口”并将其缓存在服务器上--这是最后5分钟事件中的一部分。
然后,我们向用户回放,因为它正在发生“现在”。作为SLA (用户并不真正关心的)的一部分,有一点延迟可以使整个系统的可伸缩性大大提高。
编辑-进一步解释
数据只是从一个基本的存储过程调用中检索出来的--很自然,像reed这样的大系统有数百个事务/秒,所以我们不能继续访问主集群,对每个用户都是如此。
我们所做的就是确保我们有一个当前窗口,在本例中是缓存在服务器上的最后5分钟的数据。当一个客户端来到这个站点时,我们会得到最后5分钟的数据,然后就像现在正在发生的那样回放它--最终用户并不明智--但它意味着所有客户端都在读取缓存。一旦缓存使用了5分钟,我们就会使它失效,然后重新启动。这意味着每隔5分钟就有1DB命中,从而大大提高了系统的可伸缩性(并不是说它真的需要--因为它只是为了好玩,真的)
发布于 2012-07-09 13:55:03
所以你要知道,谷歌分析公司已经提供了实时用户跟踪服务。当在Google分析网站的仪表板内时,单击顶部栏上的主页按钮,然后单击左边栏上的实时按钮。考虑到该服务的设计工作和质量,这似乎是一个更好的选择,然后尝试重新创建它的服务。如果您确实选择继续创建自己的功能,那么至少可以使用它们的服务作为所需功能的基准。
使用API,就像googles图表API一样,https://developers.google.com/chart/将是显示存储数据输出的好方法,减少了开发时间。如果你提供更多的信息,你的热情,以及服务器的规模,这个软件将托管,那么它将更容易给你的速度问题的答案。
https://stackoverflow.com/questions/11396036
复制相似问题