Технические возможности
Технические возможности
На виртуальной машине с 4 CPU и 8Гб оперативной памяти производительность составляет около 200 карточек документов в секунду.
Если этого недостаточно, можно увеличить за счет
— вертикального:
установка на более мощный сервер.
— горизонтального:
добавляем недорогие серверы и объединяем их в кластер.
На наш взгляд, горизональное масштабирование более предпочтительно, так как добавляет отказоустойчивости системы в целом (перераспределение нагрузки) и намного более экономично.
На «легкой» виртуальной машине устанавливается кэширующий прокси-сервер nginx, который отдает статические файлы (стили и JavaScript) и файлы, загруженные пользователем, самостоятельно.
Динамический контент (html-код и ajax-запросы) он переадресует серверам приложений, равномерно распределяя нагрузку.
Кэширующим сервером является memcached, обеспечивающий единый кэш для всех серверов uWSGI и их серверных процессов.
СУБД является частью системы, наиболее сложной для масштабирования.
— Синхронный master — slave
Чтение делается в slave-сервера, а запись — в master.
Настраивается репликация данных в синхронном режиме (долгая запись, быстрое чтение).
— Асинхронный master — slave
Часть системы, отвечающая за оперативную обработку транзакций, работает только с master-сервером, а отчетность и не критичные к запаздыванию данных части читают с slave, а пишут в master-сервер.