-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

分布式服務架構:原理、設計與實戰

( 簡體 字)
作者:李艷鵬,楊彪類別:1. -> 程式設計 -> 綜合
譯者:
出版社:電子工業出版社分布式服務架構:原理、設計與實戰 3dWoo書號: 47223
詢問書籍請說出此書號!

缺書
NT售價: 445

出版日:8/1/2017
頁數:400
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787121315787
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

推薦序一
經過艷鵬多年的實踐經驗積累及長時間的精心準備,本書終于與大家見面了,筆者很榮幸能夠成為本書的首批讀者。
隨著時代的不斷發展,分布式服務架構日益流行,已經從SOA服務化發展到了微服務架構。有過驚喜,有過質疑,但這未能阻擋分布式服務架構在互聯網行業里的普遍應用。然而,事物總是有兩面性的,豐富的新框架及新技術層出不窮,給項目的技術決策者帶來了技術選型上的困難。此外,在互聯網交易越來越復雜、規模越來越龐大的背景下,解決分布式服務間的事務問題、業務一致性問題、可用性問題、穩定性問題等的困難以指數級增加。
本書以一位在IT行業從事多年分布式服務架構工作的資深老兵的視角,剖析了針對分布式系統架構的解決方案和設計模式。書中的每一章、每一節都是作者對多年線上系統架構設計實踐的總結。
此外,有別于市面上的其他架構書籍,本書在講解基礎理論和方法論的基礎上,提供了大量的實際操作和詳盡的開發命令解析,讀者可以直接把書中的方法和案例應用到實際工作中。
如果你想成為一名優秀的高并發服務架構師,那么本書將為你提供實踐指引;如果你在大規模、高并發交易系統中遇到問題,那么本書將為你提供解決這些問題的理論與實踐,令你腦洞大開,輕松解決問題!
姚建東
易寶支付產品VP

推薦序二
本書作者艷鵬和楊彪秉著“開放、分享”的態度,將在互聯網高并發服務建設過程中總結的經驗、設計模式和最佳實踐整理成書。本書內容涉及分布式服務架構的原理、設計與實戰,不但介紹了微服務的背景,還介紹了服務化的演進歷史,并詳細介紹了保證一致性、高性能、高可用性的解決方案,重點講解了建設大數據日志系統和調用鏈跟蹤系統等內容。大數據日志系統和調用鏈跟蹤系統是每一個微服務體系都應該包含的核心基礎設施,為服務的穩定性、可用性提供了有效保證,為在應急和技術攻關過程中發現問題、定位問題和恢復問題提供了有效幫助。
本書逐一介紹分布式微服務系統架構設計的核心要點,對重點主題提供了代碼、設計文檔和開源項目,每個主題獨立成章,且相關代碼可應用于實際項目中。通過閱讀本書,讀者不但可以了解大規模分布式微服務系統是怎么設計的,也可以學到實際服務化項目中的設計模式及最佳實踐,可大大提高互聯網項目的實施效率。
分布式服務架構涉及的面很廣且難以列舉,涉及架構方法論、設計模式、如何快速入門紛繁龐雜的技術棧、如何對方案進行選型、如何定位和解決問題,等等。筆者也曾面試過許多候選者,其中,能利用所了解的知識較好地解決問題的人不多,能利用當前流行的技術對復雜問題進行技術選型并給出合理架構方案的人更是鳳毛麟角。
筆者曾在Google、樂視等互聯網企業工作,作為一名持續創業者,曾想將自己從業以來的項目開發經驗、問題追蹤、技術選型等積累成文字,為給更多的開發者提供參考,使其少走彎路,但一直礙于各種瑣事未能成行。當艷鵬將書稿呈現在筆者面前并讓筆者為本書作序時,筆者驚喜萬分。本書作者有著多年的一線互聯網開發經驗,根據自己的實際生產經驗,將微服務、分布式系統、一致性、性能與容量評估、大數據日志分析系統、調用鏈系統、容器等結合一些生動、實用的案例進行了全面介紹,對一些項目敏捷開發和技術選型也給出了自己的經驗,同時對日常運維手段也進行了分享。本書雖然篇幅不大但實用性很強,能夠指導實際互聯網架構的設計與實現。本書主題明確、淺顯易懂,適合初學者和有一定經驗的開發者和架構師閱讀和使用。
于立柱
福佑卡車CTO

