logo
分类于: 计算机基础 互联网 云计算&大数据 人工智能

简介

分布式系统常用技术及案例分析

分布式系统常用技术及案例分析 4.0分

资源最后更新于 2020-03-29 02:48:31

作者:柳伟卫

出版社:出版社电子工业出版社

出版日期:2017-02

ISBN:9787121307713

文件格式: pdf

标签: 互联网 开发 技术 计算机 软件 通信

简介· · · · · ·

本书分为三大部分,即分布式系统基础理论、分布式系统常用技术以及经典的分布式系统案例分析。第一部分主要介绍分布式系统基础理论知识,总结一些在设计分布式系统时需要考虑的范式、知识点以及可能会面临的问题,其中包括线程、通信、一致性、容错性、CAP理论、安全性和并发等相关内容;同时讲述分布式系统的常见架构体系,其中也包括最近比较火的RESTful风格架构、微服务、容器技术等。第二部分主要列举了在分布式系统应用中经常用到的一些主流技术,并介绍这些技术的作用和用法;这些技术涵盖了分布式消息服务、分布式计算、分布式存储、分布式监控系统、分布式版本控制、RESTful、微服务、容器等领域的内容。第三部分选举了以Twitter为代表的国内外知名互联网企业的大型分布式系统案例,分析其架构设计以及演变过程;这部分相当于是对第二部分零散的技术点做一个“串烧”,让读者可以结合技术的理论,看到实战的效果。柳伟卫,多年软件开发管理及系统架构经验。负责过多个省、大型分布式系统的设计与研发,也负责过多个大型项目的微服务架构的技术改造,在实际工作中,积累了大量的微服务架构经验。

想要: 点击会收藏到你的 我的收藏,可以在这里查看

已收: 表示已经收藏

Tips: 注册一个用户 可以通过用户中心得到电子书更新的通知哦

