Рекомендации по хранилищу данных для журнала активности пользователей сайта - PullRequest
2 голосов
/ 15 февраля 2012

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

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

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

Ответы [ 2 ]

1 голос
/ 19 февраля 2012

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

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

Взгляд на tumblr или twitters архитектуры также может подтолкнуть вас в правильном направлении.

0 голосов
/ 12 августа 2016

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

...