Страницы

Поиск по вопросам

вторник, 16 июля 2019 г.

Как происходит работа распределенного приложения?

Допустим есть большой и сложный проект, который будет в то же время высоконагруженным. Ненужно быть папой Карло, чтоб понять что 1 сервер его не потянет. Вопрос собственно вот в чём: как быть в такой ситуации? Попробую сам частично ответить на свой же вопрос и попрошу вас либо всё перечеркнуть, либо поправить. Приложение буду называть системой. Понятно как систему разбить на 2 части. На одной машине ставим сервер БД (в данном конкретном случае пусть это будет бесплатный MySQL Server). На другой - web-сервер (Пусть для наглядности Apache с подключенным модулем php), на котором будет исполняться сам код. Но что делать если сервер должен будет принимать по 10000 запросов каждую секунду. Понятно, что код надо оптимизировать. В БД по-хорошему работать с хранимыми процедурами, разумеется должно быть кэширование и т.д. Как быть, что делать, куда копать если нужно сделать так чтоб один исходный код выполнялся на нескольких машинах? И как быть, если сервер БД не справляется и нужно сделать так, чтобы один источник данных обрабатывало несколько серверов БД? Понимаю, что в ответ можно книгу написать и не одну, но буду безмерно благодарен хотя более-менее развернутому ответу.


Ответ

Читаем про memcache (и про его кластеризацию), GFS, кластеризация MYSQL. Так же, читаем про организацию livejournal - http://www.livejournal.com/doc/server/ Так же, можно обратить внимание на CDN технологию. Почитайте про eAccelerator и xCache (для кэша запиленного в байт-код PHP)..... Обязательно прочтите принцип работы nginx и apache (apache - backend; nginx - frontend ). Ну и , наверное, самое основное - откажитесь от прямой верстки HTML кода.

Комментариев нет:

Отправить комментарий