推薦序三
本書作者楊彪和艷鵬都是筆者認識多年的老朋友,筆者見證了他們從勤奮青年到老成持重、獨當一面,從一線的核心開發人員到架構師再到技術經理和技術總監,從傳統IT行業到互聯網行業的心路歷程。
筆者在近幾年面試過很多人,發現了一些有意思的現象:很多自稱架構師的人在同你講架構時可謂滔滔不絕,各種技術名詞像說相聲一樣從其嘴中說出來,但是你稍微追問一下,就會發現其存在很多基本概念的缺失,例如自稱精通高并發的人說不出其所謂的高并發瓶頸在哪里,自稱能夠開發高可用和高性能系統的人說不出高可用和高性能的衡量標準是什么,并且其所謂的大數據處理系統實際上只有百萬條數據,等等。
架構師雖然聽起來和工程師沒有太大區別,技術經理和技術總監也都會對核心技術有所把控,但本質上架構師要引領技術的發展,用技術服務于業務,為業務產生價值,更通俗地說,架構師需要讓技術變現,為客戶賺取更多的利潤,或者為客戶節省更多的成本,因此,架構師任重而道遠。在互聯網高速發展的今天,如何成為一名優秀的架構師是一個值得研究的課題,本書正是為那些已經成為架構師或者即將成為架構師的人準備的一本好書。作為第一批閱讀本書的讀者,筆者驚嘆于本書中的內容如此豐富,囊括了保證互聯網線上高并發服務的方方面面,不僅包括分布式服務的背景和演化,還包括保證分布式服務化系統一致性、高性能、高可用的方法論和最佳實踐,而這些正是每一個互聯網公司都需要探索和應用的理論和方法。筆者推薦每一名互聯網架構師都閱讀本書,相信你一定能從中學到自己急需的技術、方案和方法。
本書作者有從花旗銀行、甲骨文等知名外企到新浪微博、易寶支付等大型互聯網平臺,從傳統的核心行業到火熱的游戲行業,從社交產品到金融支付產品等方方面面的工作經驗,既深刻了解傳統行業的系統規范、流程和功能的復雜性,又深諳互聯網行業的高性能、可用性、高并發、可伸縮等高級特性。本書涉及的分布式服務架構原理、設計和實戰,皆來自于作者在實際工作中提煉的精華,從理論到落地,皆言之有物。無論是對于軟件工程師、測試工程師、運維工程師、軟件架構師、技術經理、技術總監,還是對于資深IT人士來說,本書都極具參考價值。
楊延峰
開心網副總裁
前言
自互聯網誕生以來,其簡單、敏捷的微服務架構開發理念和實踐逐漸成為主流,在逐漸發展的環境下和技術演化的過程中,迅速突破互聯網行業并波及軟件行業的各個領域。然而,這種突飛猛進的表面下卻是龍魚混雜、泥沙俱下。一方面,很多人在這個信息爆炸的時代應對海量信息的處理能力比較有限;另一方面,也有人致力于將優秀的理論和實踐相結合,希望運用所學的高效解決方案應對越來越復雜的問題。不論對與錯,人類對技術進步的追求從未停歇。
毋庸置疑,IT行業的發展進入了一個加速分化的時代,將優秀的解決方案推向大眾的成本和速度將成為決定企業生存與否的關鍵因素之一。優秀的互聯網企業已裝備精良并持續優化,而那些還需不斷進步的企業也在互相競爭。盡管在這個信息量巨大的媒體時代,部分優秀的企業在應對分布式服務架構時已經有了更多的認識且技術越來越完善,但也有很多快速發展的企業在變得更優秀這條道路上任重而道遠。
很多非常優秀的開發人員和架構師能成為給公司帶來長遠利益的人,在變革的節點上推波助瀾。本書將帶你走進分布式服務架構的世界,在這個世界里不停探索和汲取經驗。領先于別人是一種要求,這也是很多公司贏得先機的關鍵所在,無論服務于IT的哪個領域,每個IT人都有理由重視架構這門藝術。希望本書對于軟件工程師、測試工程師、軟件架構師及深耕于IT行業的老兵來說,都能帶給其所期望的內容,并幫助其解決和發現問題,也能幫助其不斷探索。
本書以當前流行的分布式服務架構為主線,講解了分布式服務架構的原理、設計與實踐。本書首先介紹了分布式服務架構的背景和演化,然后深入闡述了保證分布式服務的一致性、高性能、高可用性等的設計思想和可實施的方案;然后介紹了大規模、高并發線上服務的應急流程和技術攻關過程,并給出了發現和定位問題的有效、常用工具集;最后詳細介紹了分布式服務架構中容器化過程分析、敏捷開發和上線的工具,為從事高并發服務架構的開發人員提供了保障系統健康運行的方法論和最佳實踐。
感謝電子工業出版社張國霞編輯的認真態度和辛勤工作,使得本書能夠最終順利完成。
感謝筆者的技術小伙伴賈博巖提供了日志相關的資料和示例,讓筆者能夠快速完成第4章大數據日志系統方面的內容。
感謝張曉輝、周偉、霍勇同學在編輯階段參與閱稿,并提出專業的意見。
感謝英語專業的高材生曹燕琴小同學在文字上提供的幫助。
最后,感謝筆者的家人和朋友在本書寫作過程中提供的支持和幫助。
李艷鵬


