База данных на одном сервере доступна для многих серверов.Как разработчики обходятся с этим? - PullRequest
1 голос
/ 08 марта 2012

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

При настройке базы данных я куплю другой VPS или облачный сервер и разместлю его рядом с самым загруженным сервером из всех.

Все серверы имеют и обслуживают один и тот же контент. Поэтому, если мой сервер баз данных находится в Сан-Франциско, и я пытаюсь получить к нему доступ с моего румынского сервера, возникнет проблема с производительностью.

Как разработчики справляются с этими ситуациями? Каков наилучший способ достижения достаточной производительности на всех серверах? Лучше ли разместить базу данных на сервере, готовом к базе данных? (Amazon RDS, Azure SQL) или разместить свой собственный сервер базы данных?

Безусловно, проблема заключается в цене, поэтому чем дешевле, тем лучше.

ОБНОВЛЕНИЕ:

В основном у меня 8 серверов, и я собираюсь построить 1 сервер базы данных. Содержание в базе данных будет максимум 30 КБ для каждого пользователя, но количество пользователей может достигать 500 000. Таким образом, соединения не для большого количества данных, и не каждый раз, когда пользователь посещает сайт, будет соединение с базой данных. Просто я не уверен, насколько медленно это будет и с сервера. Мой вопрос в основном заключается в том, что люди обычно делают. У меня есть CDN, и это не то, что я ищу. Я использую CDN от Akamai, но для базы данных взимаю плату за все мои серверы в течение 6 месяцев.

Ответы [ 2 ]

0 голосов
/ 08 марта 2012

использовать функцию MySQL Master / Slave. когда мастер обновляется, подчиненные меняются соответственно. Я не уверен, сколько серверов SQL вы собираетесь использовать или нужно. Если вы правильно настроите отношения «ведущий / ведомый», то каждый сервер будет иметь одинаковые данные, а производительность в идеале должна быть хорошей. Я не профессионал в отношениях хозяин / раб, но я уверен, что кто-то может помочь здесь.

0 голосов
/ 08 марта 2012

Вы пытаетесь создать свой собственный CDN, чтобы лучше обслуживать основные группы клиентов в двух странах?

Допустим, у вас есть два HTTP-сервера, один в Сан-Франциско и один в Бухаресте.Если у обоих серверов есть доступ к одному и тому же серверу БД, между вашими HTTP-серверами и сервером БД все еще будут возникать проблемы с задержкой.

Один из способов - это два HTTP-сервера и два БД-сервера.Один из них является главным сервером, а другой - подчиненным сервером.Подчиненный сервер доступен только для чтения, и запросы на запись будут направлены на главный сервер.

Другим способом является кэширование содержимого на ваших HTTP-серверах с использованием memcached или других методов кэширования.В любом случае вы хотите свести к минимуму необходимость отправки удаленных запросов к серверу на удаленном сервере.

В зависимости от нагрузки, самый простой способ - это просто разместить хост в третьем месте с хорошей задержкой в ​​обоих местах, где вы находитесь.порция.Например, если вы хотите служить Азии и Северной Америке, то Токио или Гонконг - хороший выбор.К сожалению, я не знаю, какие места подходят между Северной Америкой и Европой.Это сэкономит вам деньги и избавит от головной боли.

Для статического контента Amazon CloudFront является хорошим решением.

...