Я думал о создании веб-сайта, который потенциально мог бы получить много трафика. Это был бы своего рода исследовательский сайт с возможностями вики. Так пользователи смогут редактировать информацию на сайте. Однако 99% пользователей, вероятно, никогда ничего не будут редактировать, а просто будут искать / просматривать сайт. Таким образом, они теоретически могли делать большинство вещей из копии базы данных, доступной только для чтения.
Имея это в виду, я подумал, что собрать что-то подобное будет хорошо ...
Таким образом, в одном центре обработки данных будет 3 физических сервера:
Мне нравится, что эта модель одновременно улучшает и масштабируемость, и надежность. Если какой-либо веб-сервер выйдет из строя, обслуживание не прервется. Если основной сервер SQL выйдет из строя, некоторые функции сайта будут отключены, но сайт все равно останется, так сказать, в состоянии «только для чтения». Затем, в последнюю очередь, балансировщик нагрузки распределяет нагрузку между двумя веб-серверами, что хорошо.
Но у меня есть пара вопросов по этому поводу:
Спасибо за вашу помощь.
То, что вы описали, подойдет.
Однако, если он в основном предназначен только для чтения, вы будете часто иметь дело с более простым ответом - заглянуть в кеш-память или распределенные кеши. Так, например, когда ваши веб-серверы запускаются, они загружают "x" данных либо в память вашего веб-сервера, либо на кэш-сервер.
Все пользовательские запросы будут попадать в кеш в памяти (очень быстро). Любые обновления могут затем заставить кеш вернуться в БД и получить последнюю копию для будущих запросов.
Взгляните на систему Windows Server App Fabric. Если вам нужна настоящая высокая доступность, тот же набор функций доступен в Windows Azure, что сделает работу еще более избыточной.