Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Сергей Мезенев, Broccoli Games — Backend игрового проекта

91 views

Published on

Конференция Dev Party (http://devparty.ru).
Вологда, 25.03.2017

Published in: Software
  • Be the first to comment

  • Be the first to like this

Сергей Мезенев, Broccoli Games — Backend игрового проекта

  1. 1. Backend игрового проекта
  2. 2. Обработка запросов от игрового клиента В пакете не более N-команд Структура пакета и каждой команды соответствует формату JSON-RPC Набор команд выполняется либо полностью, либо полностью отменяется. Закрепление изменений в базе данных происходит через транзакции
  3. 3. PHP FPM и создание пулов под задачи FPM - менеджер процессов FastCGI Возможности: 1. Создание наборов обработчиков с различными настройками 2. Динамическое и статическое создание дочерних процессов обработчика Для каждого сервиса создаем отдельный пул PHP-процессов
  4. 4. Переход с PHP 5 на PHP 7 Изменения: Снижение использования CPU c 31% до 17% Оптимизация настроек FPM: Переключение на новую версию: Изменения: В пике нагрузки снижение использования CPU c 49% до 30%
  5. 5. Использование AdoDB для работы с базой данных Возможности: 1. Предоставляет ORM-подобный механизм работы с базой данных 2. Абстрагирование от конкретной СУБД 3. Статистика запросов 4. Кэширование результатов выборки
  6. 6. Использование ProxySQL. Распределения запросов между серверами БД ● Топология репликации - Звезда ● Выделяем под запись один сервер ● Балансируем команды на чтение между репликами базы данных Функционал ProxySQL: ● Редактирование списка серверов ● Редактирование пользователей ● Правила балансировки запросов ● Мониторинг состояния серверов ● Статистика запросов ● Отдельная реплика для бекапов и запросов статистики
  7. 7. Использование Memcached для оптимизации Можно разместить на каждом сервере приложения Сокращает количество обращений к серверам базы данных Не даст прироста, если БД полностью в памяти
  8. 8. Мониторинг состояния системы через Zabbix ● Один сервер для хранения и анализа данных от агентов ● Каждый сервер имеет своего Zabbix агента для сбора и отправки данных ● Автоматическое обнаружение нового агента при добавлении дополнительного сервера ● Информирование о неполадках через сервис Email2SMS ● Хранение истории изменения параметров мониторинга

×