Dot-Net
Memcached 故障轉移
我們配置了 2 個 memcached 伺服器並使用 Eniym 客戶端。當其中一台伺服器關閉時,該伺服器似乎被添加到 deadServers 列表 (ServerPool.cs) 並嘗試每 10 秒恢復一次伺服器(我們已將 deadTimeOut 配置為 10 秒)。嘗試連接到失敗的伺服器會導致 TCP 超時,頁面需要很長時間才能載入,從而導致糟糕的使用者體驗。
1)解決這個問題的標準方法是什麼?有一些關於從 deadServers 列表中刪除伺服器的文章。這樣做可以嗎?
推薦的 deadTimeOut 設置是什麼(我理解預設為 2 分鐘,我們在實現中將其更改為 10 秒)
我是否正確理解記憶體數據不會在伺服器 1 和伺服器 2 之間複製?如果伺服器 1 關閉,那麼它會去數據庫獲取這些值(並且它並沒有真正檢查伺服器 2)?
非常感謝任何幫助。
- 作為一般規則,通常期望您只接受記憶體可能有也可能沒有您想要的內容。
- 這取決於場景,但聽起來你可能會從更高的場景中受益。更高(2-5分鐘)並沒有太大的損失。
- 是的。Memcache 通常會在伺服器 2 上再次記憶體這些值(從數據庫中獲取後,因為伺服器 1 的記憶體不可用)。
您可能還降低了用於重新連接到可能已死的伺服器的 TCP 超時。