目录

  1. 前言
  2. 第1章 分布式系统基础知识
  3. 1.1 概述
  4. 1.1.1 什么是分布式系统
  5. 1.1.2 集中式系统VS.分布式系统
  6. 1.1.3 如何设计分布式系统
  7. 1.1.4 分布式系统所面临的挑战
  8. 1.2 线程
  9. 1.2.1 什么是线程
  10. 1.2.2 进程和线程
  11. 1.2.3 编程语言中的线程对象
  12. 1.2.4 SimpleThreads示例
  13. 1.3 通信
  14. 1.3.1 网络基础知识
  15. 1.3.2 网络I/O模型的演进
  16. 1.3.3 远程过程调用(RPC)
  17. 1.3.4 面向消息的通信
  18. 1.4 一致性
  19. 1.4.1 以数据为中心的一致性模型
  20. 1.4.2 以客户为中心的一致性
  21. 1.5 容错性
  22. 1.5.1 基本概念
  23. 1.5.2 故障分类
  24. 1.5.3 使用冗余来掩盖故障
  25. 1.5.4 分布式提交
  26. 1.6 CAP理论
  27. 1.6.1 什么是CAP理论
  28. 1.6.2 为什么说CAP只能三选二
  29. 1.6.3 CAP常见模型
  30. 1.6.4 CAP的意义
  31. 1.6.5 CAP最新发展
  32. 1.7 安全性
  33. 1.7.1 基本概念
  34. 1.7.2 加密算法
  35. 1.7.3 安全通道
  36. 1.7.4 访问控制
  37. 1.8 并发
  38. 1.8.1 线程与并发
  39. 1.8.2 并发与并行
  40. 1.8.3 并发带来的风险
  41. 1.8.4 同步(Synchronization)
  42. 1.8.5 原子访问(Atomic Access)
  43. 第2章 分布式系统架构体系
  44. 2.1 基于对象的体系结构
  45. 2.1.1 分布式对象
  46. 2.1.2 微软DCOM(COM+)
  47. 2.1.3 CORBA
  48. 2.1.4 Java RMI
  49. 2.2 面向服务的架构(SOA)
  50. 2.2.1 架构VS.标准
  51. 2.2.2 SOA的基本概念
  52. 2.2.3 基于Web Services的SOA
  53. 2.2.4 SOA的演变
  54. 2.3 REST风格的架构
  55. 2.3.1 什么是REST
  56. 2.3.2 REST有哪些特征
  57. 2.3.3 Java实现REST的例子
  58. 2.3.4 REST API最佳实践
  59. 2.4 微服务架构(MSA)
  60. 2.4.1 什么是MSA
  61. 2.4.2 MSA VS.SOA
  62. 2.4.3 何时采用MSA
  63. 2.4.4 如何构建微服务
  64. 2.5 容器技术
  65. 2.5.1 虚拟化技术
  66. 2.5.2 容器VS.虚拟机
  67. 2.5.3 基于容器的持续部署
  68. 2.6 Serverless架构
  69. 2.6.1 什么是Serverless架构
  70. 2.6.2 Serverless典型的应用场景
  71. 2.6.3 常见的Serverless框架
  72. 2.6.4 Serverless架构原则
  73. 2.6.5 例子:使用Serverless实现游戏全球同服
  74. 第3章 分布式消息服务
  75. 3.1 Apache ActiveMQ
  76. 3.1.1 Apache ActiveMQ简介
  77. 3.1.2 Apache ActiveMQ安装配置
  78. 3.1.3 例子:producer-consumer
  79. 3.1.4 例子:使用JMX来监控ActiveMQ
  80. 3.1.5 例子:使用Java实现producer-consumer
  81. 3.2 RabbitMQ
  82. 3.2.1 RabbitMQ简介
  83. 3.2.2 RabbitMQ安装配置
  84. 3.2.3 例子:Work Queues
  85. 3.2.4 例子:Publish/Subscribe
  86. 3.2.5 例子:Routing
  87. 3.2.6 例子:Topics
  88. 3.2.7 例子:RPC
  89. 3.3 RocketMQ
  90. 3.3.1 RocketMQ简介
  91. 3.3.2 RocketMQ安装配置
  92. 3.3.3 例子:使用Java实现producer-consumer
  93. 3.3.4 RocketMQ最佳实践
  94. 3.4 Apache Kafka
  95. 3.4.1 Apache Kafka简介
  96. 3.4.2 Apache Kafka的核心概念
  97. 3.4.3 Apache Kafka的使用场景
  98. 3.4.4 Apache Kafka的安装、配置、使用
  99. 第4章 分布式计算
  100. 4.1 MapReduce
  101. 4.1.1 MapReduce简介
  102. 4.1.2 MapReduce的编程模型
  103. 4.1.3 MapReduce的实现
  104. 4.1.4 MapReduce的使用技巧
  105. 4.2 Apache Hadoop
  106. 4.2.1 Apache Hadoop简介
  107. 4.2.2 Apache Hadoop核心组件
  108. 4.2.3 Apache Hadoop单节点上的安装配置
  109. 4.2.4 Apache Hadoop集群上的安装配置
  110. 4.2.5 例子:词频统计WordCount程序
  111. 4.3 Apache Spark
  112. 4.3.1 Apache Spark简介
  113. 4.3.2 Apache Spark与Apache Hadoop的关系
  114. 4.3.3 Apache Spark 2.0的新特性
  115. 4.3.4 Apache Spark的安装和使用
  116. 4.3.5 Apache Spark集群模式
  117. 4.4 Apache Mesos
  118. 4.4.1 Apache Mesos简介
  119. 4.4.2 Apache Mesos的安装、使用
  120. 4.4.3 设计高可用的Mesos framework
  121. 第5章 分布式存储
  122. 5.1 Bigtable
  123. 5.1.1 Bigtable简介
  124. 5.1.2 Bigtable的数据模型
  125. 5.1.3 Bigtable的实现
  126. 5.1.4 Bigtable的性能优化
  127. 5.2 Apache HBase
  128. 5.2.1 Apache HBase简介
  129. 5.2.2 Apache HBase基本概念
  130. 5.2.3 Apache HBase架构
  131. 5.2.4 Apache HBase的安装、配置、使用
  132. 5.2.5 本地伪分布式
  133. 5.2.6 完全分布式
  134. 5.3 Apache Cassandra
  135. 5.3.1 Apache Cassandra简介
  136. 5.3.2 Apache Cassandra的应用场景
  137. 5.3.3 Apache Cassandra的架构、数据模型
  138. 5.3.4 用于配置Apache Cassandra的核心组件
  139. 5.3.5 Apache Cassandra的安装、配置、使用
  140. 5.4 Memcached
  141. 5.4.1 Memcached简介
  142. 5.4.2 Memcached的架构
  143. 5.4.3 Memcached的安装、使用
  144. 5.4.4 Memcached客户端
  145. 5.5 Redis
  146. 5.5.1 Redis简介
  147. 5.5.2 Redis的下载、安装、使用
  148. 5.5.3 Redis的数据类型及抽象
  149. 5.6 MongoDB
  150. 5.6.1 MongoDB简介
  151. 5.6.2 MongoDB的安装、配置、运行
  152. 5.6.3 MongoDB核心概念
  153. 5.6.4 MongoDB的数据模型
  154. 5.6.5 示例:Java连接MongoDB
  155. 第6章 分布式监控
  156. 6.1 Nagios
  157. 6.1.1 Nagios简介
  158. 6.1.2 Nagios的安装、使用
  159. 6.1.3 Nagios监控
  160. 6.1.4 Nagios插件
  161. 6.2 Zabbix
  162. 6.2.1 Zabbix简介
  163. 6.2.2 安装Zabbix
  164. 6.2.3 Zabbix对于容器的支持
  165. 6.2.4 Zabbix基本概念
  166. 6.3 Consul
  167. 6.3.1 Consul简介
  168. 6.3.2 Consul架构
  169. 6.3.3 Consul的安装和使用
  170. 6.3.4 Consul agent
  171. 6.4 ZooKeeper
  172. 6.4.1 ZooKeeper简介
  173. 6.4.2 ZooKeeper的安装和使用
  174. 6.4.3 ZooKeeper内部工作原理
  175. 6.4.4 例子:ZooKeeper实现barrier和producer-consumer queue
  176. 第7章 分布式版本控制系统
  177. 7.1 Bazaar
  178. 7.1.1 Bazaar简介
  179. 7.1.2 Bazaar的核心概念
  180. 7.1.3 Bazaar的安装
  181. 7.1.4 Bazaar的使用
  182. 7.2 Mercurial
  183. 7.2.1 Mercurial简介
  184. 7.2.2 Mercurial的核心概念
  185. 7.2.3 Mercurial的安装
  186. 7.2.4 Mercurial的使用
  187. 7.3 Git
  188. 7.3.1 Git简介
  189. 7.3.2 Git的安装
  190. 7.3.3 Git的基础概念
  191. 7.3.4 Git的使用
  192. 第8章 RESTful API、微服务及容器技术
  193. 8.1 Jersey
  194. 8.1.1 Jersey简介
  195. 8.1.2 Jersey的模块和依赖
  196. 8.1.3 JAX-RS核心概念
  197. 8.1.4 例子:用SSE构建实时Web应用
  198. 8.2 Spring Boot
  199. 8.2.1 Spring Boot简介
  200. 8.2.2 Spring Boot的安装
  201. 8.2.3 Spring Boot的使用
  202. 8.2.4 Spring Boot的属性与配置
  203. 8.3 Docker
  204. 8.3.1 Docker简介
  205. 8.3.2 Docker的特性
  206. 8.3.3 Docker的概念和原理
  207. 8.3.4 Docker Engine的安装
  208. 8.3.5 Docker的使用
  209. 第9章 淘宝网:“双11”神话的缔造者
  210. 9.1 从LAMP到Java平台的转变
  211. 9.1.1 淘宝网的诞生与发展
  212. 9.1.2 “平民英雄”LAMP架构
  213. 9.1.3 数据库更改为Oracle
  214. 9.1.4 向Java平台转变
  215. 9.2 坚定不移地走“去IOE”的道路
  216. 9.2.1 使用小型机、EMC存储
  217. 9.2.2 考虑“去IOE”
  218. 9.2.3 如何去“I”
  219. 9.2.4 如何去“O”
  220. 9.2.5 如何去“E”
  221. 9.3 打造云计算,决战“双11”
  222. 9.3.1 “大淘宝”战略简介
  223. 9.3.2 成立阿里云,专注云计算
  224. 9.3.3 利用大数据优化物流
  225. 9.3.4 技术是决胜“双11”的关键
  226. 第10章 Twitter:实时信息传递的王者
  227. 10.1 缓存,让响应更快
  228. 10.1.1 Twitter的诞生
  229. 10.1.2 RoR的蛮荒时代
  230. 10.1.3 使用Memcached
  231. 10.2 服务拆分与治理
  232. 10.2.1 关系数据库不是万灵药
  233. 10.2.2 系统拆分,平台转换
  234. 10.2.3 Finagle
  235. 10.3 抗击流量的洪流
  236. 10.3.1 业务的重新设计
  237. 10.3.2 Storm处理实时的大数据
  238. 10.3.3 从Storm到Heron
  239. 参考文献