注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡網絡與數據通信分布式服務架構:原理、設計與實戰(zhàn)

分布式服務架構:原理、設計與實戰(zhàn)

分布式服務架構:原理、設計與實戰(zhàn)

定 價:¥89.00

作 者: 李艷鵬,楊彪 著
出版社: 電子工業(yè)出版社
叢編項:
標 簽: 暫缺

購買這本書可以去


ISBN: 9787121315787 出版時間: 2017-07-01 包裝: 平裝
開本: 16開 頁數: 400 字數:  

內容簡介

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

作者簡介

  李艷鵬 現任易寶支付產品中心首席架構師,曾在花旗銀行、甲骨文、路透社、新浪微博等大型IT互聯網公司擔任技術負責人和架構師,現專注于大規(guī)模、高并發(fā)的線上和線下支付平臺的應用架構和技術架構的規(guī)劃與落地,負責交易、支付、渠道、出款、風控、對賬等核心支付系統的設計與實現,對移動支付、聚合支付、合規(guī)賬戶、掃碼支付、標記化支付等業(yè)務場景有產品應用架構規(guī)劃與落地的實踐經驗。 楊 彪 現任某創(chuàng)業(yè)公司技術總監(jiān)及合伙人,在互聯網和游戲行業(yè)有近10年工作經驗,曾在酷我音樂盒、人人游戲和掌趣科技等上市公司擔任核心研發(fā)職位,在互聯網公司做過日活躍用戶量達千萬的項目,也在游戲公司做過多款月流水千萬以上的游戲。喜歡研究問題,追求前沿技術,學無止境。

圖書目錄

第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 微服務項目的持續(xù)發(fā)布 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 準備壓測環(huán)境 121
3.6.4 壓測的執(zhí)行 122
3.6.5 問題修復和系統優(yōu)化 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 日志系統的優(yōu)化和最佳實踐 168
4.2.1 開發(fā)人員的日志意識 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 監(jiān)控和報警 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 優(yōu)秀的開源APM系統 200
5.1.2 國內商業(yè)APM產品的介紹 202
5.2 調用鏈跟蹤的原理 203
5.2.1 分布式系統的遠程調用過程 204
5.2.2 TraceID 207
5.2.3 SpanID 208
5.2.4 業(yè)務鏈 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 環(huán)境搭建和示例服務啟動 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提供的監(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 小結 259
6.7 重要的Linux基礎命令 260
6.7.1 必不可少的基礎命令和工具 260
6.7.2 查看活動進程的命令 268
6.7.3 窺探內存的命令 270
6.7.4 針對CPU使用情況的監(jiān)控命令 272
6.7.5 監(jiān)控磁盤I/O的命令 273
6.7.6 查看網絡信息和網絡監(jiān)控命令 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 容器和虛擬機的區(qū)別 307
7.1.4 容器主要解決的問題 307
7.1.5 Docker的優(yōu)勢 310
7.2 Docker實戰(zhàn) 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章 敏捷開發(fā)2.0的自動化工具 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ā)的自動化流程 393
8.2.1 持續(xù)集成 393
8.2.2 持續(xù)交付和持續(xù)部署 397
8.3 敏捷開發(fā)的常用自動化工具 400
8.3.1 分布式版本控制工具Git 400
8.3.2 持續(xù)集成和持續(xù)交付工具Jenkins 410
8.3.3 基礎平臺管理工具SaltStack 418
8.3.4 Docker容器化工具 421
8.4 本章小結 422

本目錄推薦

掃描二維碼
Copyright ? 讀書網 m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號