【问题标题】:What is the most efficient way to store analytics beacons?存储分析信标的最有效方法是什么?
【发布时间】:2011-05-24 02:18:41
【问题描述】:

类似于谷歌分析如何从跟踪事件的 javascript 发送信标,收集信标数据并在最快的时间内返回给客户端的最有效方法是什么?

例如,如果我有一个服务器到服务器的信标调用,我想在客户端服务器上尽可能快地进行该调用。

PHP 到一个平面文件? PHP到本地队列? 记录到队列并始终与远程队列保持连接的Java服务器? 自定义 C++ 服务器?

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

【问题讨论】:

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


    【解决方案1】:

    这有两个方面。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-24
      • 1970-01-01
      • 1970-01-01
      • 2017-01-12
      • 2011-06-05
      • 1970-01-01
      • 2020-09-15
      相关资源
      最近更新 更多