2010-09-28 3 views
0

Место, где я работаю, имеет 2 сервера и балансировщик нагрузки. Настройка ужасна, так как я должен вручную убедиться, что оба сервера имеют одинаковые файлы. Я знаю, что есть способы автоматизировать это, но он не был реализован, надеюсь, скоро (я не могу контролировать это). Я написал приложение, которое собирает кучу информации от пользователя, а затем создает папку с именем после электронной почты пользователя на одном из серверов. Проблема в том, что я не могу контролировать, на каком сервере создается папка, поэтому пусть пользователь входит. Заполняет его материал, и его папка создается на сервере 1, пользователь уходит на некоторое время и возвращается к но на этот раз балансировщик нагрузки выбрасывает пользователя на сервер 2, теперь пользователь делает что-то, что нужно сохранить в его папку, но поскольку оно не было создано на этом сервере, возникает ошибка. Что я могу сделать по этому поводу? какие-либо предложения?load balancer question C# asp.net

Благодаря

+1

Самое простое решение, вероятно, хранить информацию в базе данных, а не в файловой системе. Я понимаю, что это может потребовать некоторой перезаписи вашего кода, но, в конце концов, это сэкономит много головной боли. Что касается синхронизации файловой системы одного сервера Windows с другим, проверьте robocopy. –

+0

Yep - два forseeable options: 1) хранить в БД, 2) CDN (внешний, например Amazon), или на промежуточном сервере. – RPM1984

ответ

0

Это звучит, как вы можете иметь состояние сессии вопрос. Это звучит странно, как вы его описываете, но посмотрите на эту статью. Он старый, но охватывает основы. Если он не пытается «прибегая к помощи asp.net состояния сеанса веб-фермы»

http://ondotnet.com/pub/a/dotnet/2003/03/24/sessionstate.html

2

Это звучит, как вы могли бы решить несколько проблем путем внедрения облачных услуг для файла пишет такие как Amazon S3 http://aws.amazon.com/s3/

  1. управление размер диска больше не быть проблемой
  2. файлы теперь записываются и считываются из S3, так проблемы нагрузки балансира решены
  3. Преимущества полу-ребра сети с AWS. (не по праву, но по моему опыту лучше, чем большинство внутренних решений)
+0

Если вы можете себе это позволить, это, вероятно, будет лучшим решением для хранения файлов базы данных (в отличие от перехода на MSSQL или MySQL db на ваших серверах). Вы получите потрясающую производительность от Amazon. –

+0

Зависит от масштаба и множества факторов. Подозреваю, это будет достаточно маленьким, чтобы обрабатывать локальную базу данных. И сделать гораздо меньше архитектуры, чем подключение к Интернету для ваших данных. – SamStephens

2

Не храните ваши данные в файловой системе, храните их в базе данных.

Если вы действительно не можете избежать использования файловой системы, вы можете посмотреть на хранение файлов в сетевом ресурсе, к которому имеют доступ оба сервера. Однако это был бы ужасный взлом.

+0

- это фактически файлы PDF, которые создаются и входят в папку пользователя. Могу ли я эффективно хранить эти файлы в базе данных? – Migs

+0

Зависит от размера. Но в общем, абсолютно. Я был вовлечен в организацию, которая хранит гигабайты PDF-файлов в базе данных. Просто убедитесь, что вы выполняете домашнее задание по параметрам, предоставленным вашей базой данных, и убедитесь, что знаете информацию о производительности, которая вам нужна из базы данных, и тестирование производительности перед началом кодирования веб-сайта. – SamStephens

+0

большое спасибо за помощь. Я новичок в этом сайте, поэтому я не уверен, как поблагодарить всех, кто вколол, но спасибо всем! – Migs

0

Это обычная инфраструктурная установка. Ниже приведены два широко используемых решений для ситуации вы находитесь.

  1. Если у вас есть сетевое устройство хранения данных доступной (например, NetApps), вы можете использовать это хранилище централизованно хранить все файлы пользователей, которые должны быть доступны на всех серверах вашей веб-фермы.
  2. Редизайн приложения для хранения всех пользовательских данных в базе данных.
0

Используйте NAS или SAN для централизованного хранения. Это же сетевое хранилище может хранить общую конфигурацию, которую IIS можно настроить для использования.

Web Deploy v2, выпущенный только от Microsoft, я бы посоветовал полномочия, которые должны были расследовать это, а также маршрутизацию запросов приложений и большую структуру веб-ферм.