2010-12-11 4 views
3

Как и Google Analytics отправляет маяки из javascript, которые отслеживают события, каковы наиболее эффективные способы сбора данных маяков и возврата к клиенту в самое быстрое время?Каков наиболее эффективный способ хранения маяков аналитики?

Например, если у меня есть звонок с сервера на сервер, я хочу сделать этот вызов как можно быстрее на сервере клиентов.

PHP для плоских файлов? PHP для локальной очереди? Сервер Java, который регистрируется в очереди и поддерживает соединение удаленной очереди все время? пользовательский сервер C++?

Это будет 1000 запросов в секунду.

ответ

1

Есть два аспекта этого.

1) звонок маяка клиента должен быть выполнен как можно быстрее. Это означает, что входящий HTTP-запрос должен ответить 200 OK и выйти как можно скорее, поэтому он, вероятно, не должен сам записывать фактические данные. Он должен передать это другому процессу в фоновом режиме, либо путем выполнения фоновой оболочки, либо используя механизм очереди/работы, такой как Gearman.

2) Само записывание данных, если сделано в фоновом потоке от внимания клиента, имеет немного больше роскоши времени. 1000 записей в секунду должны быть хороши для современной аппаратно настроенной базы данных с блокировкой строк, которая не является слишком высокой в ​​одно и то же мгновение. Возможно, однако, это может быть хорошим сценарием использования для key-value store для немедленного хранения данных. Затем отдельный процесс анализа/отчетности может запрашивать хранилище значений ключа в автономном режиме для всех сохраненных данных, обрабатывать его и, в конечном итоге, копировать в базу данных.

Смежные вопросы