2010-12-19 80 views
0

我有3個服務器運行一個網站。我現在需要實現登錄系統,並且由於用戶根據所連接的服務器獲取不同的行爲(登錄或註銷)而遇到問題。如何使用運行分佈式服務的多個服務器(HAProxy,Apache,Ruby on Rails)時配置登錄

我在Rails中使用Memcache的會話店 - config.action_controller.session_store =:mem_cache_store

的ActiveSupport ::緩存:: MemCacheStore.new( 「服務器1」, 「服務器2」, 「服務器3」)

我以爲第二行要麼保持高速緩存同步或類似的東西...

每個服務器都有自己的分貝1個主,2個奴隸。我已經嘗試過在sql store中進行會話的路線,但這確實傷害了SQL Server,並且複製負載變得非常沉重。

有沒有簡單的方法來說,在所有3臺服務器上的所有會話存儲中使用此Memcache?

這會解決我的問題嗎?

我會很感激。

回答

0

我沒有使用memcached的存儲會話之前(我覺得Redis是一個更好的解決方案),但我覺得只要你對每個應用程序服務器的 ActiveSupport::Cache::MemCacheStore.new("server1","server2","server3") 線,您的會議應保持同步向上。

我剛剛使用與您所描述的設置相同的常規cookie會話,取得了很多成功。