2009-12-11 6 views
4

У меня есть пять узлов за балансиром нагрузки, и я пытаюсь определить оптимальную конфигурацию для сайта на основе Django.Развертывание кластера Django

Каждый узел имеет доступ к Postgres, mod_wsgi, Apache, Lighttpd, memcached, pgpool2 (для репликации базы данных) и glusterfs (для репликации медиафайлов) и работает Ubuntu 8.04LTS.

До сих пор установка была четырьмя узлами, использующими Apache/Lighttpd/memcached/pgpool2, все чтение/запись на один главный узел, который запускает «master» Postgresql. Каждый из четырех веб-узлов также запускает Postgres для репликации с мастера через pgpool.

Итак, мой вопрос: как бы вы настроили эту настройку и/или что бы вы изменили, чтобы не было единственной точки отказа, если это возможно?

ответ

0

Установка выглядит довольно хорошо для меня. Я бы подумал об использовании gunicorn/uwsgi + nginx. Я бы также оценил использование pbbouncer, хотя pgpool2 предлагает больше из коробки.

1

Это звучит неплохо, хотя трудно понять, как выглядит ваша установка. Что касается памяти и т. Д. И какого трафика вы собираетесь обрабатывать.

Возможно, вы захотите использовать поддержку многосвязных Django и иметь только экземпляр postgres для чтения (используйте маршрутизацию DB для прямого чтения для чтения только для определенных приложений). Это может принести некоторые неплохие улучшения скорости - и на данный момент у вас может быть потенциальное узкое место в одном экземпляре postgres, в зависимости от того, насколько сильно работает ваша база данных.

Как предложил @ashwoods, это может быть работа, рассматривающая пушки и nginx. Думаю, в данный момент вы используете Apache только для запуска mod_wsgi? И lighttpd для статических файлов? С nginx вы можете использовать его с несколькими серверами wsgi, а также для статических файлов.

Смежные вопросы