Как бы я больше узнал об использовании пользовательских данных для сайта? - PullRequest
4 голосов
/ 28 июня 2009

Я заинтересован в том, чтобы разделять пользовательские данные моих сайтов на нескольких серверах.

Например, пользователи будут входить в систему с того же места. но сценарий входа в систему должен выяснить, на каком сервере находятся пользовательские данные. Таким образом, сценарий входа в систему будет запрашивать в главном реестре это имя пользователя и может возвращать его на сервере B. Затем сценарий входа будет подключаться к серверу B и проверять имя пользователя / пароль. Имеет ли это смысл? Нормально ли иметь что-то вроде основного реестра, чтобы определить, где находятся данные?

также - я искал, но мне не повезло найти учебники / информацию / стратегии по шардингу. Если есть какие-либо интернет-ресурсы, о которых вам известно по этой теме, я был бы очень признателен, если бы вы поделились ими, чтобы я мог обучаться. Спасибо!

Ответы [ 2 ]

8 голосов
/ 28 июня 2009

Вам следует проверить очень информативный сайт http://highscalability.com. Сообщения, которые стоит прочитать:

Как правило, вы придерживаетесь правильного подхода, но он может стать довольно неприятным, если вам нужно выполнять запросы более чем к одному кластеру, например Запросы типа "последние сообщения ваших друзей".

1 голос
/ 28 июня 2009

Один вариант, который вы можете рассмотреть: используйте простой хеш. Например, возьмите хеш MD5 имени пользователя, а затем обработайте последние 8 байтов этого как длинный. Возьмите этот длинный мод (количество серверов) и сделайте так, чтобы сервер помещал данные. Таким образом, вам не нужно никакого центрального реестра / конфигурации, кроме упорядоченного списка серверов.

Недостатком является то, что изменение количества серверов подразумевает перемещение всех данных в новое «правильное» местоположение ...

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

...