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

какую модель высокой доступности выбрать для веб-сайта (nginx / mysql)

У нас 5 физических серверов. Все идентичны. ОЗУ 16 гб, 4x146 10к sas в рейде 10.

Итак, нам нужна высокая доступность. Текущий план следующий:

2 бокса с Heartbeat для балансировки нагрузки. На данный момент nginx настроен как балансировщик.

тогда проблема в сети и mysql. Я планирую установить 2 ящика под управлением mysql и nginx. Между этими полями настройте репликацию mysql в master <-> master. Затем добавьте последний ящик, в котором реплицируется mysql. Для этой модели каждый веб-сервер подключается к своему локальному серверу mysql. (чтобы минимизировать задержку в сети).

Другая модель - поместить два ящика (nginx) в HA и еще два ящика в mysql master / slave. но в этой модели только балансировщик нагрузки ....

Или мне нужна другая установка. В основном мне не нужно, как это делать, а какую модель выбрать. Нам нужно обрабатывать большой трафик (около 20 тыс. Запросов / с).

Три рекомендации.

1.) Рассмотрите возможность использования HA Proxy поверх nginx для балансировки нагрузки.

[РЕДАКТИРОВАТЬ]
На что следует обратить внимание при рассмотрении прокси HA через HttpUpstream:

HttpUpstream:

  • «Этот модуль обеспечивает простую балансировку нагрузки (циклический перебор и клиентский IP-адрес) между внутренними серверами».

HA прокси:

  • Балансировка нагрузки TCP
  • Горячая перезагрузка
  • Очередь подключений
  • Страница полной статистики
  • Коммуникация через сокеты, включая возможность отмечать серверы как неработающие
  • ACL
  • "Липкая" балансировка нагрузки
  • и т.д
  • и т.д
  • и т.д

HA Proxy - это действительно бесплатный балансировщик нагрузки IMO.
[РЕДАКТИРОВАТЬ/]

2.) Посмотри в кеширование. Профилируйте производственные запросы по образцу производственных (или подобных) данных. Попадание в базу данных 20 тысяч раз в секунду может привести к повреждению серверов баз данных. Это 1,7 МИЛЛИАРДА транзакций в день при условии, что каждый запрос включает только ОДНУ транзакцию. Это много. Squid, memcached, redis и т. Д. Могут сохранить здесь ваш бекон, если возможно кеширование.

3.) Я упоминал профилирование?

Трудно предложить план действий, не зная шаблонов использования ресурсов вашего приложения. Например, вы можете обнаружить, что вам придется разместить MySQL в двух специальных блоках, чтобы удовлетворить спрос на запросы. С другой стороны, прокси-сервер высокой доступности чрезвычайно эффективен с точки зрения памяти и процессора. Возможно, вам удастся обойтись, если ваша установка HA Proxy будет совместно использовать ресурсы двух ваших веб-голов.