Вы не ищете балансировщик нагрузки, потому что балансировщик нагрузки обычно используется для балансировки нагрузки и не имеет никакого отношения к вашей фактической реализации. Что вам нужно сделать, это реализовать эту функцию в вашем приложении.
Вы берете Facebook в качестве примера, так как он написан на PHP, я дам вам краткий пример (псевдокод) о том, как они могут реализовать это:
if(isUserBetaTester()){
include("beta_functions.php");
}
else{
include("normal_functions.php");
}
Для имитации той же функциональности в .NET вы можете использовать пользовательские атрибуты, чтобы определить, какие действия действительно запускать и какие представления действительно отображать, поскольку вы не хотите повторно проверять свои действия / контроллеры, если пользователь является пользователем бета-версии. или еще много чего.
Считайте, что в вашей фильтрации действий есть следующее (также псевдо):
if(string.IsNullOrEmpty(Cookies["beta"]))
{
var betaModel = DataLayer.GetModelForThisAction();
Render("BetaView", betaModel);
}
else
{
var normalModel = DataLayer.GetModelForThisAction();
Render("NormalView", normalModel);
}
Существует множество способов реализовать это, но имейте в виду, что, вероятно, было бы намного проще добавить «IsBetaUser» к таблице пользователей в базе данных и иметь специальный домен для бета-пользователей и просто проверять » Это бета-пользователь? " Таким образом, вы можете добавить фильтр на весь домен, который проверяет, разрешен ли пользователь или нет.
Мой первый ответ включал в себя высказывание «перенаправления», которое я имел в виду, чтобы использовать передачу сервера, которая сохраняла бы URL, но это может быть плохой идеей, так как она изменится при обратной передаче.