QCon2014演講預告:大規模運營Redis的經驗@京東
在2013年的QCon上海云計算分會場,京東云平臺***架構師劉海鋒介紹了京東自主研發的分布式存儲 – 京東文件系統(JFS),以及基于JFS的統一數據中心存儲策略。除了分布式存儲之外,劉海鋒的團隊同時也負責開發一套分布式內存存儲平臺(RAM store platform),這套自主研發的快速分布式KV存儲系統可兼容Redis數據類型、提供多租戶統一服務、固有的集群模式、彈性可擴展、同步復制協議、 常駐但不受限于內存、更強的持久性、更低的運維與硬件成本。
在2014年的QCon北京大會,劉海鋒將根據他們開發這套系統的經驗,分享大規模運營Redis的經驗,自研系統的設計思路,以及京東在數據存儲方面的技術體系。InfoQ中文站在會前對劉海鋒進行了一次采訪,邀請他對存儲、Redis等方向分享自己的觀點。
嘉賓簡介
劉海鋒(@劉海鋒0011),京東系統技術部負責人、云平臺***架構師、以及京東架構委員會負責人。他領導存儲、緩存、消息、服務框架團隊,致力于打造堅實的系統技術平臺,穩定支持京東業務的高速發展。
InfoQ:先談談你對存儲系統、云存儲、文件系統、數據庫這一塊當前發展趨勢的看法吧。
劉海鋒:數據量越來越大,業務需求也在增多。互聯網業務后臺需要不同的數據抽象——object/file/kv/tables……但多租戶統一管 理、服務化是重要的趨勢。比如,給各個業務提供全托管的RDBMS服務、緩存服務、海量非結構數據存取服務,而不是上線一個業務就申請一些機器搭建存儲。
InfoQ:用內存存儲一般都是因為業務對讀寫性能有極高的要求。京東大規模內存存儲平臺現在主要服務于哪些業務?這些業務對讀寫的要求是什么樣的?
劉海鋒:非常多的在線業務都需要高速的緩存。比如每次京東購物下單、商品價格展示等等。
InfoQ:Redis在官網上的定義是“高級KV存儲系統”,特點在于速度快、數據結構豐富。你如何定義Redis這套系統?
劉海鋒:高質量的開源軟件。使用方便,速度快,數據類型豐富。用得最多的是string, hashmap兩種。
InfoQ:基于Redis進行二次開發的過程中,有哪些需要避開的坑?有哪些是比較好的實踐?
劉海鋒:Redis是高質量的開源軟件。準確地說,是高質量的單機KV內存存儲server。但是要大規模應用到生產環境,需要做很多工作來滿足公司業務需求。
最早是部署使用單個Redis實例,然后主從復制,集群分片,支持presharding的Java客戶端,進而完善監控體系、配置中心,逐漸建設了一個平臺來統一托管整個公司的Redis集群。
InfoQ:Redis持久化如果持續進行磁盤寫入會造成進程阻塞,這個問題如何解決?
劉海鋒:RDB dump其實是fork出一個子進程做的,寫入并不會阻塞父進程。但是fork操作的執行開銷較高,會block父進程不能及時響應請求。持久化方式是由 各個業務自行選擇的,有的選擇沒有持久化,有的選擇AOF,有的是RDB但是dump時間也是設置好的,比如凌晨幾點等等。
InfoQ:是否研究過目前在Alpha版本的Redis Cluster,有什么發現?
劉海鋒:當然調研和測試過Redis Cluster,現在還不是production ready,所以我們在按照自己的方式搞定集群模式。
InfoQ:對于京東內存存儲平臺,下一步的開發計劃是什么?
劉海鋒:從今年年初開始,我們團隊正在研發和實施京東的下一代內存存儲平臺 - JimStore。簡單地說,JimStore自主研發的分布式系統(dataserver基于Redis),實現多租戶統一管理的、彈性擴展的Redis集群。
技術方面,分步驟做了一些事情:
通過分布式選舉做精確的故障檢測;自動的故障切換;增加磁盤存儲,較冷數據會淘汰至磁盤,這樣單實例就支持更大的數據量;自主研發集群模式,實現容量的透明擴展;整個平臺多租戶服務。
距第六屆QCon全球軟件開發大會(北京站)2014開幕僅剩一個半月,大會演講嘉賓已經幾近確認完畢。大會的演講內容在官網:http://www.qconbeijing.com,以及InfoQ微博、微信公眾帳號的***播報:@InfoQ、【infoqchina】不斷更新。大會9折折扣期將在本月26日截止。如欲報名報請速點擊報名頁面。






















