World of tanks: высокие нагрузки
-
Upload
maksim-melnikau -
Category
Technology
-
view
803 -
download
4
Transcript of World of tanks: высокие нагрузки
![Page 1: World of tanks: высокие нагрузки](https://reader034.fdocument.pub/reader034/viewer/2022052206/5584f3d4d8b42a82618b5191/html5/thumbnails/1.jpg)
WORLD OF TANKS: ВЫСОКИЕ НАГРУЗКИ
МАКСИМ МЕЛЬНИКОВ
![Page 2: World of tanks: высокие нагрузки](https://reader034.fdocument.pub/reader034/viewer/2022052206/5584f3d4d8b42a82618b5191/html5/thumbnails/2.jpg)
КТО Я
I Wargaming.netI Order of WarI Order of War: ChallengeI World of Tanks developer
I Linux Mobile hobbyistI OpenmokoI systemdI telepathyI Gentoo
World of Tanks: высокие нагрузки, Максим Мельников
![Page 3: World of tanks: высокие нагрузки](https://reader034.fdocument.pub/reader034/viewer/2022052206/5584f3d4d8b42a82618b5191/html5/thumbnails/3.jpg)
WORLD OF TANKS СЕГОДНЯ
I 800k одновременно играющих в пикеI 8M сообщений в секундуI 300 серверов для обслуживания игрыI 60M посещений игрового портала в месяцI 5PB (петабайт) на установку и обновления игрового клиента в месяц
World of Tanks: высокие нагрузки, Максим Мельников
![Page 4: World of tanks: высокие нагрузки](https://reader034.fdocument.pub/reader034/viewer/2022052206/5584f3d4d8b42a82618b5191/html5/thumbnails/4.jpg)
СОДЕРЖАНИЕ
Вступление
Фрагменты архитектурыИгровой cерверСетевой трафикМетакластерВебОбновление клиента
Заключение
World of Tanks: высокие нагрузки, Максим Мельников
![Page 5: World of tanks: высокие нагрузки](https://reader034.fdocument.pub/reader034/viewer/2022052206/5584f3d4d8b42a82618b5191/html5/thumbnails/5.jpg)
АРХИТЕКТУРА WORLD OF TANKS
I клиент игры — тонкий клиент, плеерI сервер — расчёт игрового мираI кластер — сотни процессов работающих как единое целое (сервер)I игровой мир — пошаговый, шаги очень маленькие
World of Tanks: высокие нагрузки, Максим Мельников
![Page 6: World of tanks: высокие нагрузки](https://reader034.fdocument.pub/reader034/viewer/2022052206/5584f3d4d8b42a82618b5191/html5/thumbnails/6.jpg)
АРХИТЕКТУРА КЛАСТЕРА
Storage*
I MySQLI MySQL*I RabbitMQ
NodesI BaseAppI CellAppI LoginApp
Managers
I BaseAppMgrI CellAppMgrI DbMgr
World of Tanks: высокие нагрузки, Максим Мельников
![Page 7: World of tanks: высокие нагрузки](https://reader034.fdocument.pub/reader034/viewer/2022052206/5584f3d4d8b42a82618b5191/html5/thumbnails/7.jpg)
АРХИТЕКТУРА КЛАСТЕРА II
BaseApp
I AccountI ChatChannelI ClanI AdminI SysMessengerI Node
CellApp
I ArenaI AvatarI VehicleI TeamBaseI AreaDestructiblesI Node
World of Tanks: высокие нагрузки, Максим Мельников
![Page 8: World of tanks: высокие нагрузки](https://reader034.fdocument.pub/reader034/viewer/2022052206/5584f3d4d8b42a82618b5191/html5/thumbnails/8.jpg)
РАЗРАБОТКА СЕРВЕРА
1. обычный Python2. GC выключен3. немного C++4. RPC - на базе сообщений5. UDP-based протокол с гарантией доставки
World of Tanks: высокие нагрузки, Максим Мельников
![Page 9: World of tanks: высокие нагрузки](https://reader034.fdocument.pub/reader034/viewer/2022052206/5584f3d4d8b42a82618b5191/html5/thumbnails/9.jpg)
ОТКАЗОУСТОЙЧИВОСТЬ
I объекты только в памятиI репликация объектов на случай отказа
World of Tanks: высокие нагрузки, Максим Мельников
![Page 10: World of tanks: высокие нагрузки](https://reader034.fdocument.pub/reader034/viewer/2022052206/5584f3d4d8b42a82618b5191/html5/thumbnails/10.jpg)
СЕТЕВОЙ ТРАФИК
1. 8M уникальных UDP пакетов в секунду2. 16 Gbps на 800k пользователей
World of Tanks: высокие нагрузки, Максим Мельников
![Page 11: World of tanks: высокие нагрузки](https://reader034.fdocument.pub/reader034/viewer/2022052206/5584f3d4d8b42a82618b5191/html5/thumbnails/11.jpg)
НЕРАВНОМЕРНЫЙ ТРАФИК
I 800k пакетов в 1msI 10k пакетов в следующие 99ms
World of Tanks: высокие нагрузки, Максим Мельников
![Page 12: World of tanks: высокие нагрузки](https://reader034.fdocument.pub/reader034/viewer/2022052206/5584f3d4d8b42a82618b5191/html5/thumbnails/12.jpg)
ПРОБЛЕМЫ РОСТА
I совсем не угадали размер аудитории на стартеI постоянный рост аудиторииI недоработки и нехватка оборудованияI постоянный авралI предел масштабирования кластера
World of Tanks: высокие нагрузки, Максим Мельников
![Page 13: World of tanks: высокие нагрузки](https://reader034.fdocument.pub/reader034/viewer/2022052206/5584f3d4d8b42a82618b5191/html5/thumbnails/13.jpg)
ПЕРЕЕЗДЕЦ
I много кластеровI быстрое перемещение между кластерамиI выделенный кластер для хранения данных
World of Tanks: высокие нагрузки, Максим Мельников
![Page 14: World of tanks: высокие нагрузки](https://reader034.fdocument.pub/reader034/viewer/2022052206/5584f3d4d8b42a82618b5191/html5/thumbnails/14.jpg)
АРХИТЕКТУРА МЕТАКЛАСТЕРА
Центр
I постоянное хранилищеI аккаунты (proxy)I взаимодействие с web-ом
Периферия RU1, RU2, ...
I временное хранилищеI аккаунтыI бои
World of Tanks: высокие нагрузки, Максим Мельников
![Page 15: World of tanks: высокие нагрузки](https://reader034.fdocument.pub/reader034/viewer/2022052206/5584f3d4d8b42a82618b5191/html5/thumbnails/15.jpg)
ПРEИМУЩЕСТВА МЕТАКЛАСТЕРА
1. масштабируемость2. гео-распределённость3. отказоустойчивость4. независимость
World of Tanks: высокие нагрузки, Максим Мельников
![Page 16: World of tanks: высокие нагрузки](https://reader034.fdocument.pub/reader034/viewer/2022052206/5584f3d4d8b42a82618b5191/html5/thumbnails/16.jpg)
ВЕБ
I регистрацияI новостиI статьи и описанияI медиа контентI платёжная формаI обработка платежей
I раздача обновленийI управление пользователямиI профиль игрокаI статистикаI рейтингиI ...
World of Tanks: высокие нагрузки, Максим Мельников
![Page 17: World of tanks: высокие нагрузки](https://reader034.fdocument.pub/reader034/viewer/2022052206/5584f3d4d8b42a82618b5191/html5/thumbnails/17.jpg)
ИНТЕГРАЦИЯ С ИГРОВЫМ СЕРВЕРОМ
I AMQP — протокол взаимодействия с игровым серверомI XML-RPC обёртка над AMQPI реплика данных игры в реляционном виде
World of Tanks: высокие нагрузки, Максим Мельников
![Page 18: World of tanks: высокие нагрузки](https://reader034.fdocument.pub/reader034/viewer/2022052206/5584f3d4d8b42a82618b5191/html5/thumbnails/18.jpg)
СЕРВИСНАЯ АРХИТЕКТУРА
I множество различных проектовI протоколы взаимодействия: AMQP, HTTP, SQL, XML-RPC
World of Tanks: высокие нагрузки, Максим Мельников
![Page 19: World of tanks: высокие нагрузки](https://reader034.fdocument.pub/reader034/viewer/2022052206/5584f3d4d8b42a82618b5191/html5/thumbnails/19.jpg)
СТЭК ТЕХНОЛОГИЙ
LNAMPMRI LinuxI nginxI Apache (mod_wsgi)I MySQLI Python (Django)I memcachedI RabbitMQ
Другое
I uwsgiI TwistedI PhpI RubyI PostgreSQLI MongoDBI Redis
World of Tanks: высокие нагрузки, Максим Мельников
![Page 20: World of tanks: высокие нагрузки](https://reader034.fdocument.pub/reader034/viewer/2022052206/5584f3d4d8b42a82618b5191/html5/thumbnails/20.jpg)
ОБНОВЛЕНИЕ КЛИЕНТА
I отдельный процесс который занимается обновлениямиI поддержка http и torrent протоколовI 2M игроковI размер обновления 1GBI нет возможности раздавать обновление заранееI короткая сессия участия игроков в раздаче
World of Tanks: высокие нагрузки, Максим Мельников
![Page 21: World of tanks: высокие нагрузки](https://reader034.fdocument.pub/reader034/viewer/2022052206/5584f3d4d8b42a82618b5191/html5/thumbnails/21.jpg)
CБОР СТАТИСТИКИ
1. LauncherI файлI размерI времяI протоколI источник
2. tracker3. CDN
World of Tanks: высокие нагрузки, Максим Мельников
![Page 22: World of tanks: высокие нагрузки](https://reader034.fdocument.pub/reader034/viewer/2022052206/5584f3d4d8b42a82618b5191/html5/thumbnails/22.jpg)
РЕШЕНИЕ
I наши torrent сервера — всегда в top-еI web seed-ы
World of Tanks: высокие нагрузки, Максим Мельников
![Page 23: World of tanks: высокие нагрузки](https://reader034.fdocument.pub/reader034/viewer/2022052206/5584f3d4d8b42a82618b5191/html5/thumbnails/23.jpg)
![Page 24: World of tanks: высокие нагрузки](https://reader034.fdocument.pub/reader034/viewer/2022052206/5584f3d4d8b42a82618b5191/html5/thumbnails/24.jpg)
ИДЕИ
I главное — скорость и простота разработкиI не стоит боятся гетерогенной средыI синхронный подход везде где можноI асинхронный — только там, где это необходимоI AMQP — отличный протокол для реализации RPCI работа с объектами в памяти самая быстрая
World of Tanks: высокие нагрузки, Максим Мельников
![Page 25: World of tanks: высокие нагрузки](https://reader034.fdocument.pub/reader034/viewer/2022052206/5584f3d4d8b42a82618b5191/html5/thumbnails/25.jpg)
СПАСИБО ЗА ВНИМАНИЕ. ВОПРОСЫ
Максим Мельниковmailto:[email protected]://plus.google.com/114669104565190507739/https://twitter.com/max_posedonhttp://wargaming.com