kubasov
TRANSCRIPT
Типичная схема проекта на одном сервере
Разносим базу на master-slave
Схема разноса базы данных по функционалу
Шардинг
1) По диапазонам (#1: 1 – 99999, #2: 100000 – 199999, #3: 200000 – 299999, etc ) 2) По остатку от деления на кол-во шардов (n = ID % 9, для 10 шардов от 0 до 9) 3) С диспетчеризацией (n = getPath(Dispatcher)) 4) С маршрутизацией (query -> Proxy -> N shard) 5) Сумбур
Точки отказа
Решардниг
Балансировка нагрузки
Время поиска пути/Время обхода
Пример обхода
- кешировать на N минут - каждые N минут удалять произвольные куски - binlog player
Инвалидация/актуализация кеша
Если что-то пошло не так…
read(6, …
Pinger
Балансировка
1) DNS Round Robin 2) L2 балансировка 3) L3 балансировка (DNAT) 4) Проксирование 5) HTTP Редирект 6) IPVS
Нагрузка
Держите ваши подсистемы загруженными не более, чем на
80% 1) Разнос данных 2) Всплески нагрузки 3) Dos 4) Падение производительности
CPU usage
Сергей Кубасов
З а м е с т и т ел ь т е х н и ч е с к о г о д и р е к т о р а
s . k u b a s o v @ c o r p . m a i l . r u