Назад | Перейти на главную страницу

Управление внезапным пиком трафика для системы продажи билетов на мероприятия

Я собираюсь управлять системой продажи билетов на конкретное мероприятие. Я думаю, что мы, вероятно, ожидаем в целом низкого трафика, хотя, вероятно, будет несколько внезапных пиков трафика (до 1000 посетителей, пытающихся купить билеты одновременно), когда начнется продажа билетов. Ранее на мероприятии произошел сбой веб-сервера, поэтому мы бы хотели, чтобы это не повторилось.

Я думаю о том, чтобы разместить его на Amazon, с 1 Apache (возможно, с прокси-сервером Nginx) + сервером Redis для обслуживания запросов и 1 сервером MySQL для внутренней базы данных. Каждый из 2 серверов, вероятно, будет использовать микро-экземпляр. Система продажи билетов, вероятно, будет внутренней, построенной на Laravel, с часто доступной информацией (например, количество продаж билетов, содержимое отправки формы), хранящейся в Redis для быстрого доступа. Достаточно ли этого, чтобы справиться с таким ожидаемым объемом трафика? Будет ли это перебором для такого объема? Какую форму оптимизации мне следует сделать с веб-сервером и сервером базы данных?

Вопросы дизайна - это не совсем то, о чем SF, но я отвечу, поскольку я архитектор Amazon.

Я не думаю, что микро-экземпляры будут делать то, что вам нужно, но это зависит от результатов тестирования производительности. Напишите свое программное обеспечение для масштабирования на нескольких серверах за ELB, учитывая состояние сеанса и предполагая, что отдельные серверы перестанут работать в любое время. Тестирование производительности / нагрузки покажет, сколько серверов вам нужно. Вы можете автоматически масштабировать для настройки новых экземпляров, но этого может быть недостаточно, поэтому вам следует запланировать или запустить экземпляры вручную, когда вы ожидаете высокой нагрузки. Если вы используете балансировщик нагрузки, вы можете легко запустить микро-экземпляры большую часть времени, а затем добавить более крупные экземпляры для ожидаемой высокой нагрузки, отключив микро-экземпляры.

Используйте Amazon RDS, также известный как MySQL, вместо запуска сервера. Это проще и, вероятно, быстрее, если вам не нужно что-то, чего не предлагает RDS. Вы снова захотите загрузить типы тестовых экземпляров.