2009-06-19 2 views
1

У меня довольно простой сайт, получающий 200 тыс. Хитов/день (3-5 ударов в секунду) с использованием конфигурации LAMP. Хозяин несколько шелушился (читай: дешево), поэтому мы хотим добавить второй хост для гарантированного времени безотказной работы (я бы не назвал эту миссию критичной, но более раздражающей).Географическая избыточность и репликация MySQL

MySQL работает на холостом ходу около 200 qps, пикируя на 450 раз.

У меня есть опыт работы с master-master и maatkit setup, поэтому я собирался дублировать сайт во 2-м месте, использовать репликацию master-master и проверять данные с помощью maatkit и отслеживать ведомое-отставание и т. Д.

Однако, читая все ужасные предупреждения об этой настройке, я пытаюсь оценить, является ли это правильным шагом. Что такое альтернативная архитектура?

Дополнительный вопрос: скажем, у вас есть 2 сервера, один на восточном побережье и один на западном побережье. Какова разумная стратегия балансировки нагрузки на базу данных для них? У вас будет доступ к серверу Apache западного побережья к mysql на восточном побережье? Это действительно вариант? Я думал, что задержки убьют производительность ...

Любые мысли? ТИА Майк

ответ

2

США составляет около 50мс поперек, так, учитывая, что вы делаете 40-90 MySQL запросов в HTTP запросе можно ожидать задержки увеличение по крайней мере 2-4,5 секунд для HTTP запросов. Это игнорирует время, необходимое для передачи любых больших полезных нагрузок. Вы не хотите использовать cross-continent mysql для этого приложения.

Еще одна причина, по которой избегать запросов на межконтинентальный mysql, заключается в том, что два мастера могут быть не синхронизированы, поэтому, если вы выполняете циклические запросы, пользователи обеих баз данных могут видеть непоследовательные данные и путаться. Однако, если ваша локальная база данных не работает, возвращение к удаленному является разумным. В этом случае вы также хотите отвлечь трафик от локального веб-сервера, чтобы избежать вышеупомянутого латентного удара.

Вы должны убедиться, что пользователь придерживается одного и того же сервера apache, чтобы получить согласованное представление данных. Простой способ сделать это - перенаправить пользователей с www.yoursite.com на server1.yoursite.com и server2.yoursite.com, убедившись, что все ваши URL-адреса являются относительными. Если один сервер идет вниз, вы можете переназначить DNS, и до тех пор пользователи, вероятно, продолжат обновлять сайт www.yoursite.com (который будет обслуживаться как округлый DNS), пока они не получат другой сервер. Единственная опасность заключается в том, что пользователи будут закладок server1.yoursite.com.

0

Гарантированное время безотказной работы может быть выполнено с использованием активного режима ожидания с использованием виртуального IP-адреса на том же сайте. Вы даже можете настроить другой сайт как активный режим ожидания. Георезервирование - еще одна проблема.

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