Рекомендация по хранилищу данных для журнала активности пользователей веб-сайта

Я ищу несколько рекомендаций по хорошему хранилищу данных для фидов активности. Цель состоит в том, чтобы иметь журнал каналов типа Twitter/Facebook, состоящий из различных действий, которые пользователи могут выполнять на нашем веб-сайте. «Стена» или «лента» будет обновляться через AJAX, показывая, что в данный момент делают пользователи веб-сайта. В него будут писать часто, а затем самые последние будут отображаться на сайте. (например, Джон Смит рекомендовал статью Джейн Смит 2 секунды назад)

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

Любые рекомендации будут очень признательны!


person Chason Arthur    schedule 15.02.2012    source источник


Ответы (2)


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

Я бы проголосовал за использование http://redis.io/ или http://www.mongodb.org/ в качестве альтернативы MySQL для краткосрочных, почти живых каналов активности на сайте. И задание cron для сброса истории действий в MySQL для ведения учета.

Посмотрите на tumblr или twitter может подтолкнуть вас тоже в правильном направлении.

person Dmitry Sadakov    schedule 19.02.2012
comment
Спасибо за ваше время и помощь! Я немедленно рассмотрю ваши предложения. - person Chason Arthur; 20.02.2012

Вы должны использовать подход микросервисов, чтобы разделить хранилище данных, в котором хранятся действия пользователей, и хранилище, в котором хранятся фактические данные. Pub/Sub — правильный подход к обработке большого потока запросов пользователей. действия. Используйте облачный сервис Kafka или Google Pub/Sub для масштабируемого конвейера данных. Они могут выдержать нагрузку благодаря своей масштабируемой архитектуре. Независимо потребляйте сообщения из Kafka в какую-либо базу данных, такую ​​как MySQL или Google BigQuery, для целей аналитики, которые у вас должны быть.

person look4regev    schedule 12.08.2016