如何在Azure Webfarm中创建分布式共享事务内存?

时间:2011-12-13 21:39:47

标签: .net azure

我有一个在天蓝色webfarm中运行的REST Web服务,我需要防止重放附件。

每个请求都会在几分钟内包含唯一的Cryptographic nonce(只允许一次的令牌)。

现在我使用数据库创建一个以nonce作为主键的条目。这意味着如果一个Web服务器可以在数据库中插入该行,我确信没有其他Web服务器收到具有相同nonce的请求。实际上我使用表存储(使用rowkey / partitionkey作为主键)...而不是SQL Azure。

我的问题是桌面存储速度很慢(插入一行需要20-30ms),我正在寻找更快的解决方案。

.NET是否有分布式共享事务内存库?重要的是我不要引入单点故障(例如,在一台服务器上运行内存数据库)。

奖励:因为它在Azure中运行我不知道我的服务器的名称或IP地址,并且webfarm中的服务器数量经常发生变化。

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

我会考虑memcached(在Azure上使用的链接:http://blog.smarx.com/posts/memcached-in-windows-azure),因此nonce存储很快,然后为了持久性我也(异步)将nonce存储在表存储中。

对于性能,在读取时,我将异步执行表存储检查,并检查读取是否应在退出主读取方法时继续。