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

3

背景:

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

我可以确保唯一调用第三方服务的方式是通过我的WCF应用程序。因此,我考虑在我的代码中添加并发检查。

为了做到这一点,我将使用一个唯一描述正在修改的数据的标识符。如果对服务的一个调用正在修改与标识符相关的数据,则其他对该标识符的调用将需要等待直到它完成。

问题:

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

因此,大多数处理同步的.NET类都假设有一个共享内存空间。

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

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

总结:

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


使用UDP通道在服务器之间进行通信。您可能希望使用令牌环来将其中一个设置为主服务器。 - jdweng
1个回答

7

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接