2011-04-05 115 views
1

好吧我正在學校項目上工作。這個想法是HA/LB設置。安裝程序是運行Apache和PHP的3個Web服務器。運行4個Datanode,2個MySQL節點和2個管理節點的MySQL集羣。Memcached和PHP會話

有什麼辦法可以讓php-session在服務器間平衡而不需要從MySQL簇中運行它們嗎?

理論上我會有一個Memcache服務器,並在每個web服務器上運行Memcache。這是可行的嗎?

謝謝你的時間。 (在我對物理機器進行概念驗證之前,測試環境是虛擬機)

+0

你使用什麼負載平衡器? – 2011-04-05 14:48:06

+3

男孩,你有一所大學! – 2011-04-05 15:16:15

回答

0

是的,我認爲這樣會起作用。

想想這樣:您的3個Web服務器是在處理器上運行的線程,而您的Memcache實例是它們在它們之間共享的內存。只要他們都可以訪問它,您應該可以在多個Web服務器之間共享會話。

聲明:我沒有試過這個,我只是在評論它背後的理論。

+0

好的真正的問題是php5-memcached是否具有故障轉移到另一臺服務器的可用性,還是我應該編寫一個運行本地和切換到anotehr服務器的C++? – user693143 2011-04-05 14:56:11

+0

這是一個處理memcached複製的補丁http://repcached.lab.klab.org/,但如果memcached服務器故障,理想的應用程序/安裝程序應該可以工作。 – 2011-04-05 15:02:52

+0

好的想法是使用memcache服務器作爲主要的。如果它停止運行,Web服務器就會佔用這些空間。如果所有的memcache會話都關閉,我想這個網站會完全關閉。 – user693143 2011-04-05 15:04:50

0

爲什麼你不想在會話中使用mysql?如果你認爲它會更快,那麼我建議你嘗試一下。

4個支持3個網絡服務器節點的數據庫服務器節點?你爲什麼認爲你需要在數據庫層進行如此多的處理?

+0

當正確完成時,你需要比web服務器前端更多的mysql功能。 – Evert 2011-04-05 15:29:58