本書分為三大部分,即分布式系統基礎理論、分布式系統常用技術以及經典的分布式系統案例分析。
第一部分主要介紹分布式系統基礎理論知識,總結一些在設計分布式系統時需要考慮的范式、知識點以及可能會面臨的問題,其中包括線程、通信、一致性、容錯性、CAP理論、安全性和並發等相關內容;同時講述分布式系統的常見架構體系,其中也包括最近比較火的RESTful風格架構、微服務、容器技術等。
第二部分主要列舉了在分布式系統應用中經常用到的一些主流技術,並介紹這些技術的作用和用法;這些技術涵蓋了分布式消息服務、分布式計算、分布式存儲、分布式監控系統、分布式版本控制、RESTful、微服務、容器等領域的內容。
第三部分選舉了以Twitter為代表的國內外知名互聯網企業的大型分布式系統案例,分析其架構設計以及演變過程;這部分相當於是對第二部分零散的技術點做一個「串燒」,讓讀者可以結合技術的理論,看到實戰的效果。
柳偉衛,多年軟件開發管理及系統架構經驗。負責過多個省、國家級大型分布式系統的設計與研發,也負責過多個大型項目的微服務架構的技術改造,在實際工作中,積累了大量的微服務架構經驗。
目錄
第1章分布式系統基礎知識1
1.1概述2
1.1.1什麼是分布式系統2
1.1.2集中式系統VS.分布式系統3
1.1.3如何設計分布式系統4
1.1.4分布式系統所面臨的挑戰5
1.2線程6
1.2.1什麼是線程6
1.2.2進程和線程7
1.2.3編程語言中的線程對象8
1.2.4SimpleThreads示例11
1.3通信14
1.3.1網絡基礎知識14
1.3.2網絡I/O模型的演進19
1.3.3遠程過程調用(RPC)33
1.3.4面向消息的通信41
1.4一致性43
1.4.1以數據為中心的一致性模型44
1.4.2以客戶為中心的一致性45
1.5容錯性46
1.5.1基本概念46
1.5.2故障分類47
1.5.3使用冗余來掩蓋故障48
1.5.4分布式提交48
1.6CAP理論52
1.6.1什麼是CAP理論52
1.6.2為什麼說CAP只能三選二53
1.6.3CAP常見模型55
1.6.4CAP的意義56
1.6.5CAP最新發展56
1.7安全性57
1.7.1基本概念58
1.7.2加密算法60
1.7.3安全通道63
1.7.4訪問控制72
1.8並發74
1.8.1線程與並發75
1.8.2並發與並行75
1.8.3並發帶來的風險76
1.8.4同步(Synchronization)78
1.8.5原子訪問(Atomic Access)83
第2章分布式系統架構體系85
2.1基於對象的體系結構86
2.1.1分布式對象86
2.1.2微軟DCOM(COM+)87
2.1.3CORBA88
2.1.4JavaRMI90
2.2面向服務的架構(SOA)93
2.2.1架構VS.標准94
2.2.2SOA的基本概念95
2.2.3基於Web Services的SOA97
2.2.4SOA的演變112
2.3REST風格的架構112
2.3.1什麼是REST112
2.3.2REST有哪些特征113
2.3.3Java實現REST的例子115
2.3.4RESTAPI最佳實踐125
2.4微服務架構(MSA)128
2.4.1什麼是MSA128
2.4.2MSAVS.SOA130
2.4.3何時采用MSA134
2.4.4如何構建微服務135
2.5容器技術139
2.5.1虛擬化技術139
2.5.2容器VS.虛擬機139
2.5.3基於容器的持續部署142
2.6Serverless架構149
2.6.1什麼是Serverless架構150
2.6.2Serverless典型的應用場景151
2.6.3常見的Serverless框架153
2.6.4Serverless架構原則155
2.6.5例子:使用Serverless實現游戲全球同服157
第3章分布式消息服務164
3.1Apache ActiveMQ165
3.1.1Apache ActiveMQ簡介165
3.1.2Apache ActiveMQ安裝配置166
3.1.3例子:producer—consumer173
3.1.4例子:使用JMX來監控ActiveMQ174
3.1.5例子:使用Java實現producer—consumer176
3.2RabbitMQ180
3.2.1RabbitMQ簡介180
3.2.2RabbitMQ安裝配置181
3.2.3例子:WorkQueues185
3.2.4例子:Publish/Subscribe191
3.2.5例子:Routing195
3.2.6例子:Topics200
3.2.7例子:RPC204
3.3RocketMQ210
3.3.1RocketMQ簡介210
3.3.2RocketMQ安裝配置213
3.3.3例子:使用Java實現producer—consumer214
3.3.4RocketMQ最佳實踐219
3.4ApacheKafka223
3.4.1ApacheKafka簡介224
3.4.2ApacheKafka的核心概念225
3.4.3ApacheKafka的使用場景228
3.4.4ApacheKafka的安裝、配置、使用229
第4章分布式計算236
4.1MapReduce237
4.1.1MapReduce簡介237
4.1.2MapReduce的編程模型238
4.1.3MapReduce的實現243
4.1.4MapReduce的使用技巧248
4.2Apache Hadoop251
4.2.1Apache Hadoop簡介252
4.2.2Apache Hadoop核心組件253
4.2.3Apache Hadoop單節點上的安裝配置254
4.2.4Apache Hadoop集群上的安裝配置258
4.2.5例子:詞頻統計WordCount程序267
4.3Apache Spark272
4.3.1Apache Spark簡介272
4.3.2Apache Spark與Apache Hadoop的關系274
4.3.3Apache Spark2.0的新特性275
4.3.4Apache Spark的安裝和使用279
4.3.5Apache Spark集群模式280
4.4ApacheMesos282
4.4.1Apache Mesos簡介283
4.4.2Apache Mesos的安裝、使用285
4.4.3設計高可用的Mesosframework289
……
第5章分布式存儲
第6章分布式監控
第7章分布式版本控制系統
第8章RESTful API、微服務及容器技術
第9章淘 寶網:「雙11」神話的締造者
第10章Twitter:實時信息傳遞的王者
參考文獻
1.1概述2
1.1.1什麼是分布式系統2
1.1.2集中式系統VS.分布式系統3
1.1.3如何設計分布式系統4
1.1.4分布式系統所面臨的挑戰5
1.2線程6
1.2.1什麼是線程6
1.2.2進程和線程7
1.2.3編程語言中的線程對象8
1.2.4SimpleThreads示例11
1.3通信14
1.3.1網絡基礎知識14
1.3.2網絡I/O模型的演進19
1.3.3遠程過程調用(RPC)33
1.3.4面向消息的通信41
1.4一致性43
1.4.1以數據為中心的一致性模型44
1.4.2以客戶為中心的一致性45
1.5容錯性46
1.5.1基本概念46
1.5.2故障分類47
1.5.3使用冗余來掩蓋故障48
1.5.4分布式提交48
1.6CAP理論52
1.6.1什麼是CAP理論52
1.6.2為什麼說CAP只能三選二53
1.6.3CAP常見模型55
1.6.4CAP的意義56
1.6.5CAP最新發展56
1.7安全性57
1.7.1基本概念58
1.7.2加密算法60
1.7.3安全通道63
1.7.4訪問控制72
1.8並發74
1.8.1線程與並發75
1.8.2並發與並行75
1.8.3並發帶來的風險76
1.8.4同步(Synchronization)78
1.8.5原子訪問(Atomic Access)83
第2章分布式系統架構體系85
2.1基於對象的體系結構86
2.1.1分布式對象86
2.1.2微軟DCOM(COM+)87
2.1.3CORBA88
2.1.4JavaRMI90
2.2面向服務的架構(SOA)93
2.2.1架構VS.標准94
2.2.2SOA的基本概念95
2.2.3基於Web Services的SOA97
2.2.4SOA的演變112
2.3REST風格的架構112
2.3.1什麼是REST112
2.3.2REST有哪些特征113
2.3.3Java實現REST的例子115
2.3.4RESTAPI最佳實踐125
2.4微服務架構(MSA)128
2.4.1什麼是MSA128
2.4.2MSAVS.SOA130
2.4.3何時采用MSA134
2.4.4如何構建微服務135
2.5容器技術139
2.5.1虛擬化技術139
2.5.2容器VS.虛擬機139
2.5.3基於容器的持續部署142
2.6Serverless架構149
2.6.1什麼是Serverless架構150
2.6.2Serverless典型的應用場景151
2.6.3常見的Serverless框架153
2.6.4Serverless架構原則155
2.6.5例子:使用Serverless實現游戲全球同服157
第3章分布式消息服務164
3.1Apache ActiveMQ165
3.1.1Apache ActiveMQ簡介165
3.1.2Apache ActiveMQ安裝配置166
3.1.3例子:producer—consumer173
3.1.4例子:使用JMX來監控ActiveMQ174
3.1.5例子:使用Java實現producer—consumer176
3.2RabbitMQ180
3.2.1RabbitMQ簡介180
3.2.2RabbitMQ安裝配置181
3.2.3例子:WorkQueues185
3.2.4例子:Publish/Subscribe191
3.2.5例子:Routing195
3.2.6例子:Topics200
3.2.7例子:RPC204
3.3RocketMQ210
3.3.1RocketMQ簡介210
3.3.2RocketMQ安裝配置213
3.3.3例子:使用Java實現producer—consumer214
3.3.4RocketMQ最佳實踐219
3.4ApacheKafka223
3.4.1ApacheKafka簡介224
3.4.2ApacheKafka的核心概念225
3.4.3ApacheKafka的使用場景228
3.4.4ApacheKafka的安裝、配置、使用229
第4章分布式計算236
4.1MapReduce237
4.1.1MapReduce簡介237
4.1.2MapReduce的編程模型238
4.1.3MapReduce的實現243
4.1.4MapReduce的使用技巧248
4.2Apache Hadoop251
4.2.1Apache Hadoop簡介252
4.2.2Apache Hadoop核心組件253
4.2.3Apache Hadoop單節點上的安裝配置254
4.2.4Apache Hadoop集群上的安裝配置258
4.2.5例子:詞頻統計WordCount程序267
4.3Apache Spark272
4.3.1Apache Spark簡介272
4.3.2Apache Spark與Apache Hadoop的關系274
4.3.3Apache Spark2.0的新特性275
4.3.4Apache Spark的安裝和使用279
4.3.5Apache Spark集群模式280
4.4ApacheMesos282
4.4.1Apache Mesos簡介283
4.4.2Apache Mesos的安裝、使用285
4.4.3設計高可用的Mesosframework289
……
第5章分布式存儲
第6章分布式監控
第7章分布式版本控制系統
第8章RESTful API、微服務及容器技術
第9章淘 寶網:「雙11」神話的締造者
第10章Twitter:實時信息傳遞的王者
參考文獻
網路書店
類別
折扣
價格
-
新書$594