關(guān)于我們
書(shū)單推薦
新書(shū)推薦
|
深入分布式緩存:從原理到實(shí)踐
書(shū)內(nèi)容在邏輯上共分為三個(gè)部分,按照從理論到實(shí)現(xiàn),再到實(shí)踐的思路撰寫(xiě)。首先介紹分布式緩存的背景知識(shí),對(duì)本書(shū)“分布式”和“緩存”這兩個(gè)關(guān)鍵詞進(jìn)行了全面的綜述,作為后續(xù)章節(jié)敘述的基礎(chǔ);第二部分介紹業(yè)界主流的緩存,關(guān)注其原理與實(shí)現(xiàn),囊括了Ehcache、Memcached、Redis、tair、EVCache、Aerospike等六個(gè)緩存或類(lèi)緩存系統(tǒng);后一部分討論緩存在互聯(lián)網(wǎng)系統(tǒng)中的實(shí)踐,從廣告、社交、新聞、電商、營(yíng)銷(xiāo)等五類(lèi)典型的互聯(lián)網(wǎng)應(yīng)用入手,分析它們面臨的性能穩(wěn)定性問(wèn)題以及如何利用分布式緩存解決這些問(wèn)題。
來(lái)自螞蟻金服、京東、網(wǎng)聯(lián)、新浪微博、同程旅游等公司的10余位一線(xiàn)架構(gòu)師用心之作;
阿里研究員蔣江偉、易寶支付CTO陳斌、普元信息CTO焦烈焱、特贊科技CTO黃勇、微博研發(fā)副總經(jīng)理?xiàng)钚l(wèi)華等專(zhuān)家聯(lián)袂推薦
深度解構(gòu)Ehcache、Memcached、Redis、tair、EVCache、Aerospike等6大緩存系統(tǒng)的技術(shù)原理,及其在電商、社交、廣告等典型場(chǎng)景中的應(yīng)用
Praise贊譽(yù)
本書(shū)圍繞分布式緩存的基礎(chǔ)概念、開(kāi)源框架、應(yīng)用案例三方面進(jìn)行講解,從理論到實(shí)戰(zhàn),循序漸進(jìn),深入淺出?赐瓴糠终鹿(jié)后,意猶未盡,欲罷不能。國(guó)內(nèi)基于真實(shí)應(yīng)用案例的好書(shū)太少了,君澤以及他的朋友們做到了這一點(diǎn),十分期待這本書(shū)能早日上市。
—黃勇特贊科技CTO、《架構(gòu)探險(xiǎn)》作者
分布式緩存,是任何一個(gè)互聯(lián)網(wǎng)公司在成長(zhǎng)過(guò)程中都會(huì)面臨的技術(shù)難題。本書(shū)作者結(jié)合理論研究和長(zhǎng)期的互聯(lián)網(wǎng)行業(yè)從業(yè)經(jīng)驗(yàn),深入淺出地介紹了分布式系統(tǒng)理論和分布式緩存實(shí)戰(zhàn),給業(yè)界以借鑒和啟發(fā)。本書(shū)是作者們的用心之作。
—朱攀德比軟件架構(gòu)師
緩存是軟件性能優(yōu)化的大殺器,分布式緩存是網(wǎng)站架構(gòu)的必殺技,玩轉(zhuǎn)緩存就玩轉(zhuǎn)了網(wǎng)站架構(gòu)的半邊天。遺憾的是,目前市面上專(zhuān)門(mén)講述分布式緩存的書(shū)籍不多,幸運(yùn)的是本書(shū)就是一本這方面的專(zhuān)著。本書(shū)所有作者都是多年工作在網(wǎng)站架構(gòu)一線(xiàn)的老司機(jī),值得信賴(lài),故將本書(shū)推薦給大家。
—李智慧《大型網(wǎng)站技術(shù)架構(gòu):核心原理與案例分析》作者
從十幾年前的Ehcache到最近幾年流行的Redis,從CDN、瀏覽器、API Gateway到后端微服務(wù),以及數(shù)據(jù)訪問(wèn)層的二級(jí)緩存,緩存無(wú)處不在。在體驗(yàn)為王、唯快不破的時(shí)代,分布式緩存是關(guān)鍵。本書(shū)從理論到實(shí)踐,詳細(xì)剖析了分布式緩存的實(shí)現(xiàn)原理以及應(yīng)用案例,是一本接地氣的好書(shū)。
—李林鋒華為PaaS平臺(tái)架構(gòu)師、公司總裁技術(shù)創(chuàng)新獎(jiǎng)獲得者
隨著現(xiàn)代應(yīng)用對(duì)速度的要求越來(lái)越高,對(duì)緩存機(jī)制的使用也越來(lái)越常見(jiàn)、越來(lái)越頻繁。本書(shū)以緩存機(jī)制的基本原理為開(kāi)始,逐漸過(guò)渡至緩存系統(tǒng)的組建以及使用上面,全書(shū)分析和講解了多個(gè)緩存系統(tǒng),并列舉了緩存的各種使用場(chǎng)景。如果你正準(zhǔn)備構(gòu)建自己的緩存系統(tǒng),又或者你想進(jìn)一步學(xué)習(xí)更多與緩存有關(guān)的知識(shí),那么這本書(shū)將是你不容錯(cuò)過(guò)的一本書(shū)。
—黃健宏《Redis設(shè)計(jì)與實(shí)現(xiàn)》作者
在計(jì)算機(jī)的世界里,不論硬件層面還是軟件層面,緩存都被廣泛應(yīng)用于解決處理響應(yīng)慢的瓶頸。我們?cè)跇?gòu)建微服務(wù)架構(gòu)系統(tǒng)的時(shí)候也一樣,緩存是提升性能的關(guān)鍵技術(shù)手段。然而,緩存在不同場(chǎng)景下的應(yīng)用各有不同,要想用對(duì)緩存、用好緩存并不容易。本書(shū)針對(duì)不同的緩存類(lèi)型、實(shí)現(xiàn)手段、算法策略做了非常細(xì)致的講解,所以我推薦開(kāi)發(fā)者和架構(gòu)師們通過(guò)本書(shū)來(lái)對(duì)緩存做一次全面的學(xué)習(xí),這有助于更好地使用緩存來(lái)優(yōu)化我們的系統(tǒng)性能。
—翟永超《Spring Cloud微服務(wù)實(shí)戰(zhàn)》作者
不同的存儲(chǔ)介質(zhì),讀寫(xiě)性能有很大的差異,價(jià)格亦是如此,性能越好的介質(zhì),價(jià)格就越高。把最常訪問(wèn)的數(shù)據(jù)放在讀寫(xiě)性能最好的設(shè)備上,達(dá)到成本和性能的均衡,這便誕生了緩存。本書(shū)的幾位作者都是大型分布式環(huán)境下歷練出來(lái)的沙場(chǎng)老將,豐富的經(jīng)驗(yàn)和翔實(shí)的案例,對(duì)于互聯(lián)網(wǎng)行業(yè)的技術(shù)人員來(lái)說(shuō),頗有裨益。
—陳康賢《大型分布式網(wǎng)站架構(gòu)設(shè)計(jì)與實(shí)踐》作者、阿里巴巴技術(shù)專(zhuān)家
如今的軟件系統(tǒng),已經(jīng)成為分布式系統(tǒng)的天下。分布式的語(yǔ)境對(duì)系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)提出了完全不一樣的挑戰(zhàn),作為提升性能的關(guān)鍵要素—緩存,自然也不例外。在緩存的命中、更新與失效,以及數(shù)據(jù)一致性保障等諸多方面,分布式緩存應(yīng)用的復(fù)雜度可能是按指數(shù)級(jí)增加的,許多問(wèn)題都是我們?cè)趩螜C(jī)應(yīng)用上無(wú)法涉獵的。倘若沒(méi)有分布式系統(tǒng)設(shè)計(jì)的實(shí)戰(zhàn)經(jīng)驗(yàn),面對(duì)分布式緩存的諸多問(wèn)題,我們將束手無(wú)策。求助于網(wǎng)絡(luò)?講解緩存知識(shí)的文章是片鱗半爪,未成體系,故而無(wú)法窺其全部。本書(shū)的幾位作者都經(jīng)歷過(guò)大型軟件系統(tǒng)的深度洗禮,書(shū)中內(nèi)容都來(lái)自他們的一線(xiàn)實(shí)戰(zhàn)。閱讀本書(shū),讀者就能站在他們的肩膀上看得更遠(yuǎn),實(shí)在是幸運(yùn)!
—張逸民航信息技術(shù)架構(gòu)師、《恰如其分的軟件架構(gòu)》譯者
緩存是當(dāng)前互聯(lián)網(wǎng)的基石,極大彌補(bǔ)了關(guān)系型數(shù)據(jù)庫(kù)的天然缺陷。緩存技術(shù)也是每一個(gè)架構(gòu)師的必修課,從最初的Memcached,到Redis及各種擴(kuò)展架構(gòu),發(fā)展至今已經(jīng)有些百花齊放的感覺(jué)。本書(shū)難得地進(jìn)行了全面梳理,并附以在電商、社交、廣告等典型場(chǎng)景下的大型應(yīng)用。你值得擁有。
—蕭田國(guó)高效運(yùn)維社區(qū)發(fā)起人、DevOpsDays中國(guó)聯(lián)合發(fā)起人
緩存是互聯(lián)網(wǎng)架構(gòu)中最關(guān)鍵的環(huán)節(jié),本書(shū)作者在緩存的性能及高可用方面有豐富的經(jīng)驗(yàn),很高興看到他們通過(guò)本書(shū)分享了多年的實(shí)踐精華。
—楊衛(wèi)華微博研發(fā)副總經(jīng)理
互聯(lián)網(wǎng)高性能系統(tǒng)設(shè)計(jì)的核心之一就是緩存系統(tǒng)的設(shè)計(jì)。本書(shū)集合了緩存理論、開(kāi)源緩存系統(tǒng)、大規(guī)模業(yè)務(wù)中緩存的具體實(shí)踐,全方位解讀了分布式緩存設(shè)計(jì),既能夠幫助讀者深入理解分布式緩存系統(tǒng),又提供了很好的架構(gòu)設(shè)計(jì)案例供參考,細(xì)細(xì)品讀,受益良多!
—李運(yùn)華阿里游戲資深技術(shù)專(zhuān)家、《面向?qū)ο罂▽毜洹纷髡?
推薦序1 Foreword
緩存技術(shù)的大規(guī)模使用是互聯(lián)網(wǎng)架構(gòu)區(qū)別于傳統(tǒng)IT技術(shù)最大的地方,對(duì)緩存的理解和使用的深度決定了是否能架構(gòu)出一個(gè)高性?xún)r(jià)比、高擴(kuò)展性的系統(tǒng)。阿里巴巴的系統(tǒng)使用了大量緩存技術(shù)(內(nèi)部緩存的產(chǎn)品名字叫Tair)。從2007年開(kāi)始,緩存服務(wù)器的增長(zhǎng)速度遠(yuǎn)遠(yuǎn)超過(guò)了數(shù)據(jù)庫(kù)服務(wù)器的增長(zhǎng)速度,而因?yàn)閷?duì)緩存的充分使用,系統(tǒng)具備的吞吐量能力的增速又遠(yuǎn)遠(yuǎn)高于緩存本身規(guī)模的增速。這是一件非常劃算的事情,成本下降非常明顯,大概使用1臺(tái)緩存服務(wù)器就可以完成以前4臺(tái)服務(wù)器的工作,從而為整體集群節(jié)省3臺(tái)服務(wù)器。
緩存代表了高性能的一項(xiàng)技術(shù),同時(shí)緩存也是系統(tǒng)架構(gòu)里非常核心的部分,一個(gè)系統(tǒng)緩存承擔(dān)著90%以上的熱點(diǎn)流量,緩存出一點(diǎn)點(diǎn)問(wèn)題,系統(tǒng)的可用性會(huì)馬上受到影響。在阿里巴巴的系統(tǒng)架構(gòu)討論會(huì)上,一般都會(huì)把做緩存產(chǎn)品的同事叫上,要求其在了解系統(tǒng)架構(gòu)規(guī)模的前提下給出流量規(guī)模、分區(qū)方案、熱點(diǎn)節(jié)點(diǎn)等方面的建議。負(fù)責(zé)緩存產(chǎn)品的同事往往也需要對(duì)業(yè)務(wù)有所了解,否則就不能設(shè)計(jì)出更好的產(chǎn)品。緩存的使用也使得架構(gòu)更加清晰、更容易理解,流量走向變得更簡(jiǎn)單,這使得系統(tǒng)持續(xù)可用性有了明顯的提升。
本書(shū)比較系統(tǒng)地介紹了緩存在各個(gè)層面的工作原理、作用和價(jià)值。理解了緩存的相關(guān)知識(shí),會(huì)對(duì)架構(gòu)一個(gè)高性能分布式系統(tǒng)有很大的幫助。
—小邪(蔣江偉)阿里研究員
Foreword推薦序2
無(wú)處不在的緩存,空間換時(shí)間的藝術(shù)
Cache這個(gè)詞,據(jù)說(shuō)來(lái)自于法語(yǔ),本意是當(dāng)CPU處理數(shù)據(jù)時(shí),先到Cache中去尋找,如果數(shù)據(jù)在之前的操作已經(jīng)讀取而被暫存其中,就不需要從主內(nèi)存(Main memory)中讀取。后來(lái)Cache的范圍有所擴(kuò)大,凡是位于速度相差較大的兩種硬件之間,用于協(xié)調(diào)兩者數(shù)據(jù)傳輸速度差異的結(jié)構(gòu),都稱(chēng)為Cache。
現(xiàn)在,我們談的緩存,已經(jīng)遠(yuǎn)遠(yuǎn)突破了原有的概念,在我看來(lái),緩存是一種通用的設(shè)計(jì)模式:這種模式利用增加存儲(chǔ)空間的方式,實(shí)現(xiàn)低速部件與高速部件之間的解耦。換而言之,只要實(shí)現(xiàn)了解耦的地方,就有存在緩存的可能,既然解耦是計(jì)算機(jī)系統(tǒng)架構(gòu)設(shè)計(jì)中最常用的手段,那么緩存就必將在計(jì)算機(jī)系統(tǒng)中無(wú)處不在。緩存用空間換時(shí)間的方式解決問(wèn)題,而空間不可能無(wú)限使用,使用緩存時(shí)我們通常會(huì)考慮如何選擇存儲(chǔ)方式、如何使用多級(jí)緩存節(jié)省空間、如何有效提高緩存的命中率、如何確定有效的更新策略等問(wèn)題,這些思考會(huì)有相當(dāng)普遍的適用性。
本書(shū)重點(diǎn)解讀了分布式系統(tǒng)下如何使用緩存。分布式系統(tǒng)中大規(guī)模使用緩存是從早期互聯(lián)網(wǎng)三大法寶(MemCache、反向代理、分庫(kù)分表)開(kāi)始的,利用這種集中式、大規(guī)模的緩存技術(shù),我們解決了數(shù)據(jù)庫(kù)低速I(mǎi)O與高速應(yīng)用之間的矛盾。我們也發(fā)現(xiàn),除了緩存的通用問(wèn)題之外,分布式系統(tǒng)緩存還需要解決更多的問(wèn)題,例如如何對(duì)多種類(lèi)型數(shù)據(jù)選擇不同的存儲(chǔ)方式、如何保證數(shù)據(jù)一致性、如何提高緩存自身的可用性、如何增強(qiáng)系統(tǒng)的可維護(hù)性。為了系統(tǒng)性解決這些問(wèn)題,分布式緩存逐漸變成了分布式架構(gòu)系統(tǒng)中的一個(gè)基礎(chǔ)設(shè)施。
緩存的使用雖然廣泛,但把緩存作為一種基礎(chǔ)設(shè)施的發(fā)展歷史并不長(zhǎng),大多數(shù)的商業(yè)化軟件比較復(fù)雜,主要以?xún)?nèi)存數(shù)據(jù)庫(kù)為主,而輕量型分布式緩存在不同場(chǎng)景下有不同的關(guān)注點(diǎn)和使用方式。君澤集合了一批老司機(jī),為大家展示了多種分布式系統(tǒng)中緩存的使用場(chǎng)景與方案,既有新浪微博這樣重量級(jí)社交平臺(tái)信息聚合、分發(fā)緩存的方法,也有海量廣告業(yè)務(wù)信息撮合的緩存模式;既有電商系統(tǒng)冷熱數(shù)據(jù)分離的緩存策略,也有對(duì)完整分布式系統(tǒng)緩存的技術(shù)選型和總結(jié)。
通過(guò)分布式、微服務(wù)架構(gòu),實(shí)現(xiàn)業(yè)務(wù)的云化/數(shù)字化,建立起的應(yīng)用生態(tài)是一個(gè)復(fù)雜的體系,其中方方面面的著作很多,但專(zhuān)注在緩存方面的還沒(méi)有,本書(shū)選擇了這個(gè)方向,就是希望能幫助我們形成一個(gè)完整的技術(shù)視圖,我相信這是作者們做這件事的初衷。
—焦烈焱普元信息CTO
Foreword推薦序3
緩存為王
君澤人很低調(diào)也很友善,第一次和他見(jiàn)面還是在2016年的年底。2017年的春夏之交,當(dāng)我正在機(jī)場(chǎng)為飛機(jī)晚點(diǎn)心煩不已的時(shí)候,收到了君澤的一條微信。內(nèi)容是說(shuō)他自己正在忙著準(zhǔn)備一本書(shū),而且把主要的章節(jié)內(nèi)容發(fā)給了我。在百無(wú)聊賴(lài)之間我就讀了起來(lái)。
這本書(shū)是君澤組織國(guó)內(nèi)互聯(lián)網(wǎng)技術(shù)領(lǐng)域具有實(shí)戰(zhàn)經(jīng)驗(yàn)的部分專(zhuān)家,分工合作聯(lián)合撰寫(xiě)的技術(shù)專(zhuān)著。以最常用、最有效果也最容易出問(wèn)題的緩存為主題。從基礎(chǔ)概念、開(kāi)源框架和應(yīng)用案例三個(gè)層次進(jìn)行了討論。給我的感覺(jué)是既有理論也有實(shí)踐,既有廣度也有深度,既有國(guó)外的開(kāi)源軟件也有國(guó)內(nèi)的具體實(shí)踐案例,是非常值得深入閱讀和細(xì)心揣摩的一本工具書(shū)。
給我印象比較深刻的是開(kāi)篇的“緩存為王”,因?yàn)榻衲昴瓿跷乙矊?zhuān)門(mén)寫(xiě)過(guò)一篇同名的文章,論述了從網(wǎng)絡(luò)靠近用戶(hù)端的CDN,到內(nèi)部網(wǎng)絡(luò)緩存,到應(yīng)用緩存,再到數(shù)據(jù)庫(kù)緩存的一系列緩存手段、技術(shù)和方法。不敢說(shuō)英雄所見(jiàn)略同,至少大家的關(guān)注點(diǎn)差不多。我還記得在當(dāng)初的文章中用了一句耐人尋味的話(huà),“解決雪崩問(wèn)題的最好辦法是不發(fā)生雪崩”。不論是在硅谷互聯(lián)網(wǎng)公司里還是在國(guó)內(nèi)的互聯(lián)網(wǎng)平臺(tái)上,曾多次遇到過(guò)海量規(guī)模的交易瞬間吞噬平臺(tái)的悲慘故事。核心的解決方案大同小異,都是通過(guò)緩存,逐層減少流量的沖擊,保護(hù)用戶(hù)的體驗(yàn)和平臺(tái)的服務(wù)可用。金融、財(cái)務(wù)行業(yè)有現(xiàn)金為王的說(shuō)法,互聯(lián)網(wǎng)技術(shù)行業(yè)用“緩存為王”清楚地概括了緩存的重要性。
這本書(shū)還深入淺出地討論了Ehcache、Memcached、Redis、Tair、EVCache等各種常用緩存開(kāi)源系統(tǒng)的方案及精粹。我讀過(guò)不少?lài)?guó)外有關(guān)緩存的技術(shù)專(zhuān)著,大多數(shù)偏原則和理論,具體實(shí)施方案和案例較少,特別是結(jié)合中國(guó)互聯(lián)網(wǎng)技術(shù)實(shí)踐的更少。所以君澤組織的這本書(shū)實(shí)際上填補(bǔ)了緩存技術(shù)文獻(xiàn)在這方面的空白。尤其是結(jié)合微博、社交和電商平臺(tái)的應(yīng)用實(shí)踐探討,對(duì)想學(xué)習(xí)如何利用緩存技術(shù)解決實(shí)踐中具體問(wèn)題的讀者大有裨益。
—陳斌易寶支付CTO
作者寄語(yǔ)Foreword
我在這部書(shū)里,負(fù)責(zé)編寫(xiě)了Tair章節(jié),合作編寫(xiě)了緩存周邊、動(dòng)手寫(xiě)緩存章節(jié),期間閱讀了大量的代碼、整理了非常多的資料,希望能帶給讀者需要的知識(shí)。在一年多的時(shí)間里,工作之余的大部分時(shí)間,都投入到了書(shū)的編寫(xiě)中。在這個(gè)過(guò)程中,家人給了我極大的支持,這里特別感謝我的太太李春花。一年多的時(shí)間里,有因?yàn)榇蟠俟ぷ髁考ぴ,有因(yàn)楣ぷ髯儎?dòng)導(dǎo)致工余時(shí)間減少,感謝右軍持續(xù)的鼓勵(lì),感謝一同編寫(xiě)本書(shū)的其他伙伴及時(shí)的幫助!
—?jiǎng)Z宇拍拍貸資深架構(gòu)師
很幸運(yùn),從2009年新浪微博發(fā)展之初就參與微博平臺(tái)系統(tǒng)的的研發(fā)及架構(gòu)工作,經(jīng)歷了微博從起步到當(dāng)前月活用戶(hù)數(shù)億的大型互聯(lián)網(wǎng)系統(tǒng)的技術(shù)演進(jìn)過(guò)程。系統(tǒng)演進(jìn)中經(jīng)歷了很多曲折、困難、不眠之夜,多虧了 TimYang、 zhulei、 liudaoru等那么多良師益友,一路上大家志同道合披荊斬棘,回頭看經(jīng)歷的種種困難卻正好是不斷進(jìn)步的印記。最后感謝 右軍的邀請(qǐng)和大力組織,感謝 Mis曉曉的包容和支持,正因?yàn)橛辛四銈,我才得以完成相關(guān)內(nèi)容的編寫(xiě)和完善。
—陳波新浪微博平臺(tái)架構(gòu)技術(shù)專(zhuān)家
從事數(shù)據(jù)訪問(wèn)層工作期間,會(huì)收到很多緩存方面的技術(shù)支持,在支持的同時(shí),對(duì)緩存也有了更深入的了解,也促使我思考如何將這些實(shí)踐經(jīng)驗(yàn)分享給更多的人。正好右軍邀請(qǐng)參與本書(shū)的寫(xiě)作,便欣然同意。寫(xiě)作期間,閱讀了大量的源碼,并和聯(lián)合作者相互交流緩存的原理及實(shí)踐經(jīng)驗(yàn),力求能夠呈現(xiàn)實(shí)用的技術(shù)。本書(shū)涉及的分布式緩存體系非常全面,從分布式、Redis、Memcached等原理的剖析到大量的一線(xiàn)實(shí)踐案例,并且對(duì)分布式緩存應(yīng)用當(dāng)中的一些痛點(diǎn)、難點(diǎn)進(jìn)行了深入的闡述。希望本書(shū)能夠?yàn)橄肓私饩彺婕夹g(shù)的讀者帶來(lái)快樂(lè)和收益。
—何濤唯品會(huì)架構(gòu)師
承右軍兄邀請(qǐng),有幸參與本書(shū)第11章“Aerospike原理及廣告業(yè)務(wù)應(yīng)用”的編寫(xiě)。本人雖然在互聯(lián)網(wǎng)廣告行業(yè)摸爬打滾十余年,從廣告網(wǎng)絡(luò)到SSP、DSP,再到蘋(píng)果應(yīng)用市場(chǎng)的推廣(ASO,ASM),從PC廣告到移動(dòng)原生廣告都有所涉及。對(duì)于廣告系統(tǒng)架構(gòu)搭建(存儲(chǔ),計(jì)算,緩存)以及系統(tǒng)的高可用較熟悉之外,對(duì)于寫(xiě)書(shū)確實(shí)是趕鴨子上架頭一回。又由于平時(shí)工作繁忙,家里瑣碎事情亦多,幾有放棄之念想,但此事絕非君子所為。若如此辜負(fù)右軍兄及其他幾位一同寫(xiě)書(shū)的弟兄,于心不忍,日后亦無(wú)顏面對(duì)他們。故硬著頭皮,把此章寫(xiě)完并交付出版社。聽(tīng)聞此章定稿之后,感覺(jué)如釋重負(fù),精神亦有所高漲。當(dāng)然,能夠堅(jiān)持下去的另一個(gè)重要原因是,其他各位參與編寫(xiě)本書(shū)的弟兄的鞭策和鼓勵(lì)。在這里要特別感謝右軍和老曹。由于本人水平有限,還望各位親愛(ài)的讀者海涵。
—宋慧慶勤誠(chéng)互動(dòng)高級(jí)架構(gòu)師
首先非常感謝右軍兄邀請(qǐng)我加入寫(xiě)作團(tuán)隊(duì),我主要負(fù)責(zé)第3章、第4章,同此參與合作編寫(xiě)了第6章。雖然我自己經(jīng)常寫(xiě)一些博客文章,但是寫(xiě)書(shū)和寫(xiě)博客是完全不一樣的過(guò)程,寫(xiě)書(shū)是要能夠帶領(lǐng)讀者逐步深入學(xué)習(xí),而不是簡(jiǎn)單地將知識(shí)點(diǎn)羅列出來(lái)。在這個(gè)過(guò)程中非常感謝右軍和孫海亮對(duì)我進(jìn)行認(rèn)真的指導(dǎo),讓我的寫(xiě)作水平有了非常大的提高。當(dāng)我第一篇稿子定稿的時(shí)候,我內(nèi)心的成就感是很難用言語(yǔ)來(lái)表達(dá)的。由于本書(shū)的寫(xiě)作時(shí)間周期比較長(zhǎng),在中途的過(guò)程中由于工作繁忙,我也曾經(jīng)有退出的想法,右軍和曹哥給了我巨大的鼓勵(lì),讓我學(xué)會(huì)了堅(jiān)持,同時(shí)我的妻子和我的父母也給了我巨大的支持,讓我能夠?qū)W會(huì)與團(tuán)隊(duì)協(xié)作。對(duì)于我來(lái)講這本書(shū)對(duì)我的意義已經(jīng)超過(guò)內(nèi)容本身的范疇,我也希望通過(guò)這本書(shū)能夠給我的孩子樹(shù)立一個(gè)貴在堅(jiān)持和勇于嘗試的榜樣。最后由于本人寫(xiě)作水平有限,還請(qǐng)各位讀者朋友海涵和包容。
—程超愛(ài)農(nóng)驛站首席支付技術(shù)專(zhuān)家
Web應(yīng)用相對(duì)于傳統(tǒng)的軟件,在服務(wù)的吞吐量方面有更高的要求,也是其面臨的主要難點(diǎn)之一。對(duì)于無(wú)狀態(tài)的應(yīng)用服務(wù),日益增加的吞吐量最終轉(zhuǎn)化成存儲(chǔ)層的壓力,使得后者既要解決數(shù)據(jù)一致性問(wèn)題,又要考慮性能和吞吐量,成為Web應(yīng)用性能的關(guān)鍵,因此已有的文檔和書(shū)籍主要聚焦在它的優(yōu)化上。
而緩存作為應(yīng)用服務(wù)節(jié)點(diǎn)和持久化存儲(chǔ)節(jié)點(diǎn)間的輔助層,分擔(dān)著后者的吞吐量需求,好的緩存設(shè)計(jì)可以極大地降低存儲(chǔ)層的容量風(fēng)險(xiǎn)。本書(shū)從緩存的原理、實(shí)現(xiàn)到緩存在不同場(chǎng)景的實(shí)施方案給出系統(tǒng)化的介紹,為“好的緩存設(shè)計(jì)”提供了指導(dǎo)。因此在受邀參與本書(shū)編寫(xiě)時(shí),既感到榮幸,又感到意義重大。
好的寫(xiě)作依賴(lài)于熱情和投入,而書(shū)籍的編寫(xiě)又需要長(zhǎng)時(shí)間的毅力和堅(jiān)持,這讓本書(shū)的編寫(xiě)像是一段長(zhǎng)跑里需要不斷沖刺,也讓這份“意義重大”既是之于內(nèi)容本身,也是之于作者的自我提升。感謝本書(shū)主筆于君澤的堅(jiān)持,也感謝其他每一位作者的投入,他們鞭策著我在此領(lǐng)域?qū)W習(xí)和思考。限于自己的水平,謹(jǐn)希望所編寫(xiě)的章節(jié)能為讀者們帶來(lái)一點(diǎn)幫助。內(nèi)容有欠缺之處,也希望讀者批評(píng)指教,以此驅(qū)動(dòng)這個(gè)領(lǐng)域的應(yīng)用和實(shí)踐持續(xù)演進(jìn)。
—邱碩螞蟻金服技術(shù)專(zhuān)家
作為一個(gè)70后的老碼農(nóng),一個(gè)半吊子全棧工匠,在中生代技術(shù)(freshman Technology)社區(qū)有幸認(rèn)識(shí)了很多志同道合的技術(shù)人。因?yàn)樽约涸诠娞?hào)(wireless_com)上的一篇關(guān)于緩存基礎(chǔ)的隨筆而結(jié)識(shí)了 右軍,進(jìn)而參與了本書(shū)的創(chuàng)作。在如今用戶(hù)體驗(yàn)至上的時(shí)代,性能成為系統(tǒng)設(shè)計(jì)中的一種核心約束,在性能提升的各種技術(shù)手段中,緩存為王。隨著技術(shù)的演進(jìn),緩存同樣與時(shí)俱進(jìn)。參與編寫(xiě)的過(guò)程是一個(gè)對(duì)經(jīng)驗(yàn)梳理的過(guò)程,同時(shí)也是一個(gè)人提升的過(guò)程,尤其是和各位作者的切磋,獲益匪淺。每一位作者都犧牲了大量的閑暇時(shí)間,為本書(shū)的出版付出了巨大的努力。我感謝自己的妻兒,感謝家人對(duì)自己的支持,希望這本書(shū)能夠不負(fù)眾望。
—曹洪偉渡鴉科技CTO
2014年加入京東后,負(fù)責(zé)重新設(shè)計(jì)詳情頁(yè)架構(gòu),它是一個(gè)讀服務(wù),從前端瀏覽器到后端存儲(chǔ)無(wú)處不用緩存,在實(shí)戰(zhàn)中通過(guò)運(yùn)用大量緩存技術(shù)提升性能、解決棘手問(wèn)題,比如618期間有人來(lái)刷你的接口,簡(jiǎn)單上個(gè)緩存,會(huì)起到很大的保護(hù)作用,而且效果非常好。在運(yùn)用緩存時(shí)有許多需要注意的地方,比如緩存一致性是否需要強(qiáng)一致;價(jià)格庫(kù)存數(shù)據(jù)能否緩存,緩存多久;緩存分布算法是使用一致性哈希還是取模算法;熱點(diǎn)數(shù)據(jù)怎么處理;緩存崩潰與快速恢復(fù)等等。要用好緩存并不是那么容易的,希望讀者看完本書(shū)后能學(xué)到一招半式并應(yīng)用到實(shí)戰(zhàn)中。
—張開(kāi)濤京東架構(gòu)師
緩存在整個(gè)高并發(fā)架構(gòu)設(shè)計(jì)中是重中之重的關(guān)鍵一筆,所以用好緩存是每次架構(gòu)設(shè)計(jì)的必經(jīng)之路。感謝右軍邀請(qǐng)我參與本書(shū)。我在本書(shū)中介紹了同程旅游的鳳凰緩存系統(tǒng)(phoenix)是如何云化管理同程全部的緩存集群,并治理各應(yīng)用中的緩存使用的。也講述了一些我們?yōu)楹我_(kāi)發(fā)phoenix來(lái)解決緩存問(wèn)題的坑事。回首這些坑事,歷歷在目。各種困難、各種痛苦伴隨著鳳凰緩存系統(tǒng)從構(gòu)想到多個(gè)版本的更新上線(xiàn)。希望本書(shū)能夠給踩到同樣坑事的讀者帶來(lái)幫助和快樂(lè)。
—王曉波同程旅游首席架構(gòu)師
Preface前言
為了初心的紀(jì)念
一本歷時(shí)2年的書(shū)即將出版難免有些激動(dòng),同時(shí)亦有些忐忑。激動(dòng)在于這是一次有意義的社會(huì)實(shí)踐,諸多作者參與其中。至完稿時(shí),作者與發(fā)起計(jì)劃時(shí)已有些不同。一些朋友因?yàn)楦鞣N原因退出了,所以從堅(jiān)持的角度看,完成就意味著第一層面的成功。忐忑在于從初心出發(fā),通讀全稿仍有不足之處,諸位作者在具體實(shí)踐中所遇到的線(xiàn)上問(wèn)題遠(yuǎn)非本書(shū)所能盡數(shù)容納。而最后精華的實(shí)踐章節(jié)亦經(jīng)過(guò)公司PR審核,略有刪減。再一層,設(shè)計(jì)和編碼很重要,運(yùn)維管理同等重要。一個(gè)好用、易用、穩(wěn)定的運(yùn)維工具也是選擇一套開(kāi)源組件的重要參考因素,為了集中注意力,本書(shū)基本未覆蓋運(yùn)維部分的內(nèi)容,且待有心人續(xù)之。寫(xiě)一本書(shū),面世之后,作者或喜或憂(yōu),因?yàn)殛胺裰畽?quán)利在于讀者。
自覺(jué)而言,本書(shū)適合有一定研發(fā)經(jīng)驗(yàn)的朋友閱讀,它山之石,亦有攻玉之效。本書(shū)在邏輯上可分為三大篇章:基礎(chǔ)概念篇、開(kāi)源框架篇、應(yīng)用案例篇。基礎(chǔ)概念除了基礎(chǔ)知識(shí),也介紹了一些分布式方面的方法和思路;開(kāi)源框架篇遴選了近年來(lái)流行的框架(比如Redis),同時(shí)對(duì)淘寶Tair、EVCache也做了一些探索。在Redis大行其道之時(shí),對(duì)于Memcached及其周邊知識(shí)也做了介紹,某些公司還有大量的Memcached實(shí)例,比如微博、Twitter等。工具的革新總是源自需求的不斷被滿(mǎn)足,而根據(jù)被滿(mǎn)足的特性可以歸納其共性,比如解決單點(diǎn)高可用問(wèn)題就是一個(gè)普適性問(wèn)題,涉及主從模式、雙活模式等,可用性同時(shí)又和性能、數(shù)據(jù)一致性相關(guān)。緩存為性能而生,但“緩存”設(shè)施的存在就決定了這個(gè)設(shè)施要符合分布式理論的要求。業(yè)界介紹理論和概要,或介紹設(shè)計(jì)原則的書(shū)不少,但拿出具體實(shí)踐的稀有,比如新浪微博、Twitter這樣的社交SNS具體如何設(shè)計(jì)緩存。簡(jiǎn)約而不簡(jiǎn)單!在應(yīng)用案例篇,筆者邀請(qǐng)了對(duì)應(yīng)領(lǐng)域的專(zhuān)家為大家解讀案例,可以讓大家觸摸到真實(shí)的設(shè)計(jì)意圖。重要的是大家可以獲得不同場(chǎng)景下不同設(shè)計(jì)策略的啟發(fā)。
本書(shū)的產(chǎn)生要追溯到多年前。筆者一直對(duì)緩存技術(shù)抱有熱情,關(guān)注開(kāi)源框架的發(fā)展,亦在工作中關(guān)注所遇、所見(jiàn),乃至所聽(tīng)的案例。從應(yīng)用程序研發(fā)方面看分布式緩存,并不需要所有的程序員都具備開(kāi)發(fā)一套組件的能力,但是需要具備正確使用它的能力。正如易寶CTO陳斌老師所言:“解決雪崩問(wèn)題的最好辦法是不發(fā)生雪崩”。不論是在硅谷互聯(lián)網(wǎng)公司里還是在國(guó)內(nèi)的互聯(lián)網(wǎng)平臺(tái)上,曾多次遇到過(guò)海量規(guī)模的交易瞬間吞噬平臺(tái)的悲慘故事。筆者亦了解一些緩存因?yàn)榇a缺陷或者使用不當(dāng)被擊穿的案例,不同數(shù)量級(jí)的請(qǐng)求產(chǎn)生的結(jié)果有天壤之別,不可不慎。
兩年前偶遇機(jī)械工業(yè)出版社的楊福川老師,攀談之下就萌發(fā)了創(chuàng)作本書(shū)的念頭。但由于工作繁忙且想呈現(xiàn)心中所想之提綱,故邀請(qǐng)一些不同場(chǎng)景下的專(zhuān)家共同完成。組團(tuán)過(guò)程多有波折,特別感動(dòng)的是北京的孔慶龍兄。他非常有興趣參與合作,但時(shí)逢小孩即將出生,為此,孔兄開(kāi)了一次家庭會(huì)議來(lái)討論此事。雖然孔兄后續(xù)未決定參與,但可見(jiàn)其待人之真、之誠(chéng),是值得交的朋友。兩年間發(fā)生了不少事情,劉暻宇(leo)、何濤、曹洪偉和程超都換了工作。在本書(shū)項(xiàng)目開(kāi)始時(shí)程超家的小朋友還未出生,現(xiàn)在都快2歲了。大家都很忙,大約1個(gè)月碰一下進(jìn)度,有時(shí)候可能一點(diǎn)進(jìn)展都沒(méi)有。期間,程超和leo都一度要退出,終堅(jiān)持了下來(lái)。還有些朋友中間退出了,同時(shí)有陳波、王曉波等朋友加入。到這時(shí),啥時(shí)候出版已不那么心焦了,水到渠成。就是問(wèn)初心,我們有沒(méi)有盡自己的努力來(lái)呈現(xiàn)一份關(guān)于工具書(shū)的紀(jì)念?
特別感謝曹洪偉身體力行,按時(shí)按質(zhì)完成了分配的章節(jié),同時(shí)review了不少章節(jié),帶動(dòng)了這個(gè)虛擬組織邁上一個(gè)新臺(tái)階。這是一本書(shū)的編寫(xiě)過(guò)程,是一次心靈的旅行,是一次基于互聯(lián)網(wǎng)的跨組織協(xié)同,也是關(guān)于工作和生活的點(diǎn)綴。感謝妻子曉娜對(duì)于我寫(xiě)作的支持,她對(duì)于進(jìn)度的關(guān)注甚于我自己。她花了大量的時(shí)間輔導(dǎo)兩個(gè)小朋友的學(xué)習(xí),雖然周末有輔導(dǎo)班、家務(wù)等各種事項(xiàng),但我總能申請(qǐng)到一些時(shí)間來(lái)構(gòu)思本書(shū)。本書(shū)也是送給我的兩個(gè)寶貝的禮物。這個(gè)禮物是初心,想到什么有意義的事情要義無(wú)反顧去做;同時(shí),這個(gè)禮物也代表“堅(jiān)持”,如同寫(xiě)作文一樣,觀察、總結(jié),然后不斷練習(xí)。
同時(shí)還要感謝所有的合作者,我們交叉review了所有章節(jié)。感謝機(jī)械工業(yè)出版社的楊福川老師、孫海亮老師。孫老師的審閱非常專(zhuān)業(yè),從讀者視角直面問(wèn)題所在。朱攀兄弟review了部分章節(jié),在寫(xiě)作過(guò)程中和高磊兄弟、丁浪兄弟也有交流,一并表示感謝。
囿于篇幅和知識(shí)局限,錯(cuò)漏之處難免,后續(xù)將通過(guò)勘誤和調(diào)整完善的形式持續(xù)優(yōu)化。為了初心的紀(jì)念,一次心靈的旅游!祝大家閱讀愉快!
于君澤(右軍)
于君澤:螞蟻金服高級(jí)技術(shù)專(zhuān)家、花名右軍,IT從業(yè)超過(guò)十五年。對(duì)高并發(fā)、分布式架構(gòu)、內(nèi)建質(zhì)量、研發(fā)管理有一些心得。維護(hù)公眾號(hào)“技術(shù)瑣話(huà)”。
程超:“愛(ài)農(nóng)驛站”首席支付技術(shù)專(zhuān)家。InfoQ、中生代技術(shù)社區(qū)簽約作者,CSDN博主專(zhuān)家,Spring for all社區(qū)貢獻(xiàn)者,擅長(zhǎng)微服務(wù)和分布式架構(gòu)。
邱碩:螞蟻金服技術(shù)專(zhuān)家,花名牧丘,在阿里和支付寶從事中間件、應(yīng)用系統(tǒng)的性能/穩(wěn)定性技術(shù)風(fēng)險(xiǎn)相關(guān)工作。Cobar主要作者。
曹洪偉:70后老碼農(nóng),全棧工匠一枚,服務(wù)過(guò)多家世界500強(qiáng),后連續(xù)創(chuàng)業(yè),現(xiàn)任渡鴉科技CTO,致力于人工智能硬件,維護(hù)有“wireless_com”公眾號(hào)和博客
劉璟宇:拍拍貸資深架構(gòu)師,十余年互聯(lián)網(wǎng)行業(yè)從業(yè)經(jīng)驗(yàn),主要研究云計(jì)算、服務(wù)化基礎(chǔ)框架以及各種基礎(chǔ)組件。
張開(kāi)濤:京東架構(gòu)師,暢銷(xiāo)書(shū)《億級(jí)流量網(wǎng)站架構(gòu)核心技術(shù)》作者,維護(hù)有“開(kāi)濤的博客”公眾號(hào)。
何濤:網(wǎng)聯(lián)高級(jí)架構(gòu)師,對(duì)高流量下的架構(gòu)設(shè)計(jì)有豐富的實(shí)踐經(jīng)驗(yàn),熱衷于高可用、高并發(fā)和高性能的架構(gòu)研究。
宋慧慶:勤誠(chéng)互動(dòng)研發(fā)總監(jiān)兼高級(jí)架構(gòu)師,十年互聯(lián)網(wǎng)廣告行業(yè)經(jīng)驗(yàn),主要研究高可用架構(gòu)技術(shù),為流量變現(xiàn)提供更好的服務(wù)。
陳波:新浪微博技術(shù)專(zhuān)家,負(fù)責(zé)平臺(tái)基礎(chǔ)架構(gòu)及優(yōu)化,經(jīng)歷了微博從起步到成為數(shù)億用戶(hù)的大型互聯(lián)網(wǎng)系統(tǒng)的演進(jìn)過(guò)程。
王曉波:同程旅游首席架構(gòu)師,10余年互聯(lián)網(wǎng)行業(yè)從業(yè)經(jīng)驗(yàn),負(fù)責(zé)中間件、微服務(wù)、分布式架構(gòu)、運(yùn)維、安全等方面工作。
Contents 目錄
贊譽(yù)
推薦序1
推薦序2
推薦序3
作者寄語(yǔ)
前言
第1章 緩存為王1
1.1 什么是緩存?1
1.2 為什么使用緩存?2
1.2.1 從用戶(hù)體驗(yàn)說(shuō)起3
1.2.2 關(guān)于系統(tǒng)的性能3
1.3 從網(wǎng)站的架構(gòu)發(fā)展看緩存4
1.4 客戶(hù)端緩存5
1.4.1 頁(yè)面緩存6
1.4.2 瀏覽器緩存7
1.4.3 APP上的緩存8
1.5 網(wǎng)絡(luò)中的緩存11
1.5.1 Web代理緩存11
1.5.2 邊緣緩存12
1.6 服務(wù)端緩存14
1.6.1 數(shù)據(jù)庫(kù)緩存14
1.6.2 平臺(tái)級(jí)緩存16
1.6.3 應(yīng)用級(jí)緩存18
第2章 分布式系統(tǒng)理論24
2.1 分布式系統(tǒng)概論24
2.2 分布式系統(tǒng)概念26
2.2.1 進(jìn)程與線(xiàn)程26
2.2.2 并發(fā)26
2.2.3 鎖26
2.2.4 并行27
2.2.5 集群27
2.2.6 狀態(tài)特性28
2.2.7 系統(tǒng)重發(fā)與冪等性28
2.2.8 硬件異常30
2.3 分布式系統(tǒng)理論31
2.3.1 CAP理論32
2.3.2 CAP理論澄清34
2.3.3 Paxos35
2.3.4 2PC38
2.3.5 3PC39
2.3.6 Raft40
2.3.7 Lease機(jī)制41
2.3.8 解決“腦裂”問(wèn)題43
2.3.9 Quorum NWR44
2.3.10 MVCC45
2.3.11 Gossip46
2.4 分布式系統(tǒng)設(shè)計(jì)策略49
2.4.1 心跳檢測(cè)50
2.4.2 高可用設(shè)計(jì)50
2.4.3 容錯(cuò)性52
2.4.4 負(fù)載均衡53
2.5 分布式系統(tǒng)設(shè)計(jì)實(shí)踐54
2.5.1 全局ID生成54
2.5.2 哈希取模56
2.5.3 一致性哈希57
2.5.4 路由表58
2.5.5 數(shù)據(jù)拆分58
第3章 動(dòng)手寫(xiě)緩存60
3.1 緩存定義的規(guī)范60
3.1.1 新規(guī)范的主要內(nèi)容及特性60
3.1.2 新規(guī)范的API介紹61
3.2 緩存框架的實(shí)現(xiàn)62
3.2.1 前期準(zhǔn)備63
3.2.2 緩存的架構(gòu)介紹63
3.2.3 設(shè)計(jì)思路以及知識(shí)點(diǎn)詳解64
3.3 緩存框架的使用示例74
第4章 Ehcache與Guava Cache76
4.1 Ehcache的主要特性76
4.2 Ehcache使用介紹77
4.2.1 Ehcache架構(gòu)圖77
4.2.2 緩存數(shù)據(jù)過(guò)期策略78
4.2.3 Ehcache緩存的基本用法81
4.2.4 在Spring中使用Ehcache83
4.3 Ehcache集群介紹85
4.3.1 集群的方式86
4.3.2 如何配置集群88
4.4 Ehcache的適用場(chǎng)景89
4.5 Guava Cache的使用92
4.5.1 Guava Cache的適用場(chǎng)景92
4.5.2 Guava Cache的創(chuàng)建方式93
4.5.3 緩存數(shù)據(jù)刪除95
4.5.4 并發(fā)場(chǎng)景下的使用95
4.6 本章小結(jié)96
第5章 從Memcached開(kāi)始了解集中式緩存97
5.1 Memcached基本知識(shí)98
5.1.1 Memcached的操作命令98
5.1.2 Memcached使用場(chǎng)景100
5.1.3 Memcached特征100
5.1.4 Memcached的一些問(wèn)題101
5.2 Memcached內(nèi)存存儲(chǔ)102
5.2.1 Slab Allocation機(jī)制102
5.2.2 使用 Growth Factor進(jìn)行調(diào)優(yōu)104
5.2.3 Item105
5.3 典型問(wèn)題解析106
5.3.1 過(guò)期機(jī)制106
5.3.2 哈希算法107
5.3.3 熱點(diǎn)問(wèn)題108
5.3.4 緩存與數(shù)據(jù)庫(kù)的更新問(wèn)題108
5.3.5 別把緩存當(dāng)存儲(chǔ)109
5.3.6 命名空間110
5.3.7 CAS110
5.4 Memcached客戶(hù)端分析110
5.4.1 Memcached的Client111
5.4.2 Spymemcached設(shè)計(jì)思想解析111
5.5 Memcached周邊工具發(fā)展117
第6章 Memcached 周邊技術(shù)119
6.1 Twemcache119
6.1.1 Twemcache 的設(shè)計(jì)原理120
6.1.2 Twemcache的安裝及命令行詳解122
6.1.3 基于Java的Twemcache用法125
6.2 Twemproxy126
6.2.1 Twemproxy的常用部署模式127
6.2.2 Twemproxy的可擴(kuò)展性129
6.2.3 Twemproxy源代碼簡(jiǎn)析131
6.3 Mcrouter137
6.3.1 Mcrouter路由算法138
6.3.2 典型的使用場(chǎng)景139
6.3.3 Mcrouter的可擴(kuò)展性142
6.3.4 源碼簡(jiǎn)要解析144
第7章 Redis探秘148
7.1 數(shù)據(jù)結(jié)構(gòu)148
7.1.1 value對(duì)象的通用結(jié)構(gòu)149
7.1.2 String149
7.1.3 List152
7.1.4 Map155
7.1.5 Set157
7.1.6 Sorted-Set159
7.2 客戶(hù)端與服務(wù)器的交互160
7.2.1 客戶(hù)端/服務(wù)器協(xié)議161
7.2.2 請(qǐng)求/響應(yīng)模式163
7.2.3 事務(wù)模式164
7.2.4 腳本模式168
7.2.5 發(fā)布/訂閱模式169
7.3 單機(jī)處理邏輯171
7.3.1 多路復(fù)用171
7.3.2 定時(shí)任務(wù)處理173
7.4 持久化174
7.4.1 基于全量模式的持久化174
7.4.2 基于增量模式的持久化176
7.4.3 基于增量模式持久化的優(yōu)化178
第8章 分布式Redis180
8.1 水平拆分(sharding)181
8.1.1 數(shù)據(jù)分布181
8.1.2 請(qǐng)求路由182
8.2 主備復(fù)制(replication)182
8.2.1 主備復(fù)制流程183
8.2.2 斷點(diǎn)續(xù)傳183
8.3 故障轉(zhuǎn)移(failover)184
8.3.1 sentinel間的相互感知185
8.3.2 master的故障發(fā)現(xiàn)186
8.3.3 failover決策186
8.4 Redis Cluster187
8.4.1 拓?fù)浣Y(jié)構(gòu)187
8.4.2 配置的一致性188
8.4.3 sharding190
8.4.4 failover193
8.4.5 可用性和性能196
第9章 Tair探秘198
9.1 Tair總體架構(gòu)198
9.2 Config Server簡(jiǎn)介199
9.3 Data Server簡(jiǎn)介201
9.4 Tair高可用和負(fù)載均衡204
9.4.1 對(duì)照表204
9.4.2 數(shù)據(jù)遷移219
9.5 存儲(chǔ)引擎220
9.6 Tair的API222
9.6.1 key/value相關(guān)API223
9.6.2 prefix相關(guān)的API226
第10章 EVCache探秘229
10.1 EVCache項(xiàng)目介紹230
10.1.1 EVCache的由來(lái)231
10.1.
你還可能感興趣
我要評(píng)論
|