Служба WCF: ASP.NET Cache или SQL - PullRequest
2 голосов
/ 22 июля 2010

В настоящее время я разрабатываю веб-службу REST WCF, которая будет работать в Microsoft Azure. Чтобы ограничить количество запросов на IP-адрес для предотвращения злоупотреблений, в настоящее время я храню IP-адрес и время ожидания, используя кэш ASP.NET.

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

Не думаю, что это серьезная проблема, но, поскольку я уже храню информацию о пользователях в базе данных SQL Azure и аутентифицирую пользователей с помощью службы WCF, было бы лучше использовать базу данных вместо кэша ASP.NET? 1005 *

Любой адив был бы очень полезен.

Ответы [ 2 ]

2 голосов
/ 22 июля 2010

А как насчет использования гибридного подхода? Вы можете сохранить его в базе данных SQL в дополнение к размещению в вашем кэше. Затем, когда они попадают в другой экземпляр, он помещается в кэш с временем, которое было сохранено в базе данных. Минимизирует количество обращений к базе данных и делает информацию доступной для всех серверов.

1 голос
/ 22 июля 2010

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

...