如何在服务器群中实现锁定?

Wal*_*ssa 5 mysql asp.net scalability locking

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

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

还有其他办法吗?

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

lot*_*har 1

如果所有状态都在(中央)数据库中,那么数据库事务应该为您处理这个问题。

请参阅http://en.wikipedia.org/wiki/Transaction_(数据库)