Java Social Networking, эффективный метод информирования о статусе активности друзей - PullRequest
0 голосов
/ 20 апреля 2011

Предположим, у вас есть веб-сайт социальной сети, где вы можете иметь друзей, а также просматривать их последние действия.Вопрос в том, как наиболее эффективно (без проблем с производительностью) сразу же получать информацию об их действиях, таких как изменение профиля, когда они в сети, а вы в сети одновременно?

У меня есть два разных способа решения этого, но я не совсем уверен, какой из них будет наиболее эффективным с точки зрения БД, а также с точки зрения памяти Java.Ниже приведены мои методы, и, пожалуйста, дайте мне знать, если у вас есть какой-нибудь лучший способ: 1- Использование java HTTP Session Listener для получения сессии каждого отдельного пользователя и прохождения обновлений.2- Проверка базы данных на наличие новых обновлений через каждые несколько секунд, а затем обновление карты.

1 Ответ

0 голосов
/ 20 апреля 2011

Первое: вы узнаете только после того, как выполните измерения.

Сказав это, всегда есть пространственно-временной компромисс. Это означает, что если вы храните много памяти в памяти, это будет быстро, но у вас большой объем памяти. Если вы пройдете через БД, у вас будет небольшой (Java) след, но он будет намного медленнее.

Так что вам нужно решить, что делать. Память дешева, поэтому размещение содержимого в кеше памяти будет работать хорошо. Но с другой стороны, действительно ли вам нужны обновления за секунду? Или же обновление профиля может иметь возраст 20 с до его обнаружения?

Существует отличный эпизод подкаста SE-Radio о базах данных NoSQL, в котором много говорится об этих решениях: http://www.se -radio.net / 2010/05 / episode-162-project-voldemort- with-jay-kreps / (надеюсь, именно это)

Этот эпизод о сетках памяти также довольно хорош: http://www.se -radio.net / 2010/11 / episode-169-grid-grid-Architecture-with-nati-shalom /

...