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