Когда люди говорят о масштабировании веб-сайта с помощью "осколков", что они имеют в виду?
-
01-07-2019 - |
Вопрос
Я слышал, что техника "осколков" упоминалась несколько раз в связи с решением проблем масштабирования для больших веб-сайтов.Что это за техника "осколков" и почему она так хороша?
Решение
У Карла Сегена есть хороший блог пост о шардинге.
Из сообщения:
Сегментация - это разделение ваших данных на нескольких серверах.Как вы разделяете свои данные, зависит от вас, но обычно это делается с помощью некоторого основного идентификатора.
Другие советы
Вкратце, представьте разделение вашего users_tbl на несколько серверов.Итак, пользователи 1-5000 и на сервере 1, пользователи 5000-10000 на сервере 2;и т.д.Если ваша модель данных достаточно абстрактна в коде, это часто не приводит к значительным изменениям в коде.
Конечно, этот подход становится затруднительным, если все ваши запросы похожи на "SELECT COUNT(*) FROM users_tbl GROUP BY UserType", но когда ваш where равен "WHERE userid = 5", тогда это имеет больше смысла.
Поскольку "сегментирование" является частью принципов архитектуры крупных веб-сайтов, возможно, вам будет интересно послушать "Принципы архитектуры eBay с Рэнди Шоупом" здесь.