Архитектура веб-сервера (NginX/Lighttpd/Apache) с кушеткой

У меня есть вопрос по архитектуре, и я надеюсь, что некоторые из вас смогут поделиться со мной. По вашему прошлому опыту, какой сценарий лучше работает для сервера приложения/базы данных с высокой нагрузкой. Я использую Couchbase в качестве базы данных и один из веб-серверов (NginX/Lighttpd/Apache). Это будет трудно объяснить в тексте, поэтому я надеюсь, что у меня есть смысл. Какой сценарий предпочтительнее?

Сценарий 1.

Клиент подключается к главному кластеру веб-сервера, который выбирает подходящий доступный веб-сервер (машина 2), а (машина веб-сервера 2) подключается к главному кластеру базы данных, который, в свою очередь, выбирает доступную базу данных (база данных 1).

Сценарий 2.

Клиент подключается к главному кластеру веб-сервера, который выбирает правильный доступный веб-сервер (машина 1), а «машина 1» подключается к машине Couchbase в кластере Couchbase, который уже назначен ему, то есть «Dbase 1».

Есть ли в этом смысл? Любые мысли о предпочтительном методе?


person Le Dude    schedule 15.08.2013    source источник
comment
Извините, это не имеет для меня смысла. Это вопрос по программированию?   -  person WiredPrairie    schedule 15.08.2013
comment
Нет, это вопрос системной архитектуры, который поможет мне определить, как мы должны создавать наше приложение. Надеюсь, это поможет?   -  person Le Dude    schedule 15.08.2013
comment
StackOverflow лучше всего подходит для вопросов по программированию. Я хотел бы предложить вам попробовать один из других сайтов обмена стеками, но я не понимаю, что вы ищете.   -  person WiredPrairie    schedule 15.08.2013
comment
Спасибо Wired. То, что я ищу, на самом деле является передовой практикой того, как люди делали в своем прошлом опыте разработку наилучшего решения для обработки нагрузки. Поскольку я буду кодировать приложения в зависимости от того, как система обрабатывает запрос. Затем я опубликую его в StackExchange. Я просто предполагаю, что и StackExchange, и StackOverflow совместно используют контент. Виноват.   -  person Le Dude    schedule 16.08.2013
comment
Вам также необходимо лучше уточнить свою ситуацию и требования. Я все еще не понимаю вашего сценария.   -  person WiredPrairie    schedule 16.08.2013
comment
Ситуация такова, что я создаю приложения, которые будут обслуживать ожидаемые миллионы обращений, и я пытаюсь найти лучшую архитектуру для распределения нагрузки на веб-сайт и базу данных. Очевидно, связь идет со всего мира. Какие сценарии являются наиболее надежными, масштабируемыми и требуют меньше обслуживания. Надеюсь, это имеет смысл?   -  person Le Dude    schedule 16.08.2013


Ответы (1)


Я делал это в прошлом; и довольно простой

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

а затем любой из ваших серверов с балансировкой нагрузки общается с базой данных на диване; Я уверен, что вы также можете создать группу диванов.

Теперь кв. использования Nginx или Apache; вопрос что вы должны ответить себе: «Контент обслуживается через веб-сервер - очень статический или его динамический - это означает, что он исходит из БД», если его статика очень легко выбрала nginx; если нет, то вы должны пойти на apache.

если вы используете php, вы можете использовать apc или hip-hop для компиляции своего php https://developers.facebook.com/blog/post/2010/02/02/hiphop-for-php--move-fast/

есть много вещей, о которых вы должны позаботиться при разработке масштабируемой системы.

person Brij Raj Singh - MSFT    schedule 16.08.2013
comment
Спасибо @Brij. Я слышал о компиляции приложений с помощью хип-хопа, чтобы немного ускорить работу приложений. Контент будет довольно динамичным, поэтому я использую диван, а не mysql. Что касается балансировки нагрузки, у меня возникает соблазн просто использовать нативный NginX или Lighttpd. Слишком беден, чтобы позволить себе F5. :-) В прошлом я обнаружил, что Apache просто потребляет слишком много ресурсов. Lighttpd отлично подходит для меня, но, читая отзывы других рецензентов, я очень хочу сделать NginX. - person Le Dude; 17.08.2013