關(guān)于我們
書單推薦
新書推薦
|
分布式服務(wù)架構(gòu)
對(duì)Java分布式微服務(wù)系統(tǒng)架構(gòu)設(shè)計(jì)的核心要點(diǎn)逐一介紹,重點(diǎn)的主題配有代碼、設(shè)計(jì)文檔和開源項(xiàng)目,每個(gè)主題獨(dú)立成章,代碼下載可在實(shí)踐中引用,讓讀者不不但可以了解大規(guī)模分布式微服務(wù)系統(tǒng)是怎么設(shè)計(jì)的,也可以直接將代碼應(yīng)用到實(shí)際項(xiàng)目中,大大提高了讀者在現(xiàn)實(shí)中互聯(lián)網(wǎng)項(xiàng)目實(shí)現(xiàn)的效率。
《分布式服務(wù)架構(gòu):原理、設(shè)計(jì)與實(shí)戰(zhàn)》以分布式服務(wù)架構(gòu)為主線,重點(diǎn)介紹了保證服務(wù)化架構(gòu)的一致性、高性能、高可用的解決方案和至佳實(shí)踐,并介紹了微服務(wù)架構(gòu)中倡導(dǎo)的容器化過程,以及敏捷開發(fā)和敏捷上線的流程,對(duì)分布式服務(wù)系統(tǒng)架構(gòu)設(shè)計(jì)的核心要點(diǎn)逐一介紹,對(duì)重點(diǎn)主題配有代碼、設(shè)計(jì)文檔和開源項(xiàng)目,每個(gè)主題獨(dú)立成章,讓讀者不但可以了解大規(guī)模分布式微服務(wù)系統(tǒng)是怎么設(shè)計(jì)的,還可以在了解原理的同時(shí),了解作者在實(shí)際項(xiàng)目中積累的至佳實(shí)踐和模式,大大提高互聯(lián)網(wǎng)項(xiàng)目的實(shí)現(xiàn)效率。要點(diǎn)如下。
√介紹服務(wù)化和微服務(wù)架構(gòu)的背景和演化。
√介紹微服務(wù)中的常見問題和解決模式。
√提出解決分布式系統(tǒng)一致性問題的有效方案和設(shè)計(jì)模式。
√介紹酸堿平衡和至終一致性等理論,對(duì)分布式服務(wù)間出現(xiàn)的服務(wù)超時(shí)問題給出解決辦法。
√提出非功能質(zhì)量架構(gòu)設(shè)計(jì)的方法論,舉例說明系統(tǒng)的性能和容量的預(yù)估,并介紹壓測(cè)的方法論和至佳實(shí)踐。
√提出服務(wù)化的日志系統(tǒng)的技術(shù)選型依據(jù)和大數(shù)據(jù)日志系統(tǒng)建設(shè)的原理、設(shè)計(jì)與實(shí)戰(zhàn),包括ELK等流行框架的介紹與使用。
√詳細(xì)介紹基于調(diào)用的APM系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),并給出實(shí)現(xiàn)的至佳實(shí)踐。
√介紹線上應(yīng)急和技術(shù)攻關(guān)的流程和重點(diǎn),并總結(jié)Java服務(wù)化系統(tǒng)應(yīng)急中需要使用的Java虛擬機(jī)命令、Linux命令和定制化開發(fā)的命令等。
√服務(wù)化系統(tǒng)容器化的過程分析和至佳實(shí)踐。
√服務(wù)化系統(tǒng)中敏捷開發(fā)的過程和工具。
推薦序一
經(jīng)過艷鵬多年的實(shí)踐經(jīng)驗(yàn)積累及長時(shí)間的精心準(zhǔn)備,本書終于與大家見面了,筆者很榮幸能夠成為本書的首批讀者。
隨著時(shí)代的不斷發(fā)展,分布式服務(wù)架構(gòu)日益流行,已經(jīng)從SOA服務(wù)化發(fā)展到了微服務(wù)架構(gòu)。有過驚喜,有過質(zhì)疑,但這未能阻擋分布式服務(wù)架構(gòu)在互聯(lián)網(wǎng)行業(yè)里的普遍應(yīng)用。然而,事物總是有兩面性的,豐富的新框架及新技術(shù)層出不窮,給項(xiàng)目的技術(shù)決策者帶來了技術(shù)選型上的困難。此外,在互聯(lián)網(wǎng)交易越來越復(fù)雜、規(guī)模越來越龐大的背景下,解決分布式服務(wù)間的事務(wù)問題、業(yè)務(wù)一致性問題、可用性問題、穩(wěn)定性問題等的困難以指數(shù)級(jí)增加。
本書以一位在IT行業(yè)從事多年分布式服務(wù)架構(gòu)工作的資深老兵的視角,剖析了針對(duì)分布式系統(tǒng)架構(gòu)的解決方案和設(shè)計(jì)模式。書中的每一章、每一節(jié)都是作者對(duì)多年線上系統(tǒng)架構(gòu)設(shè)計(jì)實(shí)踐的總結(jié)。
此外,有別于市面上的其他架構(gòu)書籍,本書在講解基礎(chǔ)理論和方法論的基礎(chǔ)上,提供了大量的實(shí)際操作和詳盡的開發(fā)命令解析,讀者可以直接把書中的方法和案例應(yīng)用到實(shí)際工作中。
如果你想成為一名優(yōu)秀的高并發(fā)服務(wù)架構(gòu)師,那么本書將為你提供實(shí)踐指引;如果你在大規(guī)模、高并發(fā)交易系統(tǒng)中遇到問題,那么本書將為你提供解決這些問題的理論與實(shí)踐,令你腦洞大開,輕松解決問題!
姚建東
易寶支付產(chǎn)品VP
推薦序二
本書作者艷鵬和楊彪秉著“開放、分享”的態(tài)度,將在互聯(lián)網(wǎng)高并發(fā)服務(wù)建設(shè)過程中總結(jié)的經(jīng)驗(yàn)、設(shè)計(jì)模式和最佳實(shí)踐整理成書。本書內(nèi)容涉及分布式服務(wù)架構(gòu)的原理、設(shè)計(jì)與實(shí)戰(zhàn),不但介紹了微服務(wù)的背景,還介紹了服務(wù)化的演進(jìn)歷史,并詳細(xì)介紹了保證一致性、高性能、高可用性的解決方案,重點(diǎn)講解了建設(shè)大數(shù)據(jù)日志系統(tǒng)和調(diào)用鏈跟蹤系統(tǒng)等內(nèi)容。大數(shù)據(jù)日志系統(tǒng)和調(diào)用鏈跟蹤系統(tǒng)是每一個(gè)微服務(wù)體系都應(yīng)該包含的核心基礎(chǔ)設(shè)施,為服務(wù)的穩(wěn)定性、可用性提供了有效保證,為在應(yīng)急和技術(shù)攻關(guān)過程中發(fā)現(xiàn)問題、定位問題和恢復(fù)問題提供了有效幫助。
本書逐一介紹分布式微服務(wù)系統(tǒng)架構(gòu)設(shè)計(jì)的核心要點(diǎn),對(duì)重點(diǎn)主題提供了代碼、設(shè)計(jì)文檔和開源項(xiàng)目,每個(gè)主題獨(dú)立成章,且相關(guān)代碼可應(yīng)用于實(shí)際項(xiàng)目中。通過閱讀本書,讀者不但可以了解大規(guī)模分布式微服務(wù)系統(tǒng)是怎么設(shè)計(jì)的,也可以學(xué)到實(shí)際服務(wù)化項(xiàng)目中的設(shè)計(jì)模式及最佳實(shí)踐,可大大提高互聯(lián)網(wǎng)項(xiàng)目的實(shí)施效率。
分布式服務(wù)架構(gòu)涉及的面很廣且難以列舉,涉及架構(gòu)方法論、設(shè)計(jì)模式、如何快速入門紛繁龐雜的技術(shù)棧、如何對(duì)方案進(jìn)行選型、如何定位和解決問題,等等。筆者也曾面試過許多候選者,其中,能利用所了解的知識(shí)較好地解決問題的人不多,能利用當(dāng)前流行的技術(shù)對(duì)復(fù)雜問題進(jìn)行技術(shù)選型并給出合理架構(gòu)方案的人更是鳳毛麟角。
筆者曾在Google、樂視等互聯(lián)網(wǎng)企業(yè)工作,作為一名持續(xù)創(chuàng)業(yè)者,曾想將自己從業(yè)以來的項(xiàng)目開發(fā)經(jīng)驗(yàn)、問題追蹤、技術(shù)選型等積累成文字,為給更多的開發(fā)者提供參考,使其少走彎路,但一直礙于各種瑣事未能成行。當(dāng)艷鵬將書稿呈現(xiàn)在筆者面前并讓筆者為本書作序時(shí),筆者驚喜萬分。本書作者有著多年的一線互聯(lián)網(wǎng)開發(fā)經(jīng)驗(yàn),根據(jù)自己的實(shí)際生產(chǎn)經(jīng)驗(yàn),將微服務(wù)、分布式系統(tǒng)、一致性、性能與容量評(píng)估、大數(shù)據(jù)日志分析系統(tǒng)、調(diào)用鏈系統(tǒng)、容器等結(jié)合一些生動(dòng)、實(shí)用的案例進(jìn)行了全面介紹,對(duì)一些項(xiàng)目敏捷開發(fā)和技術(shù)選型也給出了自己的經(jīng)驗(yàn),同時(shí)對(duì)日常運(yùn)維手段也進(jìn)行了分享。本書雖然篇幅不大但實(shí)用性很強(qiáng),能夠指導(dǎo)實(shí)際互聯(lián)網(wǎng)架構(gòu)的設(shè)計(jì)與實(shí)現(xiàn)。本書主題明確、淺顯易懂,適合初學(xué)者和有一定經(jīng)驗(yàn)的開發(fā)者和架構(gòu)師閱讀和使用。
于立柱
福佑卡車CTO
推薦序三
本書作者楊彪和艷鵬都是筆者認(rèn)識(shí)多年的老朋友,筆者見證了他們從勤奮青年到老成持重、獨(dú)當(dāng)一面,從一線的核心開發(fā)人員到架構(gòu)師再到技術(shù)經(jīng)理和技術(shù)總監(jiān),從傳統(tǒng)IT行業(yè)到互聯(lián)網(wǎng)行業(yè)的心路歷程。
筆者在近幾年面試過很多人,發(fā)現(xiàn)了一些有意思的現(xiàn)象:很多自稱架構(gòu)師的人在同你講架構(gòu)時(shí)可謂滔滔不絕,各種技術(shù)名詞像說相聲一樣從其嘴中說出來,但是你稍微追問一下,就會(huì)發(fā)現(xiàn)其存在很多基本概念的缺失,例如自稱精通高并發(fā)的人說不出其所謂的高并發(fā)瓶頸在哪里,自稱能夠開發(fā)高可用和高性能系統(tǒng)的人說不出高可用和高性能的衡量標(biāo)準(zhǔn)是什么,并且其所謂的大數(shù)據(jù)處理系統(tǒng)實(shí)際上只有百萬條數(shù)據(jù),等等。
架構(gòu)師雖然聽起來和工程師沒有太大區(qū)別,技術(shù)經(jīng)理和技術(shù)總監(jiān)也都會(huì)對(duì)核心技術(shù)有所把控,但本質(zhì)上架構(gòu)師要引領(lǐng)技術(shù)的發(fā)展,用技術(shù)服務(wù)于業(yè)務(wù),為業(yè)務(wù)產(chǎn)生價(jià)值,更通俗地說,架構(gòu)師需要讓技術(shù)變現(xiàn),為客戶賺取更多的利潤,或者為客戶節(jié)省更多的成本,因此,架構(gòu)師任重而道遠(yuǎn)。在互聯(lián)網(wǎng)高速發(fā)展的今天,如何成為一名優(yōu)秀的架構(gòu)師是一個(gè)值得研究的課題,本書正是為那些已經(jīng)成為架構(gòu)師或者即將成為架構(gòu)師的人準(zhǔn)備的一本好書。作為第一批閱讀本書的讀者,筆者驚嘆于本書中的內(nèi)容如此豐富,囊括了保證互聯(lián)網(wǎng)線上高并發(fā)服務(wù)的方方面面,不僅包括分布式服務(wù)的背景和演化,還包括保證分布式服務(wù)化系統(tǒng)一致性、高性能、高可用的方法論和最佳實(shí)踐,而這些正是每一個(gè)互聯(lián)網(wǎng)公司都需要探索和應(yīng)用的理論和方法。筆者推薦每一名互聯(lián)網(wǎng)架構(gòu)師都閱讀本書,相信你一定能從中學(xué)到自己急需的技術(shù)、方案和方法。
本書作者有從花旗銀行、甲骨文等知名外企到新浪微博、易寶支付等大型互聯(lián)網(wǎng)平臺(tái),從傳統(tǒng)的核心行業(yè)到火熱的游戲行業(yè),從社交產(chǎn)品到金融支付產(chǎn)品等方方面面的工作經(jīng)驗(yàn),既深刻了解傳統(tǒng)行業(yè)的系統(tǒng)規(guī)范、流程和功能的復(fù)雜性,又深諳互聯(lián)網(wǎng)行業(yè)的高性能、可用性、高并發(fā)、可伸縮等高級(jí)特性。本書涉及的分布式服務(wù)架構(gòu)原理、設(shè)計(jì)和實(shí)戰(zhàn),皆來自于作者在實(shí)際工作中提煉的精華,從理論到落地,皆言之有物。無論是對(duì)于軟件工程師、測(cè)試工程師、運(yùn)維工程師、軟件架構(gòu)師、技術(shù)經(jīng)理、技術(shù)總監(jiān),還是對(duì)于資深I(lǐng)T人士來說,本書都極具參考價(jià)值。
楊延峰
開心網(wǎng)副總裁
前言
自互聯(lián)網(wǎng)誕生以來,其簡單、敏捷的微服務(wù)架構(gòu)開發(fā)理念和實(shí)踐逐漸成為主流,在逐漸發(fā)展的環(huán)境下和技術(shù)演化的過程中,迅速突破互聯(lián)網(wǎng)行業(yè)并波及軟件行業(yè)的各個(gè)領(lǐng)域。然而,這種突飛猛進(jìn)的表面下卻是龍魚混雜、泥沙俱下。一方面,很多人在這個(gè)信息爆炸的時(shí)代應(yīng)對(duì)海量信息的處理能力比較有限;另一方面,也有人致力于將優(yōu)秀的理論和實(shí)踐相結(jié)合,希望運(yùn)用所學(xué)的高效解決方案應(yīng)對(duì)越來越復(fù)雜的問題。不論對(duì)與錯(cuò),人類對(duì)技術(shù)進(jìn)步的追求從未停歇。
毋庸置疑,IT行業(yè)的發(fā)展進(jìn)入了一個(gè)加速分化的時(shí)代,將優(yōu)秀的解決方案推向大眾的成本和速度將成為決定企業(yè)生存與否的關(guān)鍵因素之一。優(yōu)秀的互聯(lián)網(wǎng)企業(yè)已裝備精良并持續(xù)優(yōu)化,而那些還需不斷進(jìn)步的企業(yè)也在互相競爭。盡管在這個(gè)信息量巨大的媒體時(shí)代,部分優(yōu)秀的企業(yè)在應(yīng)對(duì)分布式服務(wù)架構(gòu)時(shí)已經(jīng)有了更多的認(rèn)識(shí)且技術(shù)越來越完善,但也有很多快速發(fā)展的企業(yè)在變得更優(yōu)秀這條道路上任重而道遠(yuǎn)。
很多非常優(yōu)秀的開發(fā)人員和架構(gòu)師能成為給公司帶來長遠(yuǎn)利益的人,在變革的節(jié)點(diǎn)上推波助瀾。本書將帶你走進(jìn)分布式服務(wù)架構(gòu)的世界,在這個(gè)世界里不停探索和汲取經(jīng)驗(yàn)。領(lǐng)先于別人是一種要求,這也是很多公司贏得先機(jī)的關(guān)鍵所在,無論服務(wù)于IT的哪個(gè)領(lǐng)域,每個(gè)IT人都有理由重視架構(gòu)這門藝術(shù)。希望本書對(duì)于軟件工程師、測(cè)試工程師、軟件架構(gòu)師及深耕于IT行業(yè)的老兵來說,都能帶給其所期望的內(nèi)容,并幫助其解決和發(fā)現(xiàn)問題,也能幫助其不斷探索。
本書以當(dāng)前流行的分布式服務(wù)架構(gòu)為主線,講解了分布式服務(wù)架構(gòu)的原理、設(shè)計(jì)與實(shí)踐。本書首先介紹了分布式服務(wù)架構(gòu)的背景和演化,然后深入闡述了保證分布式服務(wù)的一致性、高性能、高可用性等的設(shè)計(jì)思想和可實(shí)施的方案;然后介紹了大規(guī)模、高并發(fā)線上服務(wù)的應(yīng)急流程和技術(shù)攻關(guān)過程,并給出了發(fā)現(xiàn)和定位問題的有效、常用工具集;最后詳細(xì)介紹了分布式服務(wù)架構(gòu)中容器化過程分析、敏捷開發(fā)和上線的工具,為從事高并發(fā)服務(wù)架構(gòu)的開發(fā)人員提供了保障系統(tǒng)健康運(yùn)行的方法論和最佳實(shí)踐。
感謝電子工業(yè)出版社張國霞編輯的認(rèn)真態(tài)度和辛勤工作,使得本書能夠最終順利完成。
感謝筆者的技術(shù)小伙伴賈博巖提供了日志相關(guān)的資料和示例,讓筆者能夠快速完成第4章大數(shù)據(jù)日志系統(tǒng)方面的內(nèi)容。
感謝張曉輝、周偉、霍勇同學(xué)在編輯階段參與閱稿,并提出專業(yè)的意見。
感謝英語專業(yè)的高材生曹燕琴小同學(xué)在文字上提供的幫助。
最后,感謝筆者的家人和朋友在本書寫作過程中提供的支持和幫助。
李艷鵬
李艷鵬
現(xiàn)任易寶支付產(chǎn)品中心首席架構(gòu)師,曾在花旗銀行、甲骨文、路透社、新浪微博等大型IT互聯(lián)網(wǎng)公司擔(dān)任技術(shù)負(fù)責(zé)人和架構(gòu)師,現(xiàn)專注于大規(guī)模、高并發(fā)的線上和線下支付平臺(tái)的應(yīng)用架構(gòu)和技術(shù)架構(gòu)的規(guī)劃與落地,負(fù)責(zé)交易、支付、渠道、出款、風(fēng)控、對(duì)賬等核心支付系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn),對(duì)移動(dòng)支付、聚合支付、合規(guī)賬戶、掃碼支付、標(biāo)記化支付等業(yè)務(wù)場(chǎng)景有產(chǎn)品應(yīng)用架構(gòu)規(guī)劃與落地的實(shí)踐經(jīng)驗(yàn)。
楊 彪
現(xiàn)任某創(chuàng)業(yè)公司技術(shù)總監(jiān)及合伙人,在互聯(lián)網(wǎng)和游戲行業(yè)有近10年工作經(jīng)驗(yàn),曾在酷我音樂盒、人人游戲和掌趣科技等上市公司擔(dān)任核心研發(fā)職位,在互聯(lián)網(wǎng)公司做過日活躍用戶量達(dá)千萬的項(xiàng)目,也在游戲公司做過多款月流水千萬以上的游戲。喜歡研究問題,追求前沿技術(shù),學(xué)無止境。
第1章 分布式微服務(wù)架構(gòu)設(shè)計(jì)原理 1
1.1 從傳統(tǒng)單體架構(gòu)到服務(wù)化架構(gòu) 2
1.1.1 JEE架構(gòu) 2
1.1.2 SSH架構(gòu) 5
1.1.3 服務(wù)化架構(gòu) 8
1.2 從服務(wù)化到微服務(wù) 11
1.2.1 微服務(wù)架構(gòu)的產(chǎn)生 12
1.2.2 微服務(wù)架構(gòu)與傳統(tǒng)單體架構(gòu)的對(duì)比 13
1.2.3 微服務(wù)架構(gòu)與SOA服務(wù)化的對(duì)比 15
1.3 微服務(wù)架構(gòu)的核心要點(diǎn)和實(shí)現(xiàn)原理 16
1.3.1 微服務(wù)架構(gòu)中職能團(tuán)隊(duì)的劃分 16
1.3.2 微服務(wù)的去中心化治理 18
1.3.3 微服務(wù)的交互模式 18
1.3.4 微服務(wù)的分解和組合模式 22
1.3.5 微服務(wù)的容錯(cuò)模式 35
1.3.6 微服務(wù)的粒度 41
1.4 Java平臺(tái)微服務(wù)架構(gòu)的項(xiàng)目組織形式 42
1.4.1 微服務(wù)項(xiàng)目的依賴關(guān)系 42
1.4.2 微服務(wù)項(xiàng)目的層級(jí)結(jié)構(gòu) 43
1.4.3 微服務(wù)項(xiàng)目的持續(xù)發(fā)布 45
1.5 服務(wù)化管理和治理框架的技術(shù)選型 45
1.5.1 RPC 46
1.5.2 服務(wù)化 47
1.5.3 微服務(wù) 49
1.6 本章小結(jié) 52
第2章 徹底解決分布式系統(tǒng)一致性的問題 54
2.1 什么是一致性 55
2.2 一致性問題 56
2.3 解決一致性問題的模式和思路 57
2.3.1 酸堿平衡理論 58
2.3.2 分布式一致性協(xié)議 61
2.3.3 保證最終一致性的模式 67
2.4 超時(shí)處理模式 75
2.4.1 微服務(wù)的交互模式 76
2.4.2 同步與異步的抉擇 77
2.4.3 交互模式下超時(shí)問題的解決方案 78
2.4.4 超時(shí)補(bǔ)償?shù)脑瓌t 85
2.5 遷移開關(guān)的設(shè)計(jì) 87
2.6 本章小結(jié) 88
第3章 服務(wù)化系統(tǒng)容量評(píng)估和性能保障 89
3.1 架構(gòu)設(shè)計(jì)與非功能質(zhì)量 90
3.2 全面的非功能質(zhì)量需求 91
3.2.1 非功能質(zhì)量需求的概述 91
3.2.2 非功能質(zhì)量需求的具體指標(biāo) 92
3.3 典型的技術(shù)評(píng)審提綱 97
3.3.1 現(xiàn)狀 97
3.3.2 需求 98
3.3.3 方案描述 98
3.3.4 方案對(duì)比 99
3.3.5 風(fēng)險(xiǎn)評(píng)估 100
3.3.6 工作量評(píng)估 100
3.4 性能和容量評(píng)估經(jīng)典案例 100
3.4.1 背景 100
3.4.2 目標(biāo)數(shù)據(jù)量級(jí) 101
3.4.3 量級(jí)評(píng)估標(biāo)準(zhǔn) 101
3.4.4 方案 102
3.4.5 小結(jié) 107
3.5 性能評(píng)估參考標(biāo)準(zhǔn) 108
3.5.1 常用的應(yīng)用層性能指標(biāo)參考標(biāo)準(zhǔn) 108
3.5.2 常用的系統(tǒng)層性能指標(biāo)參考標(biāo)準(zhǔn) 109
3.6 性能測(cè)試方案的設(shè)計(jì)和最佳實(shí)踐 112
3.6.1 明確壓測(cè)目標(biāo) 112
3.6.2 壓測(cè)場(chǎng)景設(shè)計(jì)和壓測(cè)方案制定 114
3.6.3 準(zhǔn)備壓測(cè)環(huán)境 121
3.6.4 壓測(cè)的執(zhí)行 122
3.6.5 問題修復(fù)和系統(tǒng)優(yōu)化 123
3.7 有用的壓測(cè)工具 123
3.7.1 ab 123
3.7.2 jmeter 125
3.7.3 mysqlslap 125
3.7.4 sysbench 129
3.7.5 dd 134
3.7.6 LoadRunner 135
3.7.7 hprof 136
3.8 本章小結(jié) 138
第4章 大數(shù)據(jù)日志系統(tǒng)的構(gòu)建 140
4.1 開源日志框架的原理分析與應(yīng)用實(shí)踐 142
4.1.1 JDK Logger 142
4.1.2 Apache Commons Logging 143
4.1.3 Apache Log4j 147
4.1.4 Slf4j 156
4.1.5 Logback 160
4.1.6 Apache Log4j 2 164
4.2 日志系統(tǒng)的優(yōu)化和最佳實(shí)踐 168
4.2.1 開發(fā)人員的日志意識(shí) 168
4.2.2 日志級(jí)別的設(shè)置 168
4.2.3 日志的數(shù)量和大小 169
4.2.4 切割方式 170
4.2.5 日志格式的配置 170
4.2.6 一行日志導(dǎo)致的線上事故 177
4.3 大數(shù)據(jù)日志系統(tǒng)的原理與設(shè)計(jì) 178
4.3.1 通用架構(gòu)和設(shè)計(jì) 179
4.3.2 日志采集器 180
4.3.3 日志緩沖隊(duì)列 186
4.3.4 日志解析器 187
4.3.5 日志存儲(chǔ)和搜索 187
4.3.6 日志展示系統(tǒng) 188
4.3.7 監(jiān)控和報(bào)警 188
4.3.8 日志系統(tǒng)的容量和性能評(píng)估 188
4.4 ELK系統(tǒng)的構(gòu)建與使用 190
4.4.1 Elasticsearch 191
4.4.2 Logstash 193
4.4.3 Kibana 196
4.5 本章小結(jié) 198
第5章 基于調(diào)用鏈的服務(wù)治理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 199
5.1 APM系統(tǒng)簡介 200
5.1.1 優(yōu)秀的開源APM系統(tǒng) 200
5.1.2 國內(nèi)商業(yè)APM產(chǎn)品的介紹 202
5.2 調(diào)用鏈跟蹤的原理 203
5.2.1 分布式系統(tǒng)的遠(yuǎn)程調(diào)用過程 204
5.2.2 TraceID 207
5.2.3 SpanID 208
5.2.4 業(yè)務(wù)鏈 210
5.3 調(diào)用鏈跟蹤系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 211
5.3.1 整體架構(gòu) 211
5.3.2 TraceID和SpanID在服務(wù)間的傳遞 213
5.3.3 采集器的設(shè)計(jì)與實(shí)現(xiàn) 217
5.3.4 處理器的設(shè)計(jì)與實(shí)現(xiàn) 222
5.3.5 調(diào)用鏈系統(tǒng)的展示 225
5.4 本章小結(jié) 226
第6章 Java服務(wù)的線上應(yīng)急和技術(shù)攻關(guān) 227
6.1 海恩法則和墨菲定律 227
6.2 線上應(yīng)急的目標(biāo)、原則和方法 229
6.2.1 應(yīng)急目標(biāo) 229
6.2.2 應(yīng)急原則 229
6.2.3 線上應(yīng)急的方法和流程 230
6.3 技術(shù)攻關(guān)的方法論 233
6.4 環(huán)境搭建和示例服務(wù)啟動(dòng) 236
6.5 高效的服務(wù)化治理腳本 240
6.5.1 show-busiest-java-threads 240
6.5.2 find-in-jar 243
6.5.3 grep-in-jar 244
6.5.4 jar-conflict-detect 245
6.5.5 http-spy 247
6.5.6 show-mysql-qps 248
6.5.7 小結(jié) 249
6.6 JVM提供的監(jiān)控命令 249
6.6.1 jad 249
6.6.2 btrace 250
6.6.3 jmap 252
6.6.4 jstat 255
6.6.5 jstack 256
6.6.6 jinfo 258
6.6.7 其他命令 258
6.6.8 小結(jié) 259
6.7 重要的Linux基礎(chǔ)命令 260
6.7.1 必不可少的基礎(chǔ)命令和工具 260
6.7.2 查看活動(dòng)進(jìn)程的命令 268
6.7.3 窺探內(nèi)存的命令 270
6.7.4 針對(duì)CPU使用情況的監(jiān)控命令 272
6.7.5 監(jiān)控磁盤I/O的命令 273
6.7.6 查看網(wǎng)絡(luò)信息和網(wǎng)絡(luò)監(jiān)控命令 275
6.7.7 Linux系統(tǒng)的高級(jí)工具 287
6.7.8 /proc文件系統(tǒng) 288
6.7.9 摘要命令 288
6.7.10 小結(jié) 290
6.8 現(xiàn)實(shí)中的應(yīng)急和攻關(guān)案例 291
6.8.1 一次OOM事故的分析和定位 291
6.8.2 一次CPU 100%的線上事故排查 301
6.9 本章小結(jié) 304
第7章 服務(wù)的容器化過程 306
7.1 容器vs虛擬機(jī) 306
7.1.1 什么是虛擬機(jī) 306
7.1.2 什么是容器 306
7.1.3 容器和虛擬機(jī)的區(qū)別 307
7.1.4 容器主要解決的問題 307
7.1.5 Docker的優(yōu)勢(shì) 310
7.2 Docker實(shí)戰(zhàn) 311
7.2.1 Docker的架構(gòu) 311
7.2.2 Docker的安裝 315
7.2.3 Docker初體驗(yàn) 319
7.2.4 Docker后臺(tái)服務(wù)的管理 322
7.2.5 Docker的客戶端命令 328
7.2.6 Docker Compose編排工具的使用 372
7.3 容器化項(xiàng)目 379
7.3.1 傳統(tǒng)的應(yīng)用部署 380
7.3.2 將應(yīng)用程序部署在虛擬機(jī)上 380
7.3.3 容器化部署應(yīng)用 381
7.3.4 Docker實(shí)現(xiàn)的應(yīng)用容器化示例 382
7.4 本章小結(jié) 384
第8章 敏捷開發(fā)2.0的自動(dòng)化工具 385
8.1 什么是敏捷開發(fā)2.0 385
8.1.1 常用的4種開發(fā)模式 385
8.1.2 什么是DevOps 390
8.1.3 敏捷開發(fā)2.0解決的問題 392
8.2 敏捷開發(fā)的自動(dòng)化流程 393
8.2.1 持續(xù)集成 393
8.2.2 持續(xù)交付和持續(xù)部署 397
8.3 敏捷開發(fā)的常用自動(dòng)化工具 400
8.3.1 分布式版本控制工具Git 400
8.3.2 持續(xù)集成和持續(xù)交付工具Jenkins 410
8.3.3 基礎(chǔ)平臺(tái)管理工具SaltStack 418
8.3.4 Docker容器化工具 421
8.4 本章小結(jié) 422
你還可能感興趣
我要評(píng)論
|