存储分析信标的最有效方法是什么?

时间:2010-12-11 22:57:09

标签: java php c++ architecture google-analytics

类似于Google Analytics从跟踪事件的javascript发送信标的方式,收集信标数据并在最快的时间内返回客户端的最有效方法是什么?

例如,如果我有服务器到服务器信标呼叫,我想在客户端服务器上尽可能快地进行该呼叫。

PHP到平面文件? PHP到本地队列? Java Server是否记录到队列并始终保持远程队列的连接? 自定义c ++服务器?

这将是每秒1000个请求的数量级。

1 个答案:

答案 0 :(得分:1)

这有两个方面。

1)客户端的信标呼叫应尽快完成。这意味着传入的HTTP请求应该响应200 OK并尽快退出,因此它可能不应该执行实际的数据写入。它应该通过后台shell执行或使用像Gearman这样的队列/作业机制将其交给后台的另一个进程。

2)数据写作本身,如果在远离客户注意的后台线程中完成,则会有更多时间奢侈。对于具有行锁定的现代硬件良好调整的数据库,每秒1000次写入应该没有问题,因为行锁定在同一时刻没有被过多地选中。但是,对于即时数据存储,这可能是key-value store的良好使用场景。然后,单独的分析/报告过程可以离线查询所有存储数据的键值存储,处理它,并最终将其复制到数据库中。