gpt4 book ai didi

c# - 跨进程(和机器)同步(信号量)

转载 作者:行者123 更新时间:2023-12-02 00:30:52 27 4
gpt4 key购买 nike

背景:

我的 WCF 应用程序必须调用其中没有任何并发​​检查的服务。这是第三方创建的服务,让他们添加并发检查可能是不可能的。

我可以确保调用第三方服务的唯一方法是通过我的 WCF 应用程序。所以我正在考虑在我的代码中加入并发检查。

为此,我将使用唯一描述正在修改的数据的标识符。这个想法是,如果对服务的一个调用正在修改与标识符相关的数据,那么对该标识符的其他调用将需要等到它完成。

问题:

我的 WCF 服务是负载平衡的。我可以同时运行多达 16 个实例,所有实例都在不同的虚拟机上。

因此大多数处理同步的 .NET 类都假定共享内存空间。

是否有标准的、“最佳实践”类型的方法来为服务的负载平衡实例进行同步?

我考虑过使用数据库表 (SQL Server) 来尝试管理它,但从架构的角度来看,将我的持久层用于此目的似乎是错误的。我希望有另一种解决方案。

总结:

如何跨机器进行同步(锁、互斥锁、信号量等)?(最好不使用数据库表来管理它。)

最佳答案

使用 Distributed lock manager根据您创建的标识符锁定资源修改。

您可以使用的一些 DLM 是:

关于c# - 跨进程(和机器)同步(信号量),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52010860/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com