Топология распределенной системы - PullRequest
0 голосов
/ 22 июля 2011

Пытался внедрить систему электронного голосования в качестве проекта для колледжа и просто столкнулся с самым важным шагом к моей цели <архитектура системы>

Многосерверный / Многопользовательский, ДОЛЖЕН быть действительно надежным, поскольку около 80 миллионов клиентов находятся в сети. Он также ДОЛЖЕН разрешать присоединение нового сервера для поддержки процесса голосования. Его выводом будет статистика и отчеты, так что он ДОЛЖЕН Позвольте мне собирать информацию в любое время, Поддерживая шифрование, хэширование, дайджест-подтверждение, и т. д.

Моя цель - просто поддержать множество клиентов без единой центральной точки отказа, а затем сделать клиента подходящим сервером для аутентификации и голосования
Подходящий сервер (ы) зависит от 2 критериев:

  • Приоритет расстояния до сервера
  • Приоритет загрузки сервера

Используются первые критерии Только изначально, оба используются в процессе голосования

После поиска образцов по моему проекту найдено 6 решений:

  • Динамический DNS-сервер между серверами и клиентами
  • Диспетчер балансировки нагрузки веб-фермы между клиентами и серверами
  • Безсерверное p2p-облако серверов, клиент присоединяется в качестве сервера p2p, используя PNRP для получения списка серверов
  • Облако p2p серверов / State-Server, клиент подключается к серверу состояний для получения списка серверов
  • Дерево серверов вниз от основного сервера
  • Сеть DHT и система баз данных

С моей точки зрения, последнее решение было подходящим, так как не было ни единой точки отказа, это заставило меня начать поиск готовой библиотеки DHT или полностью распределенной системы для интеграции в мое приложение или просто заново изобрести колесо и реализовать все это с нуля!

Вопросы:
- Я выбрал правильное решение?
Если ДА, укажите мне, что правильный путь ведет к стандартной библиотеке или системе [.NET]!
Если НЕТ, укажите мне подходящее решение [.NET], даже если я не упомянул его в своих 6 решениях!

С уважением,

1 Ответ

1 голос
/ 23 июля 2011

NChord может помочь вам начать без необходимости начинать с нуля и, вероятно, будет достаточно для академического проекта.

...