《深入分散式快取:從原理到實踐》
入行20多年來,有了一次不同尋常的嘗試,雖然只是合力出了一本書。
時間回溯到2016年, 最初出於挖人的險惡用心,進入了一個名叫“中生代技術”的技術群。本以為和自己加入的諸多技術群類似,沒想到在這裡發現了一群有趣的人,一群熱愛技術的人,一群為了一些技術細節爭論得面紅耳赤的人。因為公眾號wireless_com的一篇文字《老曹眼中的快取技術》,在部落格上是《全棧必備 快取基礎》,右軍找到了我,開啟了本次著書之旅。
感謝網際網路,十個人的跨地域溝通,十個人各自創作,整合,交叉review,使這次眾創成為可能。每個人都是part time,都在消費自己的閒暇時間,都很辛苦的付出。 幾個夥伴都更換了工作,幸運的是,大家都堅持了下來。
神奇的是,我們在眾創著書之前大都素未謀面,自己也是在在後來的SDCC活動中面基了小程和開濤。
其他的夥伴,只能等書籍現售的時候,看看有沒有機會不再神交的可能。這些夥伴有著各自的特點,但都充滿著對技術的熱情包括我自己,他們是:
於君澤:螞蟻金服高階技術專家、花名右軍,IT從業超過十五年。對高併發、分散式架構、內建質量、研發管理有一些心得。維護公眾號“技術瑣話”。
程超:“愛農驛站”首席支付技術專家。InfoQ、中生代技術社群簽約作者,CSDN博主專家,Spring for all社群貢獻者,擅長微服務和分散式架構。
邱碩:螞蟻金服技術專家,花名牧丘,在阿里和支付寶從事中介軟體、應用系統的效能/穩定性技術風險相關工作。Cobar主要作者。
曹洪偉:70後老碼農,全棧工匠一枚,服務過多家世界500強,後連續創業,現任渡鴉科技CTO,致力於人工智慧硬體,維護有“wireless_com ”公眾號 和部落格
劉璟宇:拍拍貸資深架構師,十餘年網際網路行業從業經驗,主要研究雲端計算、服務化基礎框架以及各種基礎元件。
張開濤:京東架構師,暢銷書《億級流量網站架構核心技術》作者,維護有“開濤的部落格”公眾號。
何濤:網聯高階架構師,對高流量下的架構設計有豐富的實踐經驗,熱衷於高可用、高併發和高效能的架構研究。
宋慧慶:勤誠互動研發總監兼高階架構師,十年網際網路廣告行業經驗,主要研究高可用架構技術,為流量變現提供更好的服務。
陳波:新浪微博技術專家,負責平臺基礎架構及優化,經歷了微博從起步到成為數億使用者的大型網際網路系統的演進過程。
王曉波:同程旅遊首席架構師,10餘年網際網路行業從業經驗,負責中介軟體、微服務、分散式架構、運維、安全等方面工作。
履歷都是過往,完本的時候, 大家寫下了如下的感慨——
我在這部書裡,負責編寫了Tair章節,合作編寫了快取周邊、動手寫快取章節,期間閱讀了大量的程式碼、整理了非常多的資料,希望能帶給讀者需要的知識。在一年多的時間裡,工作之餘的大部分時間,都投入到了書的編寫中。在這個過程中,家人給了我極大的支援,這裡特別感謝我的太太李春花。一年多的時間裡,有因為大促工作量激增,有因為工作變動導致工餘時間減少,感謝右軍持續的鼓勵,感謝一同編寫本書的其他夥伴及時的幫助!
—劉璟宇 拍拍貸資深架構師
很幸運,從2009年新浪微博發展之初就參與微博平臺系統的的研發及架構工作,經歷了微博從起步到當前月活使用者數億的大型網際網路系統的技術演進過程。系統演進中經歷了很多曲折、困難、不眠之夜,多虧了@TimYang、@zhulei、@liudaoru等那麼多良師益友,一路上大家志同道合披荊斬棘,回頭看經歷的種種困難卻正好是不斷進步的印記。最後感謝@右軍的邀請和大力組織,感謝@Mis曉曉 的包容和支援,正因為有了你們,我才得以完成相關內容的編寫和完善。
—陳波 新浪微博平臺架構技術專家
從事資料訪問層工作期間,會收到很多快取方面的技術支援,在支援的同時,對快取也有了更深入的瞭解,也促使我思考如何將這些實踐經驗分享給更多的人。正好右軍邀請參與本書的寫作,便欣然同意。寫作期間,閱讀了大量的原始碼,並和聯合作者相互交流快取的原理及實踐經驗,力求能夠呈現實用的技術。本書涉及的分散式快取體系非常全面,從分散式、Redis、Memcached等原理的剖析到大量的一線實踐案例,並且對分散式快取應用當中的一些痛點、難點進行了深入的闡述。希望本書能夠為想了解快取技術的讀者帶來快樂和收益。
—何濤 唯品會架構師
承右軍兄邀請,有幸參與本書第11章“Aerospike原理及廣告業務應用”的編寫。本人雖然在網際網路廣告行業摸爬打滾十餘年,從廣告網路到SSP、DSP,再到蘋果應用市場的推廣(ASO,ASM),從PC廣告到移動原生廣告都有所涉及。對於廣告系統架構搭建(儲存,計算,快取)以及系統的高可用較熟悉之外,對於寫書確實是趕鴨子上架頭一回。又由於平時工作繁忙,家裡瑣碎事情亦多,幾有放棄之念想,但此事絕非君子所為。若如此辜負右軍兄及其他幾位一同寫書的弟兄,於心不忍,日後亦無顏面對他們。故硬著頭皮,把此章寫完並交付出版社。聽聞此章定稿之後,感覺如釋重負,精神亦有所高漲。當然,能夠堅持下去的另一個重要原因是,其他各位參與編寫本書的弟兄的鞭策和鼓勵。在這裡要特別感謝右軍和老曹。由於本人水平有限,還望各位親愛的讀者海涵。
—宋慧慶 勤誠互動高階架構師
首先非常感謝右軍兄邀請我加入寫作團隊,我主要負責第3章、第4章,同此參與合作編寫了第6章。雖然我自己經常寫一些部落格文章,但是寫書和寫部落格是完全不一樣的過程,寫書是要能夠帶領讀者逐步深入學習,而不是簡單地將知識點羅列出來。在這個過程中非常感謝右軍和孫海亮對我進行認真的指導,讓我的寫作水平有了非常大的提高。當我第一篇稿子定稿的時候,我內心的成就感是很難用言語來表達的。由於本書的寫作時間週期比較長,在中途的過程中由於工作繁忙,我也曾經有退出的想法,右軍和曹哥給了我巨大的鼓勵,讓我學會了堅持,同時我的妻子和我的父母也給了我巨大的支援,讓我能夠學會與團隊協作。對於我來講這本書對我的意義已經超過內容本身的範疇,我也希望通過這本書能夠給我的孩子樹立一個貴在堅持和勇於嘗試的榜樣。最後由於本人寫作水平有限,還請各位讀者朋友海涵和包容。
—程超 愛農驛站首席支付技術專家
Web應用相對於傳統的軟體,在服務的吞吐量方面有更高的要求,也是其面臨的主要難點之一。對於無狀態的應用服務,日益增加的吞吐量最終轉化成儲存層的壓力,使得後者既要解決資料一致性問題,又要考慮效能和吞吐量,成為Web應用效能的關鍵,因此已有的文件和書籍主要聚焦在它的優化上。
而快取作為應用服務節點和持久化儲存節點間的輔助層,分擔著後者的吞吐量需求,好的快取設計可以極大地降低儲存層的容量風險。本書從快取的原理、實現到快取在不同場景的實施方案給出系統化的介紹,為“好的快取設計”提供了指導。因此在受邀參與本書編寫時,既感到榮幸,又感到意義重大。
好的寫作依賴於熱情和投入,而書籍的編寫又需要長時間的毅力和堅持,這讓本書的編寫像是一段長跑裡需要不斷衝刺,也讓這份“意義重大”既是之於內容本身,也是之於作者的自我提升。感謝本書主筆於君澤的堅持,也感謝其他每一位作者的投入,他們鞭策著我在此領域學習和思考。限於自己的水平,謹希望所編寫的章節能為讀者們帶來一點幫助。內容有欠缺之處,也希望讀者批評指教,以此驅動這個領域的應用和實踐持續演進。
—邱碩 螞蟻金服技術專家
作為一個70後的老碼農,一個半吊子全棧工匠,在中生代技術(freshman Technology)社群有幸認識了很多志同道合的技術人。因為自己在公眾號(wireless_com)上的一篇關於快取基礎的隨筆而結識了@右軍,進而參與了本書的創作。在如今使用者體驗至上的時代,效能成為系統設計中的一種核心約束,在效能提升的各種技術手段中,快取為王。隨著技術的演進,快取同樣與時俱進。參與編寫的過程是一個對經驗梳理的過程,同時也是一個人提升的過程,尤其是和各位作者的切磋,獲益匪淺。每一位作者都犧牲了大量的閒暇時間,為本書的出版付出了巨大的努力。我感謝自己的妻兒,感謝家人對自己的支援,希望這本書能夠不負眾望。
—曹洪偉 渡鴉科技CTO
2014年加入京東後,負責重新設計詳情頁架構,它是一個讀服務,從前端瀏覽器到後端儲存無處不用快取,在實戰中通過運用大量快取技術提升效能、解決棘手問題,比如618期間有人來刷你的介面,簡單上個快取,會起到很大的保護作用,而且效果非常好。在運用快取時有許多需要注意的地方,比如快取一致性是否需要強一致;價格庫存資料能否快取,快取多久;快取分佈演算法是使用一致性雜湊還是取模演算法;熱點資料怎麼處理;快取崩潰與快速恢復等等。要用好快取並不是那麼容易的,希望讀者看完本書後能學到一招半式並應用到實戰中。
—張開濤 京東架構師
快取在整個高併發架構設計中是重中之重的關鍵一筆,所以用好快取是每次架構設計的必經之路。感謝右軍邀請我參與本書。我在本書中介紹了同程旅遊的鳳凰快取系統(phoenix)是如何雲化管理同程全部的快取叢集,並治理各應用中的快取使用的。也講述了一些我們為何要開發phoenix來解決快取問題的坑事。回首這些坑事,歷歷在目。各種困難、各種痛苦伴隨著鳳凰快取系統從構想到多個版本的更新上線。希望本書能夠給踩到同樣坑事的讀者帶來幫助和快樂。
—王曉波 同程旅遊首席架構師
這裡就不再複製右軍的那篇《為了初心的紀念》了,這些夥伴的文字都能在書中看到。
同時,感謝各位同道的大力提攜——
本書圍繞分散式快取的基礎概念、開源框架、應用案例三方面進行講解,從理論到實戰,循序漸進,深入淺出。看完部分章節後,意猶未盡,欲罷不能。國內基於真實應用案例的好書太少了,君澤以及他的朋友們做到了這一點,十分期待這本書能早日上市。
—黃勇特贊科技CTO、《架構探險》作者
分散式快取,是任何一個網際網路公司在成長過程中都會面臨的技術難題。本書作者結合理論研究和長期的網際網路行業從業經驗,深入淺出地介紹了分散式系統理論和分散式快取實戰,給業界以借鑑和啟發。本書是作者們的用心之作。
—朱攀德比軟體架構師
快取是軟體效能優化的大殺器,分散式快取是網站架構的必殺技,玩轉快取就玩轉了網站架構的半邊天。遺憾的是,目前市面上專門講述分散式快取的書籍不多,幸運的是本書就是一本這方面的專著。本書所有作者都是多年工作在網站架構一線的老司機,值得信賴,故將本書推薦給大家。
—李智慧《大型網站技術架構:核心原理與案例分析》作者
從十幾年前的Ehcache到最近幾年流行的Redis,從CDN、瀏覽器、API Gateway到後端微服務,以及資料訪問層的二級快取,快取無處不在。在體驗為王、唯快不破的時代,分散式快取是關鍵。本書從理論到實踐,詳細剖析了分散式快取的實現原理以及應用案例,是一本接地氣的好書。
—李林鋒華為PaaS平臺架構師、公司總裁技術創新獎獲得者
隨著現代應用對速度的要求越來越高,對快取機制的使用也越來越常見、越來越頻繁。本書以快取機制的基本原理為開始,逐漸過渡至快取系統的組建以及使用上面,全書分析和講解了多個快取系統,並列舉了快取的各種使用場景。如果你正準備構建自己的快取系統,又或者你想進一步學習更多與快取有關的知識,那麼這本書將是你不容錯過的一本書。
—黃健巨集《Redis設計與實現》作者
在計算機的世界裡,不論硬體層面還是軟體層面,快取都被廣泛應用於解決處理響應慢的瓶頸。我們在構建微服務架構系統的時候也一樣,快取是提升效能的關鍵技術手段。然而,快取在不同場景下的應用各有不同,要想用對快取、用好快取並不容易。本書針對不同的快取型別、實現手段、演算法策略做了非常細緻的講解,所以我推薦開發者和架構師們通過本書來對快取做一次全面的學習,這有助於更好地使用快取來優化我們的系統性能。
—翟永超《Spring Cloud微服務實戰》作者
不同的儲存介質,讀寫效能有很大的差異,價格亦是如此,效能越好的介質,價格就越高。把最常訪問的資料放在讀寫效能最好的裝置上,達到成本和效能的均衡,這便誕生了快取。本書的幾位作者都是大型分散式環境下歷練出來的沙場老將,豐富的經驗和翔實的案例,對於網際網路行業的技術人員來說,頗有裨益。
—陳康賢《大型分散式網站架構設計與實踐》 作者、阿里巴巴技術專家
如今的軟體系統,已經成為分散式系統的天下。分散式的語境對系統的設計與開發提出了完全不一樣的挑戰,作為提升效能的關鍵要素—快取,自然也不例外。在快取的命中、更新與失效,以及資料一致性保障等諸多方面,分散式快取應用的複雜度可能是按指數級增加的,許多問題都是我們在單機應用上無法涉獵的。倘若沒有分散式系統設計的實戰經驗,面對分散式快取的諸多問題,我們將束手無策。求助於網路?講解快取知識的文章是片鱗半爪,未成體系,故而無法窺其全部。本書的幾位作者都經歷過大型軟體系統的深度洗禮,書中內容都來自他們的一線實戰。閱讀本書,讀者就能站在他們的肩膀上看得更遠,實在是幸運!
—張逸民航資訊科技架構師、 《恰如其分的軟體架構》譯者
快取是當前網際網路的基石,極大彌補了關係型資料庫的天然缺陷。快取技術也是每一個架構師的必修課,從最初的Memcached,到Redis及各種擴充套件架構,發展至今已經有些百花齊放的感覺。本書難得地進行了全面梳理,並附以在電商、社交、廣告等典型場景下的大型應用。你值得擁有。
—蕭田國高效運維社群發起人、DevOpsDays中國聯合發起人
快取是網際網路架構中最關鍵的環節,本書作者在快取的效能及高可用方面有豐富的經驗,很高興看到他們通過本書分享了多年的實踐精華。
—楊衛華微博研發副總經理
. 網際網路高效能系統設計的核心之一就是快取系統的設計。本書集合了快取理論、開源快取系統、大規模業務中快取的具體實踐,全方位解讀了分散式快取設計,既能夠幫助讀者深入理解分散式快取系統,又提供了很好的架構設計案例供參考,細細品讀,受益良多!
—李運華阿里遊戲資深技術專家、 《面向物件葵花寶典》作者
正如Raven H 那樣,這本書還沒有現貨,現在可以預售了:http://product.china-pub.com/7017945#ml
還有 京東的預售地址:https://item.jd.com/12276070.html
迴歸標題,當技術成為一種情懷,就一起來把情懷變成鉛字吧,就像序言中寫到的,為了初心的紀念。