根據git提交消息,ServiceStack最近添加了故障轉移支持。我最初認爲這意味着我可以將一個Redis實例拉下來,而我的池客戶端管理器將優雅地處理故障轉移,並嘗試與其中一個備用Redis實例連接。不幸的是,我的代碼出錯了,並且說它無法連接到最初的Redis實例。ServiceStack PooledRedisClientManager故障轉移如何工作?
我目前正在Windows上運行Redis 2.6.12的實例,主端口爲6379,從端爲6380,如果主站發生故障,設置標記以自動將從站升級爲主站。我目前實例我的客戶經理是這樣的:
,其中第一陣列讀寫主機(主),與第二陣列是隻讀的主機(奴隸)。
當我終止在6379端口的主人,哨兵促使奴隸成爲主人。現在,當我嘗試運行我的C#代碼時,不是故障轉移到端口6380,而是簡單地中斷並返回錯誤「無法連接到redis實例在localhost:6379」。
有沒有辦法解決這個問題,或者故障切換是不是以我想要的方式工作?
您是否找到了方法@Vliu – jaxxbo
不,從我所做的大多數研究中,大多數人不依賴代碼來處理故障轉移。他們在redis數據庫上使用了一個(linux)代理層,比如HAProxy @jaxxbo – Vliu