讀者服務
輕松注冊成為博文視點社區用戶,掃碼直達本書頁面。
? 提交勘誤:您對書中內容的修改意見可在提交勘誤處提交,若被采納,將獲贈博文視點社區積分(在您購買電子書時,積分可用來抵扣相應金額)。
? 交流互動:在頁面下方讀者評論處留下您的疑問或觀點,與我們和其他讀者一同學習交流。
內容簡介:

本書全面介紹了分布式服務架構的原理與設計,并結合作者在實施微服務架構過程中的實踐經驗,總結了保障線上服務健康、可靠的最佳方案,是一本架構級、實戰型的重量級著作。全書以分布式服務架構的設計與實現為主線,由淺入深地介紹了分布式服務架構的方方面面,主要包括理論和實踐兩部分。理論上,首先介紹了服務架構的背景,以及從服務化架構到微服務架構的演化;然后提出了保證分布式服務系統架構一致性的方案和模式,并介紹了互聯網架構評審的方法論;最后給出了一個簡要的非功能質量的技術評審提綱。實踐上,首先提供了一個互聯網項目的性能和容量評估的真實案例,介紹了壓測的方案設計和最佳實踐,這些技術能夠全面保證大規模、高并發項目的一致性、可用性和高并發性;然后講解了大規模服務的日志系統的原理、設計與實踐,包括ELK等框架的特點和使用方式等,并介紹了當前流行的APM系統的設計與實現,主要包括調用鏈和業務鏈的跟蹤與恢復,涵蓋了線上應急和技術攻關的流程及重點,也結合服務化系統線上應急過程進行分析并總結了其中需要用到的Java虛擬機、Linux和定制化腳本等命令,這些命令都是每個開發人員都會用到的解決線上問題的利器;最后,闡述了系統服務的容器化過程,并詳細介紹了敏捷開發流程和實現自動化的常用工具等,讓讀者既能學到架構設計的基礎理論,也能結合書中的原理、設計與方法論來解決大規模、高并發互聯網項目中的現實問題。 無論是對于軟件工程師、測試工程師、運維工程師、軟件架構師、技術經理、技術總監,還是對于資深IT人士來說,本書都有很強的借鑒性和參考價值。

目錄:

第1章 分布式微服務架構設計原理 1
1.1 從傳統單體架構到服務化架構 2
1.1.1 JEE架構 2
1.1.2 SSH架構 5
1.1.3 服務化架構 8
1.2 從服務化到微服務 11
1.2.1 微服務架構的產生 12
1.2.2 微服務架構與傳統單體架構的對比 13
1.2.3 微服務架構與SOA服務化的對比 15
1.3 微服務架構的核心要點和實現原理 16
1.3.1 微服務架構中職能團隊的劃分 16
1.3.2 微服務的去中心化治理 18
1.3.3 微服務的交互模式 18
1.3.4 微服務的分解和組合模式 22
1.3.5 微服務的容錯模式 35
1.3.6 微服務的粒度 41
1.4 Java平臺微服務架構的項目組織形式 42
1.4.1 微服務項目的依賴關系 42

