c#中的全局缓存机制

时间:2017-06-12 22:17:51

标签: asp.net-mvc-4 c#-4.0 asp.net-web-api asp.net-apicontroller

我正在创建dot net API服务,该服务将托管在Web场中并跨多个服务器访问。这是一个更新信封服务,因此我不需要多个用户同时更新同一个信封。有没有什么方法可以让我有一个全局缓存或类似的东西保持当前信封更新并在多个用户同时更新同一信封时抛出错误?我尝试了锁定机制,但看起来它只适用于单个服务器系统。

2 个答案:

答案 0 :(得分:0)

我认为你必须编写自己的锁定机制。

不同的服务器在很大程度上没有意识到彼此,即使它们是在同一台机器上运行。您必须拥有一台所有服务器都连接到的中央服务器,并且要求提供服务。如果他们可以编辑信封。
这不会是微不足道的。

答案 1 :(得分:0)

正如我的评论所述,您可能希望查看 分布式锁 Semaphore设计模式。有多种方法可以实现此功能。

您提到了缓存,因此我建议您查看Distributed locks with Redis。或者,如果您更熟悉RabbitMq之类的东西,可以在RabbitMq中使用Distributed Semaphore