Отслеживание показов / посещений на веб-странице - PullRequest
2 голосов
/ 09 июня 2010

У меня есть сайт с несколькими страницами для каждой компании, и я хочу показать, как работает их страница с точки зрения количества людей, заходящих в этот профиль.

Мы уже убедились, что боты исключены.

В настоящее время мы записываем каждый попадание в БД с помощью вставки (для первого запроса в день в профиль) или обновления (для следующих запросов в день в профиль).Но, учитывая, что количество запросов увеличилось с нескольких тысяч в день до десятков тысяч в день, эти вставки / обновления приводят к серьезным проблемам с производительностью.

При отсутствии решения JS, какой будет лучший способ справиться с этим?

Я использую Ruby on Rails, MySQL, Memcache, Apache, HaProxy для запуска общего шоу.

Любая помощь будет высоко ценится.

Thx

Ответы [ 2 ]

2 голосов
/ 09 июня 2010

http://www.scribd.com/doc/49575/Scaling-Rails-Presentation-From-Scribd-Launch вы должны начать читать со слайда 17. Я думаю, что производительность не является проблемой, если возможно создать подобное решение для такого большого веб-сайта, как scribd.

1 голос
/ 18 апреля 2012

Вот 4 способа решения этой проблемы, от простых оценок до сложных и точных:

  1. Отслеживание только процента (10% или 1%) пользователей, а затем умножение для получения оценкиcount.
  2. После первых 50 подсчетов для данной страницы, начните обновлять счет 1/13 от времени счетом 13. Это помогает, если на нескольких страницах выполняется много подсчетов, при этом сохраняются точные подсчеты.(используйте 13, так как трудно заметить, что incr не равен 1).
  3. Сохраните точные значения в слое кэша, таком как memcache или память локального сервера, и сохраните их все на диск, когда они достигли 10 значений или былив кеш на определенное количество времени.
  4. Создайте отдельный слой подсчета, который 1) всегда имеет текущий счет в памяти, 2) сохраняет счет в своих собственных таблицах / базе данных, 3) имеет вызовы, которые корректируют оба места
...