Служба WCF: кэш ASP.NET или SQL

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

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

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

Любой adive был бы действительно полезен.


person Bram    schedule 22.07.2010    source источник


Ответы (2)


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

person Matt    schedule 22.07.2010

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

person OMG Ponies    schedule 22.07.2010