Вопрос

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

От Клиента

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

С сервера

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

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

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


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


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

Это было полезно?

Решение

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

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

Продемонстрированные технологии Ориентированный на обслуживание n-уровневый дизайн с ASP.NET и WCF

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

Другие советы

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top