網(wǎng)站升級(jí)方案渠道推廣平臺(tái)
文章目錄
- redis高可用核心參數(shù)配置
- 1.Lettuce
- 2.Jedis
- 3.Redisson
- 4.其他客戶端
- redis降級(jí)場(chǎng)景簡(jiǎn)介
- 一、業(yè)務(wù)背景
- 二、設(shè)計(jì)方案
- 三、實(shí)現(xiàn)方案
- 四、總結(jié)
redis高可用核心參數(shù)配置
1.Lettuce
提示:該客戶端無(wú)主動(dòng)探活機(jī)制,只能依賴于 OS KeepaAlive 機(jī)制,探測(cè)周期過(guò)長(zhǎng),且底層采用共享連接,遇到網(wǎng)絡(luò)抖動(dòng)或故障時(shí),影響半徑較大,強(qiáng)烈建議換為Jedis
2.Jedis
- 需要通過(guò)設(shè)置連接探活機(jī)制縮短影響時(shí)間。建議將testWhileIdle設(shè)置為true;對(duì)于業(yè)務(wù)連接極端敏感的,并且節(jié)點(diǎn)連接數(shù)在5000以下(是節(jié)點(diǎn)連接數(shù),不是集群連接數(shù)),testOnBorrow也可以配置為true;
- 將Jedis版本升級(jí)到>=3.6.1;
- Jedis全套高可用配置可參考另一篇。
3.Redisson
- 需要通過(guò)設(shè)置連接探活機(jī)制縮短影響時(shí)間。建議將pingConnectionInterval調(diào)小,設(shè)置為3000ms;
- 關(guān)閉讀寫(xiě)分離。將readMode和subscriptionMode設(shè)置為MASTER;
- 將Redission版本升級(jí)到>3.18.0;
- Redission全套高可用配置可參考另一篇。
4.其他客戶端
- 其他客戶端(Python、Node.js、PHP等)需要進(jìn)行模擬測(cè)試Redis節(jié)點(diǎn)主備切換的情況下服務(wù)是否仍能正常連接redis
redis降級(jí)場(chǎng)景簡(jiǎn)介
提示:連接redis集群帶有重試連接機(jī)制和實(shí)例轉(zhuǎn)移連接機(jī)制,所以導(dǎo)致每一個(gè)請(qǐng)求中對(duì)redis的連接非常耗時(shí)
場(chǎng)景一:業(yè)務(wù)存在下游資源支撐如數(shù)據(jù)庫(kù)或其他存儲(chǔ)實(shí)例,這種情況只需要處理redis連接異常導(dǎo)致的接口請(qǐng)求超時(shí)問(wèn)題,采用的方式為初次超時(shí)捕獲連接異常后向監(jiān)控系統(tǒng)拋出特定告警,打印日志。隨后查詢下游存儲(chǔ)實(shí)例獲取數(shù)據(jù)返回。告警向運(yùn)維人員發(fā)送通知,修改邏輯參數(shù)后重啟實(shí)例,使后續(xù)每次查詢都直接訪問(wèn)下游存儲(chǔ)實(shí)例避免浪費(fèi)時(shí)間,同時(shí)安排redis恢復(fù)工作,待恢復(fù)好后修改再參數(shù)重啟。
場(chǎng)景二:SDK里的redis損毀,無(wú)直接可用的下游存儲(chǔ)實(shí)例支撐。處理方案為在SDK中維護(hù)一個(gè)本地緩存如caffeine,定時(shí)同步redis數(shù)據(jù)至本地緩存,當(dāng)redis崩潰或連接超時(shí)直接訪問(wèn)本地緩存?;騽?chuàng)建Redis數(shù)據(jù)的直接操作方系統(tǒng),開(kāi)啟備用的接口調(diào)用,由第三方的系統(tǒng)服務(wù)加第三方數(shù)據(jù)庫(kù)提供SDK-Redis降級(jí)支撐,最差的方案可以直接mock靜態(tài)數(shù)據(jù)返回,滿足核心業(yè)務(wù)流程不阻塞。
一、業(yè)務(wù)背景
- 認(rèn)證驗(yàn)權(quán)服務(wù)中臺(tái)提供的用于分布式會(huì)話權(quán)限管理功能的SDK,里的redis組件存在崩潰風(fēng)險(xiǎn),需要對(duì)其做出降級(jí),用于支持在redis崩潰后,不影響某段時(shí)間內(nèi)已登錄過(guò)的用戶的正常使用??梢跃芙^登錄業(yè)務(wù)流程
二、設(shè)計(jì)方案
三、實(shí)現(xiàn)方案
四、總結(jié)
提示:這里對(duì)文章進(jìn)行總結(jié):
例如:以上就是今天要講的內(nèi)容,本文僅僅簡(jiǎn)單介紹了pandas的使用,而pandas提供了大量能使我們快速便捷地處理數(shù)據(jù)的函數(shù)和方法。