asp.net - 如何在服务器群中实现锁定?

标签 asp.net mysql locking scalability

是否有众所周知的跨服务器场同步任务的最佳实践?例如,如果我有一个在服务器场上运行的基于论坛的网站,并且有两个版主试图执行一些需要写入数据库中的多个表的操作,并且这些版主的请求由服务器中的不同服务器处理农场,如何实现一些锁定功能以确保他们不能同时对同一项目执行该操作?

到目前为止,我正在考虑使用数据库中的表进行同步,例如检查表中项目的ID,如果不存在则插入它并继续,否则返回。也可能为此使用共享缓存,但我目前没有使用它。

还有其他办法吗?

顺便说一句,我使用 MySQL 作为我的数据库后端。

最佳答案

您的问题暗示数据级并发控制——在这种情况下,使用 RDBMS 的并发控制机制。

如果以后您希望控制不一定将一对一映射到数据实体(例如表记录访问)的应用程序级操作,那将无济于事。通用解决方案有一个反向代理服务器,它理解应用程序级语义并在必要时相应地进行序列化。 (这会对可用性产生负面影响。)

阅读 CAP 定理可能也没什么坏处!

关于asp.net - 如何在服务器群中实现锁定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/779925/

相关文章:

asp.net - ASP.NET Web 服务应用程序中 INI 文件的保存位置

c# - 单击按钮阵列上的事件

mysql用户日期之间的总和列

c++ - 多进程同步的输出流锁定?

c# - @Html.IsSelected 的 ASP.NET Core 等效项是什么

c# - 如何在 StringBuilder 上添加 CheckBoxList 项用于 Linq

mysql - 我需要在 MySQL 中进行日期时间转换。如何确定客户端的时区?

mysql - 加入操作重复

c# - 使用 Control.Invoke() 代替 lock(Control)

java - 同步块(synchronized block)中的锁