1.4.2 微服務項目的層級結構 43
1.4.3 微服務項目的持續發布 45
1.5 服務化管理和治理框架的技術選型 45
1.5.1 RPC 46
1.5.2 服務化 47
1.5.3 微服務 49
1.6 本章小結 52
第2章 徹底解決分布式系統一致性的問題 54
2.1 什么是一致性 55
2.2 一致性問題 56
2.3 解決一致性問題的模式和思路 57
2.3.1 酸堿平衡理論 58
2.3.2 分布式一致性協議 61
2.3.3 保證最終一致性的模式 67
2.4 超時處理模式 75
2.4.1 微服務的交互模式 76
2.4.2 同步與異步的抉擇 77
2.4.3 交互模式下超時問題的解決方案 78
2.4.4 超時補償的原則 85
2.5 遷移開關的設計 87
2.6 本章小結 88
第3章 服務化系統容量評估和性能保障 89
3.1 架構設計與非功能質量 90
3.2 全面的非功能質量需求 91
3.2.1 非功能質量需求的概述 91
3.2.2 非功能質量需求的具體指標 92
3.3 典型的技術評審提綱 97
3.3.1 現狀 97
3.3.2 需求 98
3.3.3 方案描述 98
3.3.4 方案對比 99
3.3.5 風險評估 100
3.3.6 工作量評估 100
3.4 性能和容量評估經典案例 100
3.4.1 背景 100
3.4.2 目標數據量級 101
3.4.3 量級評估標準 101
3.4.4 方案 102
3.4.5 小結 107
3.5 性能評估參考標準 108
3.5.1 常用的應用層性能指標參考標準 108
3.5.2 常用的系統層性能指標參考標準 109
3.6 性能測試方案的設計和最佳實踐 112
3.6.1 明確壓測目標 112
3.6.2 壓測場景設計和壓測方案制定 114
3.6.3 準備壓測環境 121
3.6.4 壓測的執行 122
3.6.5 問題修復和系統優化 123
3.7 有用的壓測工具 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 本章小結 138
第4章 大數據日志系統的構建 140
4.1 開源日志框架的原理分析與應用實踐 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 日志系統的優化和最佳實踐 168
4.2.1 開發人員的日志意識 168
4.2.2 日志級別的設置 168
4.2.3 日志的數量和大小 169
4.2.4 切割方式 170
4.2.5 日志格式的配置 170
4.2.6 一行日志導致的線上事故 177
4.3 大數據日志系統的原理與設計 178
4.3.1 通用架構和設計 179
4.3.2 日志采集器 180
4.3.3 日志緩沖隊列 186
4.3.4 日志解析器 187
4.3.5 日志存儲和搜索 187
4.3.6 日志展示系統 188
4.3.7 監控和報警 188
4.3.8 日志系統的容量和性能評估 188
4.4 ELK系統的構建與使用 190
4.4.1 Elasticsearch 191
4.4.2 Logstash 193
4.4.3 Kibana 196
4.5 本章小結 198
第5章 基于調用鏈的服務治理系統的設計與實現 199
5.1 APM系統簡介 200
5.1.1 優秀的開源APM系統 200
5.1.2 國內商業APM產品的介紹 202
5.2 調用鏈跟蹤的原理 203
5.2.1 分布式系統的遠程調用過程 204
5.2.2 TraceID 207
5.2.3 SpanID 208
5.2.4 業務鏈 210
5.3 調用鏈跟蹤系統的設計與實現 211
5.3.1 整體架構 211
5.3.2 TraceID和SpanID在服務間的傳遞 213
5.3.3 采集器的設計與實現 217
5.3.4 處理器的設計與實現 222
5.3.5 調用鏈系統的展示 225
5.4 本章小結 226
第6章 Java服務的線上應急和技術攻關 227
6.1 海恩法則和墨菲定律 227
6.2 線上應急的目標、原則和方法 229
6.2.1 應急目標 229
6.2.2 應急原則 229
6.2.3 線上應急的方法和流程 230
6.3 技術攻關的方法論 233
6.4 環境搭建和示例服務啟動 236
6.5 高效的服務化治理腳本 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 小結 249
6.6 JVM提供的監控命令 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 小結 259
6.7 重要的Linux基礎命令 260
6.7.1 必不可少的基礎命令和工具 260
6.7.2 查看活動進程的命令 268
6.7.3 窺探內存的命令 270
6.7.4 針對CPU使用情況的監控命令 272
6.7.5 監控磁盤I/O的命令 273
6.7.6 查看網絡信息和網絡監控命令 275
6.7.7 Linux系統的高級工具 287
6.7.8 /proc文件系統 288
6.7.9 摘要命令 288
6.7.10 小結 290
6.8 現實中的應急和攻關案例 291
6.8.1 一次OOM事故的分析和定位 291
6.8.2 一次CPU 100%的線上事故排查 301
6.9 本章小結 304
第7章 服務的容器化過程 306
7.1 容器vs虛擬機 306
7.1.1 什么是虛擬機 306
7.1.2 什么是容器 306
7.1.3 容器和虛擬機的區別 307
7.1.4 容器主要解決的問題 307
7.1.5 Docker的優勢 310
7.2 Docker實戰 311
7.2.1 Docker的架構 311
7.2.2 Docker的安裝 315
7.2.3 Docker初體驗 319
7.2.4 Docker后臺服務的管理 322
7.2.5 Docker的客戶端命令 328
7.2.6 Docker Compose編排工具的使用 372
7.3 容器化項目 379
7.3.1 傳統的應用部署 380
7.3.2 將應用程序部署在虛擬機上 380
7.3.3 容器化部署應用 381
7.3.4 Docker實現的應用容器化示例 382
7.4 本章小結 384

第8章 敏捷開發2.0的自動化工具 385
8.1 什么是敏捷開發2.0 385
8.1.1 常用的4種開發模式 385
8.1.2 什么是DevOps 390
8.1.3 敏捷開發2.0解決的問題 392
8.2 敏捷開發的自動化流程 393
8.2.1 持續集成 393
8.2.2 持續交付和持續部署 397
8.3 敏捷開發的常用自動化工具 400
8.3.1 分布式版本控制工具Git 400
8.3.2 持續集成和持續交付工具Jenkins 410
8.3.3 基礎平臺管理工具SaltStack 418
8.3.4 Docker容器化工具 421
8.4 本章小結 422
序: