Re: [請益] 請問多台主機操作同個檔案應該如何鎖定 …
我想 ... 不管怎樣都會發生,
A Server執行指令之前,就被B Server搶走的問題 XD
其實我不是很懂,原 PO 為什麼要使用這種架構?
如果是為了分流,寫同一個檔案又要為了安全,
似乎可能會讓執行時間被迫拉長?!
不過撇開這些不談,我倒有個想法。
PHP 本身就有 flock 的功能,
那能不能讓 www1 ~ wwwN 主機對檔案存取的需求,
全部透過其中一台主機,例如他叫 data?
底下是騙 P 幣的繪圖
主機 data
存取檔案的需求 ┌─────┬─────────────┐
www1────────→│ │ │
www2────────→│ │ 對檔案的操作 │
www3────────→│ fo.php │───────→/tmp/test │
www4────────→│ │ │
www5────────→│ │ │
└─────┴─────────────┘
那至於 fo.php 該怎麼設定權限,
就可以考慮 Server 的架構,看是要在檔案裡面限制 IP 來源?
或者,使用Apache自身的限制都可以。
甚至,根本不需要透過 *.php 來達成,搞不好可以直接使用 C 來做?!
如果要完全避免碰撞的問題,我會這樣處理,
對檔案操作分成讀取與寫入,讀取時不鎖,
但是寫入時則要鎖,而且在寫入之前先檢查檔案是否還一樣?
不然 www1 改完,www2 又用比較舊的版本改掉 XD
這是小小的建議,請參考。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 120.101.0.129
→
10/16 18:23, , 1F
10/16 18:23, 1F
→
10/16 18:24, , 2F
10/16 18:24, 2F
→
10/16 18:25, , 3F
10/16 18:25, 3F
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):
PHP 近期熱門文章
PTT數位生活區 即時熱門文章