У меня есть некоторые бизнес-функции, реализованные в службах WCF, которые должны быть развернуты на нескольких рабочих станциях. Физически некоторые рабочие станции размещены в Датацентре «А», а некоторые в Датацентре «Б».
Клиенты должны использовать бизнес-функции, не зная, сколько у меня рабочих станций и где они размещены.
Особых требований нет (до сих пор, но все может кардинально измениться), как мы должны выбирать рабочую станцию для обслуживания клиентского запроса (будем учитывать нагрузку на процессор, общее время отклика, историю отказов и т. Д.)
По крайней мере, есть несколько вариантов реализации балансировки:
Один из вариантов, о котором я думаю, - это использовать два фасада IIS Web Server (один для DataCenter "A" и один DataCenter "B"), которые делегируют вызовы рабочим станциям за ними. Фасады IIS должны быть объединены в кластер с системной балансировкой сети.
Или, может быть, я буду реализовывать свои службы WCF для размещения с IIS (я полагаю, что должна быть проблема, чтобы все они были видны внешним клиентам)
Или, может быть, я реализую усложненную посредническую службу, которая анализирует нагрузку на процессор и время отклика рабочей станции?