NRedis-Proxy 高性能Redis 中間件服務(wù)原理解析

受飛凡電商技術(shù)負責人劉兵先生的獨家授權(quán)代态,在csdn博客我原創(chuàng)發(fā)表《NRedis-Proxy 高性能Redis 中間件服務(wù)》的架構(gòu)原理慧起,以及項目開源介紹吗坚。
一祈远、 NRedis-Proxy 介紹

NRedis-Proxy 是一個Redis中間件服務(wù),第一個Java 版本開源Redis中間件商源,無須修改業(yè)務(wù)應(yīng)用程序任何代碼與配置车份,與業(yè)務(wù)解耦;以Spring為基礎(chǔ)開發(fā)自定義標簽牡彻,讓它可配置化扫沼,使其更加容易上手出爹;以netty 作為通信傳輸工具,讓它具有高性能缎除,高并發(fā)严就,可分布式擴展部署等特點,單片性能損耗約5%左右。
二器罐、 NRedis-Proxy 技術(shù)架構(gòu)圖

這里寫圖片描述

三梢为、NRedis-Proxy 優(yōu)勢以及缺點

a) 功能優(yōu)勢 1. 自帶連接池,簡單穩(wěn)定且性能高效 2. 支持讀寫分離轰坊,從讀按照權(quán)重算法 3. 支持靈活主從配置策略 4. 默認支持一致性哈希分片策略铸董,擴展性強 5. 分片策略與從讀取策略可自定義化 6. 支持主從自動切換,提供RedisServer監(jiān)聽服務(wù) 7. 支持HA 分布式部署肴沫,節(jié)點可隨意擴展
b) 天然缺點 中間件的存在袒炉,會自帶網(wǎng)絡(luò)損耗,但是網(wǎng)絡(luò)帶寬足夠樊零,可以忽略不計我磁。相比客戶端分片等策略,中間件可以解決客戶端應(yīng)用過多驻襟,解決M*N 問題夺艰,Redis-Server連接數(shù)不夠,造成機器CPU性能降低;如下圖:

這里寫圖片描述

四沉衣、NRedis-Proxy 類邏輯調(diào)用圖

這里寫圖片描述

五郁副、 NRedis-Proxy 配置標簽

1、redisProxyNode

這里寫圖片描述

2豌习、redisProxyMaster
這里寫圖片描述

3存谎、redisProxyCluster
這里寫圖片描述

4、默認兩個分片策略
這里寫圖片描述

六肥隆、NRedis-Proxy 使用場景

1既荚、項目初始團隊 當一個公司成立一個研發(fā)初始團隊,對于互聯(lián)網(wǎng)公司栋艳,研發(fā)時間周期短恰聘,迭代快,沒有時間與資源研發(fā)基礎(chǔ)中間件吸占,如果有成熟的中間服務(wù)晴叨,不參合業(yè)務(wù)代碼,與應(yīng)用解耦矾屯,讓研發(fā)專心專一研發(fā)業(yè)務(wù)本身 兼蕊,同時又能夠讓后期上線業(yè)務(wù)穩(wěn)定。NRedis-Proxy是一個高性能且穩(wěn)定中間件服務(wù)件蚕,第一個真正意義Java 版本Redis中間件孙技,讓研發(fā)團隊既可以學習产禾,又可控!
2绪杏、秒殺場景下愈,應(yīng)用服務(wù)較多,RedisServer較少

