首頁>技術>

介紹分散式系統基礎理論,分析分散式系統中常用的主流技術,分享實戰案例,做到理論與實踐相結合。

本書分兩部分,部分主要介紹分散式基礎理論知識,總結一些在設計分散式時需要考慮的正規化、知識點以及可能會面臨的問題,其中包括執行緒、通訊、一致性、容錯性、CAP理論、安全性和併發等相關內容;同時講述分散式的常見架構體系,其中也包括近比較火的RESTful風格架構、微服務、容器技術等。第二部分主要列舉了在分散式應用中經常用到的一些主流技術,並介紹這些技術的作用和用法;這些技術涵蓋了分散式訊息服務、分散式計算、分散式儲存、分散式監控、分散式版本控制、RESTful、微服務、容器等領域的內容。

第1章 分散式基礎知識

第1章介紹分散式系統基礎理論知識,總結一些在設計分散式系統時需要考慮的正規化、知識點及可能會面臨的問題,包括執行緒、通訊、一致性、容錯性、CAP理論、安全性和併發等相關內容。

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章 分散式架構體系

第⒉章詳細介紹分散式系統的架構體系,包括傳統的基於物件的體系結構、SOA。

2.1 基於物件的體系結構2.1.1 分散式物件2.1.2 Java RMI2.2 面向服務的架構(SOA)2.2.1 SOA的基本概念2.2.2 基於Web Services的SOA2.2.3 SOA的演變2.3 REST風格的架構2.3.1 什麼是REST2.3.2 REST有哪些特徵2.3.3 Java實現REST的例子2.3.4 REST API佳實踐2.4 微服務架構(MSA)2.4.1 什麼是MSA2.4.2 MSA與SOA2.4.3 何時採用MSA2.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章介紹常用的分散式訊息服務框架,包括 Apache ActiveMQ.Apache RabbitMQ、ApacheRocketMQ、 Apache Kafka等。

3.1 分散式訊息概述3.1.1 基本概念3.1.2 使用場景3.1.3 常用技術3.2 Apache ActiveMQ3.2.1 例子:producer-consumer3.2.2 例子:使用JMX來監控ActiveMQ3.2.3 例子:使用Java實現producer-consumer3.3 RabbitMQ3.3.1 例子:Work Queues3.3.2 例子:Publish/Subscribe3.3.3 例子:Routing3.3.4 例子:Topics3.3.5 例子:RPC3.4 Apache RocketMQ3.4.1 例子:使用Java實現producer-consumer3.4.2 RocketMQ佳實踐3.5 Apache Kafka3.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章介紹分散式計算理論和應用框架方面的內容,包括 MapReduce、Apache Hadoop.Apache Spark、 Apache Mesos等。

4.1 分散式計算概述4.1.1 使用場景4.1.2 常用技術4.2 MapReduce4.2.1 MapReduce簡介4.2.2 MapReduce的程式設計模型4.2.3 MapReduce介面實現4.2.4 MapReduce的使用技巧4.3 Apache Hadoop4.3.1 Apache Hadoop的核心元件4.3.2 例子:詞頻統計WordCount程式4.4 Spark4.4.1 Spark簡介4.4.2 Spark與Hadoop的關係4.4.3 Spark 2.0的新特性4.4.4 Spark叢集模式4.5 Mesos4.5.1 Mesos簡介4.5.2 設計高可用的Mesos framework4.6 實戰:基於Spark的詞頻統計4.6.1 專案概述4.6.2 專案配置4.6.3 編碼實現4.6.4 執行

第5章 分散式儲存

第5章介紹分散式儲存理論和應用框架方面的內容,包括Bigtable、Apache HBase、ApacheCassandra、 Memcached、 Redis、 MongoDB 等。

5.1 分散式儲存概述5.1.1 使用場景5.1.2 常用技術5.2 Bigtable5.2.1 Bigtable的資料模型5.2.2 Bigtable的實現5.2.3 Bigtable的效能最佳化5.3 Apache HBase5.3.1 Apache HBase的基本概念5.3.2 Apache HBase的架構5.4 Apache Cassandra5.4.1 Apache Cassandra簡介5.4.2 Apache Cassandra的應用場景5.4.3 Apache Cassandra的架構和資料模型5.4.4 用於配置Apache Cassandra的核心元件5.5 Memcached5.5.1 Memcached簡介5.5.2 Memcached的架構5.5.3 Memcached客戶端5.6 Redis5.6.1 Redis簡介5.6.2 Redis的下載與簡單使用5.6.3 Redis的資料型別及抽象5.7 MongoDB5.7.1 MongoDB簡介5.7.2 MongoDB核心概念5.7.3 MongoDB的資料模型5.7.4 示例:Java連線MongoDB5.8 實戰:基於Redis的分散式鎖5.8.1 專案概述5.8.2 專案配置5.8.3 編碼實現5.8.4 執行

第6章 分散式監控第6章介紹分散式監控方面常用的技術,包括Nagios、Zabbix、Consul、ZooKeeper等。

6.1 分散式監控概述6.1.1 使用場景6.1.2 常用技術6.2 Nagios6.2.1 Nagios監控6.2.2 Nagios外掛6.3 Zabbix6.3.1 Zabbix對容器的支援6.3.2 Zabbix的基本概念6.4 Consul6.4.1 Consul架構6.4.2 Consul agent6.5 ZooKeeper6.5.1 ZooKeeper簡介6.5.2 ZooKeeper內部工作原理6.5.3 例子:ZooKeeper實現barrier和producer-consumer queue6.6 實戰:基於ZooKeeper的服務註冊和發現6.6.1 專案概述6.6.2 專案配置6.6.3 編碼實現6.6.4 執行

第7章 分散式版本控制第7章介紹常用的分散式版本控制工具,包括Bazaar、Mercurial、Git等。

7.1 分散式版本控制概述7.1.1 集中式與分散式7.1.2 分散式版本控制的核心概念7.2 Bazaar7.2.1 Bazaar的核心概念7.2.2 Bazaar的使用7.3 Mercurial7.3.1 Mercurial的核心概念7.3.2 Mercurial的使用7.4 Git7.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章介紹RESTful API、微服務及容器相關的技術,著重介紹Jersey、Spring Boot、Docker等技術的應用。

8.1 Jersey8.1.1 Jersey簡介8.1.2 Jersey的模組和依賴8.1.3 JAX-RS核心概念8.1.4 例子:用SSE構建實時Web應用8.2 Spring Boot8.2.1 Spring Boot簡介8.2.2 Spring Boot的安裝8.2.3 Spring Boot的使用8.2.4 Spring Boot的屬性與配置8.3 Docker8.3.1 Docker簡介8.3.2 Docker的核心組成、架構及工作原理8.3.3 Docker的使用8.4 實戰:基於Docker構建、執行、釋出微服務8.4.1 編寫微服務8.4.2 微服務容器化8.4.3 構建Docker image8.4.4 執行image8.4.5 訪問應用8.4.6 釋出微服務

12
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 怎麼利用加密端攻擊