分布式系統常用技術及案例分析(第2版) 版權信息
- ISBN:9787121356773
- 條形碼:9787121356773 ; 978-7-121-35677-3
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>
分布式系統常用技術及案例分析(第2版) 本書特色
適讀人群 :本書主要面向的讀者是對分布式系統感興趣的計算機專業學生、軟件工程師、系統架構師等。
本書全面介紹在設計分布式系統時所要考慮的技術方案,內容豐富、案例新穎,相關理論與技術實踐前瞻*性較強。本書不僅介紹分布式系統的原理、基礎理論,同時引入大量市面上常用的*新分布式系統技術,不僅告訴讀者怎么用,同時分析為什么這么用,并闡述這些技術的優缺點。
分布式系統常用技術及案例分析(第2版) 內容簡介
本書分兩部分,靠前部分主要介紹分布式系統基礎理論知識,總結一些在設計分布式系統時需要考慮的范式、知識點以及可能會面臨的問題,其中包括線程、通信、一致性、容錯性、CAP理論、安全性和并發等相關內容;同時講述分布式系統的常見架構體系,其中也包括很近比較火的RESTful風格架構、微服務、容器技術等。第二部分主要列舉了在分布式系統應用中經常用到的一些主流技術,并介紹這些技術的作用和用法;這些技術涵蓋了分布式消息服務、分布式計算、分布式存儲、分布式監控系統、分布式版本控制、RESTful、微服務、容器等領域的內容。
分布式系統常用技術及案例分析(第2版) 目錄
目 錄
第1章 分布式系統基礎知識
1.1 概述
1.1.1 什么是分布式系統
1.1.2 集中式系統與分布式系統
1.1.3 如何設計分布式系統
1.1.4 分布式系統所面臨的挑戰
1.2 線程
1.2.1 什么是線程
1.2.2 進程和線程
1.2.3 線程和纖程
1.2.4 編程語言中的線程對象
1.2.5 SimpleThreads示例
1.3 通信
1.3.1 網絡I/O模型的演進
1.3.2 遠程過程調用(RPC)
1.3.3 面向消息的通信
1.4 一致性
1.4.1 以數據為中心的一致性模型
1.4.2 以客戶為中心的一致性
1.5 容錯性
1.5.1 基本概念
1.5.2 故障分類
1.5.3 使用冗余來掩蓋故障
1.5.4 分布式提交
1.6 CAP理論
1.6.1 什么是CAP理論
1.6.2 為什么CAP只能三選二
1.6.3 CAP常見模型
1.6.4 CAP的意義
1.6.5 CAP*新發展
1.7 安全性
1.7.1 基本概念
1.7.2 加密算法
1.7.3 安全通道
1.7.4 訪問控制
1.8 并發
1.8.1 線程與并發
1.8.2 并發與并行
1.8.3 并發帶來的風險
1.8.4 同步(Synchronization)
1.8.5 原子訪問(Atomic Access)
1.8.6 無鎖化設計提升并發能力
1.8.7 緩存提升并發能力
1.8.8 更細顆粒度的并發單元
第2章 分布式系統架構體系
2.1 基于對象的體系結構
2.1.1 分布式對象
2.1.2 Java RMI
2.2 面向服務的架構(SOA)
2.2.1 SOA的基本概念
2.2.2 基于Web Services的SOA
2.2.3 SOA的演變
2.3 REST風格的架構
2.3.1 什么是REST
2.3.2 REST有哪些特征
2.3.3 Java實現REST的例子
2.3.4 REST API*佳實踐
2.4 微服務架構(MSA)
2.4.1 什么是MSA
2.4.2 MSA與SOA
2.4.3 何時采用MSA
2.4.4 如何構建微服務
2.5 容器技術
2.5.1 虛擬化技術
2.5.2 容器與虛擬機
2.5.3 基于容器的持續部署
2.6 Serverless架構
2.6.1 什么是Serverless架構
2.6.2 Serverless典型的應用場景
2.6.3 Serverless架構原則
2.6.4 例子:使用Serverless實現游戲全球同服
第3章 分布式消息服務
3.1 分布式消息概述
3.1.1 基本概念
3.1.2 使用場景
3.1.3 常用技術
3.2 Apache ActiveMQ
3.2.1 例子:producer-consumer
3.2.2 例子:使用JMX來監控ActiveMQ
3.2.3 例子:使用Java實現producer-consumer
3.3 RabbitMQ
3.3.1 例子:Work Queues
3.3.2 例子:Publish/Subscribe
3.3.3 例子:Routing
3.3.4 例子:Topics
3.3.5 例子:RPC
3.4 Apache RocketMQ
3.4.1 例子:使用Java實現producer-consumer
3.4.2 RocketMQ*佳實踐
3.5 Apache Kafka
3.5.1 Apache Kafka的核心概念
3.5.2 Apache Kafka的使用場景
3.6 實戰:基于JMS的消息發送和接收
3.6.1 項目概述
3.6.2 項目配置
3.6.3 編碼實現
3.6.4 運行
第4章 分布式計算
4.1 分布式計算概述
4.1.1 使用場景
4.1.2 常用技術
4.2 MapReduce
4.2.1 MapReduce簡介
4.2.2 MapReduce的編程模型
4.2.3 MapReduce接口實現
4.2.4 MapReduce的使用技巧
4.3 Apache Hadoop
4.3.1 Apache Hadoop的核心組件
4.3.2 例子:詞頻統計WordCount程序
4.4 Spark
4.4.1 Spark簡介
4.4.2 Spark與Hadoop的關系
4.4.3 Spark 2.0的新特性
4.4.4 Spark集群模式
4.5 Mesos
4.5.1 Mesos簡介
4.5.2 設計高可用的Mesos framework
4.6 實戰:基于Spark的詞頻統計
4.6.1 項目概述
4.6.2 項目配置
4.6.3 編碼實現
4.6.4 運行
第5章 分布式存儲
5.1 分布式存儲概述
5.1.1 使用場景
5.1.2 常用技術
5.2 Bigtable
5.2.1 Bigtable的數據模型
5.2.2 Bigtable的實現
5.2.3 Bigtable的性能優化
5.3 Apache HBase
5.3.1 Apache HBase的基本概念
5.3.2 Apache HBase的架構
5.4 Apache Cassandra
5.4.1 Apache Cassandra簡介
5.4.2 Apache Cassandra的應用場景
5.4.3 Apache Cassandra的架構和數據模型
5.4.4 用于配置Apache Cassandra的核心組件
5.5 Memcached
5.5.1 Memcached簡介
5.5.2 Memcached的架構
5.5.3 Memcached客戶端
5.6 Redis
5.6.1 Redis簡介
5.6.2 Redis的下載與簡單使用
5.6.3 Redis的數據類型及抽象
5.7 MongoDB
5.7.1 MongoDB簡介
5.7.2 MongoDB核心概念
5.7.3 MongoDB的數據模型
5.7.4 示例:Java連接MongoDB
5.8 實戰:基于Redis的分布式鎖
5.8.1 項目概述
5.8.2 項目配置
5.8.3 編碼實現
5.8.4 運行
第6章 分布式監控
6.1 分布式監控概述
6.1.1 使用場景
6.1.2 常用技術
6.2 Nagios
6.2.1 Nagios監控
6.2.2 Nagios插件
6.3 Zabbix
6.3.1 Zabbix對容器的支持
6.3.2 Zabbix的基本概念
6.4 Consul
6.4.1 Consul架構
6.4.2 Consul agent
6.5 ZooKeeper
6.5.1 ZooKeeper簡介
6.5.2 ZooKeeper內部工作原理
6.5.3 例子:ZooKeeper實現barrier和producer-consumer queue
6.6 實戰:基于ZooKeeper的服務注冊和發現
6.6.1 項目概述
6.6.2 項目配置
6.6.3 編碼實現
6.6.4 運行
第7章 分布式版本控制系統
7.1 分布式版本控制系統概述
7.1.1 集中式與分布式
7.1.2 分布式版本控制系統的核心概念
7.2 Bazaar
7.2.1 Bazaar的核心概念
7.2.2 Bazaar的使用
7.3 Mercurial
7.3.1 Mercurial的核心概念
7.3.2 Mercurial的使用
7.4 Git
7.4.1 Git的基礎概念
7.4.2 Git的使用
7.5 Git Flow―團隊協作*佳實踐
7.5.1 分支定義
7.5.2 新功能開發工作流
7.5.3 Bug修復工作流
7.5.4 版本發布工作流
第8章 RESTful API、微服務及容器技術
8.1 Jersey
8.1.1 Jersey簡介
8.1.2 Jersey的模塊和依賴
8.1.3 JAX-RS核心概念
8.1.4 例子:用SSE構建實時Web應用
8.2 Spring Boot
8.2.1 Spring Boot簡介
8.2.2 Spring Boot的安裝
8.2.3 Spring Boot的使用
8.2.4 Spring Boot的屬性與配置
8.3 Docker
8.3.1 Docker簡介
8.3.2 Docker的核心組成、架構及工作原理
8.3.3 Docker的使用
8.4 實戰:基于Docker構建、運行、發布微服務
8.4.1 編寫微服務
8.4.2 微服務容器化
8.4.3 構建Docker image
8.4.4 運行image
8.4.5 訪問應用
8.4.6 發布微服務
展開全部
分布式系統常用技術及案例分析(第2版) 作者簡介
柳偉衛,網名老衛(waylau),在 IT 公司擔任項目經理、架構師、高級開發顧問等職位,具有多年軟件開發管理及系統架構經驗。負責過多個省、***大型分布式系統的設計與研發,參與了多個大型項目的微服務架構的技術改造,在實際工作中,積累了大量的分布式系統及微服務架構經驗。業余時間創建了 waylau.com 網站,用于分享個人技術心得。喜歡開源,長期躍于各大開源社區,是 CSDN、 開源中國、云棲社區等技術社區專家。為開源社區無私編著了《Spring Framework 4.x參考文檔》、《Netty 實戰(精髓)》、《REST 實戰》、《分布式 Java》、《Spring Boot 教程》、《Spring Security 教程》、《Thymeleaf 教程》等近30余篇技術教程,廣受網友好評。其中出版了《分布式系統常用技術及案例分析》、《Spring Boot 企業級應用開發實戰》、《Spring Cloud 微服務架構開發實戰》等專著。