Методы кластеризации серверов .Net - PullRequest
1 голос
/ 05 января 2009

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

От клиента

  • Сервер шлюза получает сообщение
  • Сервер шлюза отправляет сообщение ACK (UDP)
  • Сообщение десериализовано из двоичного объекта в объект через фабрику
  • Затем сообщение направляется на вторичный сервер в кластере (на основе конфигурации) и отправляет объект на вторичный сервер через WCF
  • Сообщение обрабатывается на вторичном сервере.

с сервера

  • Вторичный сервер создает сообщение и отправляет на сервер шлюза
  • Сервер шлюза двоично сериализует Сообщение
  • Сервер шлюза отправляет двоичный файл клиенту и ожидает сообщения ACK (UDP)

Серверы будут настроены с помощью файлов .config для указания на службы либо локально в том же приложении (будет инициализирован WCF), либо в других системах.

Кто-нибудь работал над созданием любого типа архитектуры, подобной этой, и если да, то с какими проблемами вы столкнулись?


РЕДАКТИРОВАТЬ
Система будет на стороне сервера к уже существующему протоколу, поэтому любой из протоколов клиент-сервер практически недоступен, но он включает в себя управление состоянием (клиент отправляет сеанс при каждом вызове), шифрование, маршрутизацию сервера и защита пакетов.


Редактировать
Может кто-то даже предоставить ссылку на проект с открытым исходным кодом, который использует кластеризацию в .Net?

Ответы [ 2 ]

1 голос
/ 05 января 2009

Поддержание состояния сеанса при длительных транзакциях может стать серьезным препятствием. Вам необходимо убедиться, что ваше решение для балансировки нагрузки может учитывать или согласовывать сеанс, начинающийся на одном сервере и заканчивающийся на другом. Это может быть достигнуто путем совместного использования состояния через внешний источник, такой как cookie-файл в браузере / клиенте или запись на общем сервере базы данных. В качестве альтернативы, многие из аппаратных решений по балансировке нагрузки будут использовать «липкие сеансы», чтобы клиент всегда возвращался на один и тот же сервер (например, на основе IP-адреса)

0 голосов
/ 29 июня 2009

Редактировать Может кто-нибудь даже дать ссылку в проект с открытым исходным кодом, который использует кластеризация в .Net?

Проверьте этот образец приложения . По данным сайта ...

продемонстрированные технологии Сервисно-ориентированный, n-уровневый дизайн с ASP.NET и WCF

  • Чистое разделение пользовательского интерфейса, бизнес-сервисов и доступа к БД
  • Дизайн и настройка для производительности
  • Горизонтальное масштабирование с помощью динамической кластеризации
  • Централизованное управление конфигурацией кластерных сервисных узлов
...