2

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

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

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

任何 adive 都会非常有帮助。

4

2 回答 2

2

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

于 2010-07-22T01:18:38.070 回答
1

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

于 2010-07-22T01:09:58.737 回答