是否有众所周知的跨服务器场同步任务的最佳实践?例如,如果我有一个在服务器场上运行的基于论坛的网站,并且有两个版主试图执行一些需要写入数据库中的多个表的操作,并且这些版主的请求由服务器中的不同服务器处理农场,如何实现一些锁定功能以确保他们不能同时对同一项目执行该操作?
到目前为止,我正在考虑使用数据库中的表进行同步,例如检查表中项目的ID,如果不存在则插入它并继续,否则返回。也可能为此使用共享缓存,但我目前没有使用它。
还有其他办法吗?
顺便说一句,我使用 MySQL 作为我的数据库后端。
最佳答案
您的问题暗示数据级并发控制——在这种情况下,使用 RDBMS 的并发控制机制。
如果以后您希望控制不一定将一对一映射到数据实体(例如表记录访问)的应用程序级操作,那将无济于事。通用解决方案有一个反向代理服务器,它理解应用程序级语义并在必要时相应地进行序列化。 (这会对可用性产生负面影响。)
阅读 CAP 定理可能也没什么坏处!
关于asp.net - 如何在服务器群中实现锁定?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/779925/