Напишите что-то.
Напишите что-то.
Всем привет. В конце прошлой недели, с некоторым скрипом, нам удалось ввести в рабочий режим наш новый сервер системы скинов. Вы могли бы ничего и не заметить (если бы она не упала на 9 часов), но всё же мне хочется поделиться тем, зачем мы это сделали и что мы будем с этим делать дальше.
Первая версия системы скинов была написана ещё до того, как было создано Ely.by или даже родилась его идея. Это был наш с друзьями небольшой проектик игрового сервера, на котором я делал авторизацию, систему скинов и маленький сайт под всё это дело. Именно благодаря тому проекту у меня родилась идея создать проект Ely.by.
Проект был запущен и успешно работал уже чуть более года, но в январе 2014 года, когда Ely.by было интегрировано в TLauncher, мы столкнулись с тем, что существующая реализация "несколько" не справляется.
Поэтому в оперативном порядке система скинов была отделена от Ely.by, переписана и запущена на отдельном сервере и домене. Это была Ely.by skinsystem v2. Она решила возникшую проблему и позволила получить производительность до 350 запросов на скины в секунду (против ~120 прежде). Это было очень круто, особенно учитывая, что это был всё ещё PHP и база данных MongoDB.
Прошло более года и мы стали вновь упираться в лимит производительности: чем больше запросов на скины, тем дольше отвечает наш сервер и тем дольше игроки ощущают лаги в игре. Понимая, что дальше будет только хуже лучше (пользователей ведь прибавляется) мы решили пойти на интересный эксперимент: сменить язык разработки. Мы выбирали между Node.js и Go. Были реализованы простые сервера системы скинов на обоих языках и прогнаны тесты. В итоге, на крайне слабом железе, нам удалось выжать 3600 запросов на скины в секунду на Go реализации (а это в 10 раз больше PHP версии и мне думается, что это ещё не предел):
Это решение (конечно, с доведением уже до реальной логики Ely.by) и стало нашей Ely.by skinsystem v3. Нам удалось отказаться от необходимости кэшировать ваши скины на 15 минут, так что теперь смена скина в каталоге приводит к моментальной смене скина в игре (конечно, придётся перезайти в мир или перезапустить игру). Кроме того, в архитектуру удалось заложить возможность бесконечно наращивать мощность, что позволит нам на долгое время забыть про лаги из-за тормозов системы скинов.
Забавный факт: наша система скинов работает быстрее, чем Mojang :P
Все эти улучшения движка позволяют нам развивать на базе этого сервера новые сервисные решения. Так, например, в скором времени появится API для получения рендеров лица и скина по нику игрока, что позволит авторам проектов использовать их в качестве ваших аватаров на своих проектах. Так же мы хотим добавить более гибкое управление поведением системы скинов, чтобы, например, можно было отключить проксирование скинов из официальной системы скинов, если по какой-то причине вам это мешает. И конечно же, я уже давно лелею идею сделать страницу с графиком активности на сервере системы скинов и сервера системы авторизации в реальном времени.
В общем у нас ещё много работы, сейчас мы по прежнему работаем над запуском нового сервиса, он вам обязательно понравится.
До встречи.
Привет, давно не виделись.
• SliCraft 1.7.2-1.7.10 •
IP: 37.187.88.66:25814
Ребята, заходите все!!!
Магазин.Пвп,выживание, паркур, дабл прыжок и многое другое на сервере SliCraft.
Есть группа http://vk.com/slicraft Вступаем!!!
а у ело бай ест профилактика