Мы сделали сайты WCF, подключающиеся к нескольким базам данных, обрабатывающим 1000 одновременных запросов, в конфигурации WCF есть хитрые биты, которые нужно настроить, но все должно работать нормально.
Я не понимаю, почему информация из базы данных должна возвращаться пользователю.
Все это может счастливо жить на стороне сервера. Тогда все решения о том, к какой базе данных подключаться, могут приниматься на основе учетных данных пользователя.
Если вы хотите, чтобы несколько конечных точек обрабатывали нагрузку, вы перенаправляете на соответствующую (или случайную) конечную точку после входа в систему. Затем сохраните соответствующие данные маршрутизации / сопоставления на соответствующей конечной точке (или все они, если вы используете случайный порядок).
Все, что вам нужно от них, это их учетные данные, чтобы решить, какую базу данных использовать.
Подсказка: Как и во всех вопросах производительности: мера, мера, мера. Вы должны знать, есть ли какая-либо выгода с несколькими конечными точками под ожидаемой нагрузкой; поэтому создайте нагрузочный тест. Тогда вы можете увидеть, где производительность падает. Избыточное проектирование перед измерением иногда работает, но всегда тратит время.