Каков наиболее эффективный способ хранения аналитических маяков? - PullRequest
3 голосов
/ 12 декабря 2010

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

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

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

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

1 Ответ

1 голос
/ 12 декабря 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...