這里寫圖片描述
通常靜態(tài)HTML等內(nèi)容蕾久,是通過CDN的部署势似,一般壓力不大,核心瓶頸實際上在后臺請求接口上僧著。這個后端接口履因,必須能夠支持高并發(fā)請求,同時盹愚,非常重要的一點栅迄,必須盡可能“快”,在最短的時間里返回用戶的請求結(jié)果皆怕。面臨下面幾個問題:
1毅舆、怎么樣保證讀取高性能,滿足高并發(fā)請求愈腾?
2.憋活、怎么樣保證數(shù)據(jù)一致性,保證MySQL 數(shù)據(jù)不丟失虱黄,與Redis 數(shù)據(jù)保持一致性
3悦即、 RedisServer 連接數(shù)不夠,應(yīng)用程序RedisClient 客戶端連接數(shù)過多橱乱,造成 Redis Server 機器CPU 性能降低辜梳,以至于Redis Server 性能低
4.、Redis Server 機器性能不一樣泳叠,當大流量風暴 怎么樣保障高性能RedisServer 機器 支持支撐 重要的業(yè)務(wù)實時性作瞄,高并發(fā)性
解決問題方案如下圖:
這里寫圖片描述
1、怎么樣保證讀取高性能析二,滿足高并發(fā)請求粉洼? 使用內(nèi)存級別NOSQL 數(shù)據(jù)-Redis,保障高性能高并發(fā)
2叶摄、怎么樣保證數(shù)據(jù)一致性,保證MySQL 數(shù)據(jù)不丟失安拟,與Redis 數(shù)據(jù)保持一致性 使用MQ 消息以及消息冪等性蛤吓,采取補償機制,記錄錯誤日志糠赦,補寫數(shù)據(jù)会傲,保障數(shù)據(jù)最終一致性
3锅棕、RedisServer 連接數(shù)不夠,應(yīng)用程序RedisClient 客戶端連接數(shù)過多淌山,造成Redis Server 機器CPU 性能降低裸燎,以至于Redis Server 性能低 使用NRedis-Proxy 集群 部署,對應(yīng)用程序透明化泼疑,保障連接數(shù)可用德绿,避免此問題
4、Redis Server 機器性能不一樣退渗,當大流量風暴 怎么樣保障高性能RedisServer 機器 支持支撐 重要的業(yè)務(wù)實時性移稳,高并發(fā)性 自定義Redis 分片機制,采用虛擬捅算法以及配置中心系統(tǒng)会油,當流量一旦來臨个粱,在快超過最大容量時,改變分片規(guī)則以及流量翻翩,把不重要的業(yè)務(wù)流量涌向低性能機器都许,充分利用機器性能,保障服務(wù)性能.(后續(xù)開源)
七嫂冻、NRedis-Proxy 部署

1胶征、部署架構(gòu)圖

這里寫圖片描述

2、部署環(huán)境要求 JDK 1.7 Redis-Server Zookpeer3.4.6
3絮吵、調(diào)試步驟 a弧烤、啟動Redis Server 主機器
這里寫圖片描述

b、啟動Redis Server
這里寫圖片描述

c蹬敲、啟動 zookpeer
這里寫圖片描述

d暇昂、啟動NRedis-Proxy Server
這里寫圖片描述

e、使用Redis 命令行連接NRedis-Proxy
這里寫圖片描述

g伴嗡、部署方式 執(zhí)行nredis-proxy-sample 中 sing.sh 文件
八急波、 NRedis-Proxy 未來規(guī)劃

1、Redis Server 集群監(jiān)控報警 2瘪校、NRedis-Proxy頁面可控制流量以及RedisServer主從切換
九澄暮、項目開源地址

http://www.oschina.net/p/nredis-proxy

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市阱扬,隨后出現(xiàn)的幾起案子泣懊,更是在濱河造成了極大的恐慌,老刑警劉巖麻惶,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件馍刮,死亡現(xiàn)場離奇詭異,居然都是意外死亡窃蹋,警方通過查閱死者的電腦和手機卡啰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門静稻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人匈辱,你說我怎么就攤上這事振湾。” “怎么了亡脸?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵押搪,是天一觀的道長。 經(jīng)常有香客問我梗掰,道長嵌言,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任及穗,我火速辦了婚禮摧茴,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘埂陆。我一直安慰自己苛白,他們只是感情好,可當我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布焚虱。 她就那樣靜靜地躺著购裙,像睡著了一般。 火紅的嫁衣襯著肌膚如雪鹃栽。 梳的紋絲不亂的頭發(fā)上躏率,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天,我揣著相機與錄音民鼓,去河邊找鬼薇芝。 笑死,一個胖子當著我的面吹牛丰嘉,可吹牛的內(nèi)容都是我干的夯到。 我是一名探鬼主播,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼饮亏,長吁一口氣:“原來是場噩夢啊……” “哼耍贾!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起路幸,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤荐开,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后简肴,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體誓焦,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年着帽,在試婚紗的時候發(fā)現(xiàn)自己被綠了杂伟。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡仍翰,死狀恐怖赫粥,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情予借,我是刑警寧澤越平,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站灵迫,受9級特大地震影響秦叛,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜瀑粥,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一挣跋、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧狞换,春花似錦避咆、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至黄琼,卻和暖如春樊销,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背脏款。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工围苫, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人弛矛。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓够吩,卻偏偏與公主長得像,于是被迫代替她去往敵國和親丈氓。 傳聞我的和親對象是個殘疾皇子周循,可洞房花燭夜當晚...
    茶點故事閱讀 44,914評論 2 355

推薦閱讀更多精彩內(nèi)容