- 深入分布式緩存:從原理到實(shí)踐
- 于君澤
- 1781字
- 2019-01-03 15:38:01
前言
為了初心的紀(jì)念
一本歷時(shí)2年的書即將出版難免有些激動(dòng),同時(shí)亦有些忐忑。激動(dòng)在于這是一次有意義的社會(huì)實(shí)踐,諸多作者參與其中。至完稿時(shí),作者與發(fā)起計(jì)劃時(shí)已有些不同。一些朋友因?yàn)楦鞣N原因退出了,所以從堅(jiān)持的角度看,完成就意味著第一層面的成功。忐忑在于從初心出發(fā),通讀全稿仍有不足之處,諸位作者在具體實(shí)踐中所遇到的線上問題遠(yuǎn)非本書所能盡數(shù)容納。而最后精華的實(shí)踐章節(jié)亦經(jīng)過公司PR審核,略有刪減。再一層,設(shè)計(jì)和編碼很重要,運(yùn)維管理同等重要。一個(gè)好用、易用、穩(wěn)定的運(yùn)維工具也是選擇一套開源組件的重要參考因素,為了集中注意力,本書基本未覆蓋運(yùn)維部分的內(nèi)容,且待有心人續(xù)之。寫一本書,面世之后,作者或喜或憂,因?yàn)殛胺裰畽?quán)利在于讀者。
自覺而言,本書適合有一定研發(fā)經(jīng)驗(yàn)的朋友閱讀,它山之石,亦有攻玉之效。本書在邏輯上可分為三大篇章:基礎(chǔ)概念篇、開源框架篇、應(yīng)用案例篇。基礎(chǔ)概念除了基礎(chǔ)知識(shí),也介紹了一些分布式方面的方法和思路;開源框架篇遴選了近年來流行的框架(比如Redis),同時(shí)對(duì)淘寶Tair、EVCache也做了一些探索。在Redis大行其道之時(shí),對(duì)于Memcached及其周邊知識(shí)也做了介紹,某些公司還有大量的Memcached實(shí)例,比如微博、Twitter等。工具的革新總是源自需求的不斷被滿足,而根據(jù)被滿足的特性可以歸納其共性,比如解決單點(diǎn)高可用問題就是一個(gè)普適性問題,涉及主從模式、雙活模式等,可用性同時(shí)又和性能、數(shù)據(jù)一致性相關(guān)。緩存為性能而生,但“緩存”設(shè)施的存在就決定了這個(gè)設(shè)施要符合分布式理論的要求。業(yè)界介紹理論和概要,或介紹設(shè)計(jì)原則的書不少,但拿出具體實(shí)踐的稀有,比如新浪微博、Twitter這樣的社交SNS具體如何設(shè)計(jì)緩存。簡(jiǎn)約而不簡(jiǎn)單!在應(yīng)用案例篇,筆者邀請(qǐng)了對(duì)應(yīng)領(lǐng)域的專家為大家解讀案例,可以讓大家觸摸到真實(shí)的設(shè)計(jì)意圖。重要的是大家可以獲得不同場(chǎng)景下不同設(shè)計(jì)策略的啟發(fā)。
本書的產(chǎn)生要追溯到多年前。筆者一直對(duì)緩存技術(shù)抱有熱情,關(guān)注開源框架的發(fā)展,亦在工作中關(guān)注所遇、所見,乃至所聽的案例。從應(yīng)用程序研發(fā)方面看分布式緩存,并不需要所有的程序員都具備開發(fā)一套組件的能力,但是需要具備正確使用它的能力。正如易寶CTO陳斌老師所言:“解決雪崩問題的最好辦法是不發(fā)生雪崩”。不論是在硅谷互聯(lián)網(wǎng)公司里還是在國(guó)內(nèi)的互聯(lián)網(wǎng)平臺(tái)上,曾多次遇到過海量規(guī)模的交易瞬間吞噬平臺(tái)的悲慘故事。筆者亦了解一些緩存因?yàn)榇a缺陷或者使用不當(dāng)被擊穿的案例,不同數(shù)量級(jí)的請(qǐng)求產(chǎn)生的結(jié)果有天壤之別,不可不慎。
兩年前偶遇機(jī)械工業(yè)出版社的楊福川老師,攀談之下就萌發(fā)了創(chuàng)作本書的念頭。但由于工作繁忙且想呈現(xiàn)心中所想之提綱,故邀請(qǐng)一些不同場(chǎng)景下的專家共同完成。組團(tuán)過程多有波折,特別感動(dòng)的是北京的孔慶龍兄。他非常有興趣參與合作,但時(shí)逢小孩即將出生,為此,孔兄開了一次家庭會(huì)議來討論此事。雖然孔兄后續(xù)未決定參與,但可見其待人之真、之誠(chéng),是值得交的朋友。兩年間發(fā)生了不少事情,劉暻宇(leo)、何濤、曹洪偉和程超都換了工作。在本書項(xiàng)目開始時(shí)程超家的小朋友還未出生,現(xiàn)在都快2歲了。大家都很忙,大約1個(gè)月碰一下進(jìn)度,有時(shí)候可能一點(diǎn)進(jìn)展都沒有。期間,程超和leo都一度要退出,終堅(jiān)持了下來。還有些朋友中間退出了,同時(shí)有陳波、王曉波等朋友加入。到這時(shí),啥時(shí)候出版已不那么心焦了,水到渠成。就是問初心,我們有沒有盡自己的努力來呈現(xiàn)一份關(guān)于工具書的紀(jì)念?
特別感謝曹洪偉身體力行,按時(shí)按質(zhì)完成了分配的章節(jié),同時(shí)review了不少章節(jié),帶動(dòng)了這個(gè)虛擬組織邁上一個(gè)新臺(tái)階。這是一本書的編寫過程,是一次心靈的旅行,是一次基于互聯(lián)網(wǎng)的跨組織協(xié)同,也是關(guān)于工作和生活的點(diǎn)綴。感謝妻子曉娜對(duì)于我寫作的支持,她對(duì)于進(jìn)度的關(guān)注甚于我自己。她花了大量的時(shí)間輔導(dǎo)兩個(gè)小朋友的學(xué)習(xí),雖然周末有輔導(dǎo)班、家務(wù)等各種事項(xiàng),但我總能申請(qǐng)到一些時(shí)間來構(gòu)思本書。本書也是送給我的兩個(gè)寶貝的禮物。這個(gè)禮物是初心,想到什么有意義的事情要義無反顧去做;同時(shí),這個(gè)禮物也代表“堅(jiān)持”,如同寫作文一樣,觀察、總結(jié),然后不斷練習(xí)。
同時(shí)還要感謝所有的合作者,我們交叉review了所有章節(jié)。感謝機(jī)械工業(yè)出版社的楊福川老師、孫海亮老師。孫老師的審閱非常專業(yè),從讀者視角直面問題所在。朱攀兄弟review了部分章節(jié),在寫作過程中和高磊兄弟、丁浪兄弟也有交流,一并表示感謝。
囿于篇幅和知識(shí)局限,錯(cuò)漏之處難免,后續(xù)將通過勘誤和調(diào)整完善的形式持續(xù)優(yōu)化。為了初心的紀(jì)念,一次心靈的旅游!祝大家閱讀愉快!
于君澤(右軍)
- 大話PLC(輕松動(dòng)漫版)
- 新編Premiere Pro CC從入門到精通
- aelf區(qū)塊鏈應(yīng)用架構(gòu)指南
- Java Web程序設(shè)計(jì)
- 秒懂設(shè)計(jì)模式
- Building Mapping Applications with QGIS
- Web全棧工程師的自我修養(yǎng)
- Troubleshooting Citrix XenApp?
- 零基礎(chǔ)學(xué)C語(yǔ)言(第4版)
- Oracle SOA Suite 12c Administrator's Guide
- Android開發(fā)進(jìn)階實(shí)戰(zhàn):拓展與提升
- 程序員的算法趣題2
- JavaWeb入門經(jīng)典
- 51單片機(jī)C語(yǔ)言程序設(shè)計(jì)經(jīng)典實(shí)例(第3版)
- Visual FoxPro程序設(shè)計(jì)