是否有衆所周知的在服務器場中同步任務的最佳實踐?例如,如果我在服務器場上運行基於論壇的網站,並且有兩個主持人嘗試執行某些操作,而這些操作需要寫入數據庫中的多個表,並且這些主持人的請求正由服務器中的不同服務器處理農場,如何實現一些鎖定功能以確保他們不能同時對同一項目執行該操作?如何實現跨服務器場的鎖定?
到目前爲止,我在考慮使用數據庫中的表來同步,例如,檢查表中項目的ID,如果不存在,插入並繼續,否則返回。也可能是一個共享緩存可用於此,但我目前沒有使用這個。
還有其他方法嗎?
順便說一句,我使用MySQL作爲我的數據庫後端。
有多個請求響應試圖同時訪問數據庫服務器。他們在不同的服務器上並沒有太大的改變。 – jfclavette 2009-04-23 01:17:11
確定,但它們同時影響多個記錄,我不希望在第一個請求仍在執行時影響相同記錄的另一個請求。簡而言之,我想在C#中使用類似lock的關鍵字,但希望它以分佈式方式工作。 – 2009-04-23 01:22:06