что происходит с веб-приложением, если происходит сбой базы данных, и как поддерживать сайт, не зная об этом пользователя? - PullRequest
0 голосов
/ 06 апреля 2011

Создание веб-приложения .net, поэтому я просто хочу знать

  • что происходит с веб-приложением в случае сбоя базы данных?
  • как сохранить сайт так, чтобы пользователь не знал, что случилось?
  • как обрабатывать введенные пользователем данные?
  • Скажите, если я использую управление состоянием, каким образом я могу сохранить данные?

Ответы [ 2 ]

1 голос
/ 06 апреля 2011

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

наиболее распространенный выбор здесь прагматичен: нам нужна БД (будь то sql, nosql или что-то еще; какой-то центральный репозиторий данных);если сервер БД отключается, приложение тоже.Вы должны стремиться к тому, чтобы на вашем уровне БД работало очень хорошо;Ваше время было бы лучше потратить на попытки улучшить этого времени безотказной работы.

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

0 голосов
/ 06 апреля 2011

Как говорит Марк, это большое дело, и, честно говоря, я бы не полагался на знания незнакомцев о переполнении стека, чтобы сформировать свое мнение. Вообще говоря, оборудование и т. Д. В наши дни довольно надежны, и за сравнительно небольшие деньги вы можете достичь очень высокого уровня доступности (диски RAID, хранилище NAS и т. Д.). Если вам нужен более высокий уровень доступности, чем вы можете достичь с помощью этого маршрута, вы попадаете на территорию специалиста - вам нужен совет того, кто делал это раньше. Это также дорого - переход с 99,9% до 99,99% может легко удвоить стоимость решения. Нерешительные меры, как правило, усугубляют, а не улучшают, создавая дополнительную сложность как в инфраструктуре, так и в коде. Сложность - это то место, где существуют ошибки, и ошибки снижают доступность более эффективно, чем аппаратные сбои.

Сказав это ....

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

Вы можете посмотреть на кластерную базу данных - дорого, как с точки зрения лицензирования / аппаратного обеспечения, так и с точки зрения времени администратора баз данных, но теоретически вы можете кластеризовать несколько центров обработки данных, увеличивая время работы до 100%.

Вы можете взглянуть на решение для обмена сообщениями, а не на прямой доступ к базе данных; Решения для организации очередей сообщений (у Microsoft есть такая) - это принципиально иной способ разработки приложений по сравнению со стандартным «приложением ASP.Net, говорящим напрямую с базой данных», но он может работать с огромными объемами и обеспечивать очень высокие гарантии отработки отказа.

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

...