простой вопрос здесь, я знаю, что эти большие сайты, такие как digg и т. д., имеют стену серверов memcache, которые обрабатывают запросы до того, как попадут в их фактические master / slave db.
Как бы выглядели эти серверы, были бы они просто голыми серверами Linux с 32 ГБ оперативной памяти?
Есть ли какие-либо проблемы безопасности, которые необходимо решить? Я просто подумал, что если кто-то может каким-то образом захватить объекты из кэша памяти, у вас вполне может быть сохранен объект User, в котором есть имя пользователя / pwd!
Существует множество способов настройки серверов memcached в зависимости от того, как работает ваше приложение. Ваш сценарий может подойти для сайтов с очень большим трафиком, которые могут выполнять много кэширования. В нашем случае мы фактически используем интерфейсные сети в нашем кластере кэша памяти.
Что касается безопасности, поскольку у memcached его нет, вам необходимо убедиться, что доступ к портам, которые он использует, правильно защищен брандмауэром. Вы также можете использовать свои собственные порты, а не значения по умолчанию. Тогда единственный способ, чтобы кто-то мог получить доступ к вашим объектам, - это поставить под угрозу ваш сервер, который обращается к memecached, и в этом случае у вас, вероятно, есть более серьезные проблемы.
Memcache не отвечает напрямую на HTTP-запросы, у него нет возможности для этого; способ, которым я это установил, - использовать модуль memcache nginx для извлечения страниц непосредственно из кеша, если он доступен, разговаривая с экземплярами memcache в частной сети.
Обычно я не использую выделенные машины для memcache, а скорее смотрю на профили использования ресурсов существующих серверов и помещаю экземпляры memcached там, где есть свободная память. Например, серверам файловых хранилищ обычно требуется много дискового ввода-вывода, но они часто не используют всю свою оперативную память (после того, как вы заполнили оперативную память активным набором файлов, больше памяти для дискового кеша будет потрачено впустую), в то время как memcached использует оперативную память, но нет дискового ввода-вывода - идеальный набор дополнительных вариантов использования. Однако по мере того, как сайт становится больше, выделенные машины, работающие с большим количеством ОЗУ, маленьким процессором и, возможно, загруженными через PXE (поэтому нет локальных жестких дисков, и вы можете подготовить новые почти за нулевое время), имеют смысл в качестве серверов memcached.