WCF服务:ASP.NET缓存或SQL

时间:2010-07-22 01:04:44

标签: sql wcf caching throttling

我目前正在开发一个将在Microsoft Azure上运行的WCF REST Web服务。为了限制每个IP地址的请求数以防止滥用,我目前使用ASP.NET缓存存储IP和超时。

此方法效果很好,但由于Azure的多个VM实例不共享单个缓存,因此可以在不同的VM之间拆分请求,并在重置VM时清除这些请求。

我不认为这是一个主要问题,但由于我已经将用户信息存储在SQL Azure数据库中并使用WCF服务对用户进行身份验证,我最好不要使用数据库而不是ASP.NET缓存吗? / p>

任何adive都会非常有用。

2 个答案:

答案 0 :(得分:2)

使用混合方法怎么样?除了将其放入缓存之外,您还可以将其存储到SQL数据库中。然后,当它们点击不同的实例时,它会以存储在数据库中的时间放入缓存中。最大限度地减少到数据库的往返,并使信息可用于所有服务器。

答案 1 :(得分:1)

您必须决定何时可以接受阈值 来自缓存的数据会更快,但存在不代表实际当前数据的风险。从数据库中获取数据是新鲜的,但是需要花费一些时间来访问数据库并返回。