Java EE записывает впечатления от продукта - PullRequest
0 голосов
/ 04 марта 2011

Часть моего проекта требует, чтобы мы вели статистику продуктов наших клиентов. Более или менее мы хотим показать нашим клиентам, как часто их продукты просматривались на сайте

Поэтому мы хотим создать некоторую форму счетчика показов продукта. Я имею в виду не только счетчик, когда мы попадаем на страницу конкретного продукта, но когда продукт появляется в результатах поиска и в наших списках каталогов продуктов.

Я думал, что после вызова БД я извлеку конкретные идентификаторы продуктов и передал их службе, которая затем будет вставлена ​​в таблицы статистики. Или другой использует какую-то форму буфера записи одиночного буфера, который пишет в БД после того, как достигнет определенного размера?

Кто-нибудь когда-нибудь сталкивался с этим в своих проектах и ​​есть какие-то идеи, которыми он хотел бы поделиться?

И / или кто-нибудь знает какие-либо фреймворки или инструменты, которые могли бы помочь этому развитию?

Любой вклад будет очень признателен.

1 Ответ

0 голосов
/ 06 марта 2011

Пока у вас нет проблем с производительностью, не перегружайте свой дизайн. С другой стороны, в зависимости от размера сайта может показаться, что у вас будут проблемы с производительностью из-за огромного количества записей.

Я думаю, что обновления в реальном времени окажут огромное влияние на производительность. Также очень вероятно, что вы будете обновлять одни и те же данные несколько раз за короткий промежуток времени. Другое дело, что, хотя это и интересно, хранение этой статистики не является критически важным и не должно влиять на нормальную работу системы. Заключительная мысль: несоответствия и незначительные неточности ИМХО приемлемы в этом случае использования.

Принимая все это во внимание, я бы временно удерживал статистику в памяти и периодически очищал ее, как вы предлагали. Это дает дополнительное преимущество слияния событий для одного и того же продукта - если между двумя сброшенными продуктами какой-либо продукт был посещен 10 раз, вы будете выполнять только одно обновление, а не 10.

Технически, вы можете использовать правильно синхронизированный синглтон с фоновым потоком (много ручной работы) или некоторый интеллектуальный кэш с технологией обратной записи.

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