是否有众所周知的在服务器场中同步任务的最佳实践?例如,如果我在服务器场上运行基于论坛的网站,并且有两个主持人尝试执行某些操作,而这些操作需要写入数据库中的多个表,并且这些主持人的请求正由服务器中的不同服务器处理农场,如何实现一些锁定功能以确保他们不能同时对同一项目执行该操作?如何实现跨服务器场的锁定?
到目前为止,我在考虑使用数据库中的表来同步,例如,检查表中项目的ID,如果不存在,插入并继续,否则返回。也可能是一个共享缓存可用于此,但我目前没有使用这个。
还有其他方法吗?
顺便说一句,我使用MySQL作为我的数据库后端。
有多个请求响应试图同时访问数据库服务器。他们在不同的服务器上并没有太大的改变。 – jfclavette 2009-04-23 01:17:11
确定,但它们同时影响多个记录,我不希望在第一个请求仍在执行时影响相同记录的另一个请求。简而言之,我想在C#中使用类似lock的关键字,但希望它以分布式方式工作。 – 2009-04-23 01:22:06