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

本书特色

[

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

]

内容简介

[

本书的内容比较全面,涵盖分布式系统基础理论、常用技术以及经典的案例分析。全书篇幅较多,对分布式系统中的线程、通信、一致性、容错性、CAP理论、安全性、并发、RESTful风格架构、微服务、容器技术,以及分布式消息服务、分布式计算、分布式存储、分布式监控系统、分布式版本控制、RESTful、微服务等相关技术和知识点都作了详细的讲解,并辅以*网和Twitter为代表的国内外知名互联网企业的大型分布式系统为案例,分析其架构设计以及演变过程,做到了理论和实践相结合。

]

作者简介

[

多年软件开发管理及系统架构经验。负责过多个省、*大型分布式系统的设计与研发,也负责过多个大型项目的微服务架构的技术改造,在实际工作中,积累了大量的微服务架构经验。

]

目录

目  录第1章 分布式系统基础知识 11.1 概述 21.1.1 什么是分布式系统 21.1.2 集中式系统VS.分布式系统 31.1.3 如何设计分布式系统 41.1.4 分布式系统所面临的挑战 51.2 线程 61.2.1 什么是线程 61.2.2 进程和线程 71.2.3 编程语言中的线程对象 81.2.4 SimpleThreads示例 111.3 通信 141.3.1 网络基础知识 141.3.2 网络I/O模型的演进 191.3.3 远程过程调用(RPC) 331.3.4 面向消息的通信 411.4 一致性 431.4.1 以数据为中心的一致性模型 441.4.2 以客户为中心的一致性 451.5 容错性 461.5.1 基本概念 461.5.2 故障分类 471.5.3 使用冗余来掩盖故障 481.5.4 分布式提交 481.6 CAP理论 521.6.1 什么是CAP理论 521.6.2 为什么说CAP只能三选二 531.6.3 CAP常见模型 551.6.4 CAP的意义 561.6.5 CAP*新发展 561.7 安全性 571.7.1 基本概念 581.7.2 加密算法 601.7.3 安全通道 631.7.4 访问控制 721.8 并发 741.8.1 线程与并发 751.8.2 并发与并行 751.8.3 并发带来的风险 761.8.4 同步(Synchronization) 781.8.5 原子访问(Atomic Access) 83第2章 分布式系统架构体系 852.1 基于对象的体系结构 862.1.1 分布式对象 862.1.2 微软DCOM(COM ) 872.1.3 CORBA 882.1.4 Java RMI 902.2 面向服务的架构(SOA) 932.2.1 架构VS.标准 942.2.2 SOA的基本概念 952.2.3 基于Web Services的SOA 972.2.4 SOA的演变 1122.3 REST风格的架构 1122.3.1 什么是REST 1122.3.2 REST有哪些特征 1132.3.3 Java实现REST的例子 1152.3.4 REST API*佳实践 1252.4 微服务架构(MSA) 1282.4.1 什么是MSA 1282.4.2 MSA VS. SOA 1302.4.3 何时采用MSA 1342.4.4 如何构建微服务 1352.5 容器技术 1392.5.1 虚拟化技术 1392.5.2 容器VS.虚拟机 1392.5.3 基于容器的持续部署 1422.6 Serverless架构 1492.6.1 什么是Serverless架构 1502.6.2 Serverless典型的应用场景 1512.6.3 常见的Serverless框架 1532.6.4 Serverless架构原则 1552.6.5 例子:使用Serverless实现游戏全球同服 157第3章 分布式消息服务 1643.1 Apache ActiveMQ 1653.1.1 Apache ActiveMQ简介 1653.1.2 Apache ActiveMQ安装配置 1663.1.3 例子:producer-consumer 1733.1.4 例子:使用JMX来监控ActiveMQ 1743.1.5 例子:使用Java实现producer-consumer 1763.2 RabbitMQ 1803.2.1 RabbitMQ简介 1803.2.2 RabbitMQ安装配置 1813.2.3 例子:Work Queues 1853.2.4 例子:Publish/Subscribe 1913.2.5 例子:Routing 1953.2.6 例子:Topics 2003.2.7 例子:RPC 2043.3 RocketMQ 2103.3.1 RocketMQ简介 2103.3.2 RocketMQ安装配置 2133.3.3 例子:使用Java实现producer-consumer 2143.3.4 RocketMQ*佳实践 2193.4 Apache Kafka 2233.4.1 Apache Kafka简介 2243.4.2 Apache Kafka的核心概念 2253.4.3 Apache Kafka的使用场景 2283.4.4 Apache Kafka的安装、配置、使用 229第4章 分布式计算 2364.1 MapReduce 2374.1.1 MapReduce简介 2374.1.2 MapReduce的编程模型 2384.1.3 MapReduce的实现 2434.1.4 MapReduce的使用技巧 2484.2 Apache Hadoop 2514.2.1 Apache Hadoop简介 2524.2.2 Apache Hadoop核心组件 2534.2.3 Apache Hadoop单节点上的安装配置 2544.2.4 Apache Hadoop集群上的安装配置 2584.2.5 例子:词频统计WordCount程序 2674.3 Apache Spark 2724.3.1 Apache Spark简介 2724.3.2 Apache Spark与Apache Hadoop的关系 2744.3.3 Apache Spark 2.0的新特性 2754.3.4 Apache Spark的安装和使用 2794.3.5 Apache Spark集群模式 2804.4 Apache Mesos 2824.4.1 Apache Mesos简介 2834.4.2 Apache Mesos的安装、使用 2854.4.3 设计高可用的Mesos framework 289第5章 分布式存储 2965.1 Bigtable 2975.1.1 Bigtable简介 2975.1.2 Bigtable的数据模型 2985.1.3 Bigtable的实现 3005.1.4 Bigtable的性能优化 3045.2 Apache HBase 3085.2.1 Apache HBase简介 3085.2.2 Apache HBase基本概念 3105.2.3 Apache HBase架构 3185.2.4 Apache HBase的安装、配置、使用 3325.2.5 本地伪分布式 3365.2.6 完全分布式 3385.3 Apache Cassandra 3425.3.1 Apache Cassandra简介 3425.3.2 Apache Cassandra的应用场景 3455.3.3 Apache Cassandra的架构、数据模型 3465.3.4 用于配置Apache Cassandra的核心组件 3475.3.5 Apache Cassandra的安装、配置、使用 3495.4 Memcached 3525.4.1 Memcached简介 3525.4.2 Memcached的架构 3535.4.3 Memcached的安装、使用 3555.4.4 Memcached客户端 3585.5 Redis 3705.5.1 Redis简介 3705.5.2 Redis的下载、安装、使用 3725.5.3 Redis的数据类型及抽象 3725.6 MongoDB 3925.6.1 MongoDB简介 3925.6.2 MongoDB的安装、配置、运行 3945.6.3 MongoDB核心概念 4015.6.4 MongoDB的数据模型 4065.6.5 示例:Java连接MongoDB 420第6章 分布式监控 4226.1 Nagios 4236.1.1 Nagios简介 4236.1.2 Nagios的安装、使用 4246.1.3 Nagios监控 4286.1.4 Nagios插件 4466.2 Zabbix 4486.2.1 Zabbix简介 4496.2.2 安装Zabbix 4516.2.3 Zabbix对于容器的支持 4606.2.4 Zabbix基本概念 4636.3 Consul 4746.3.1 Consul简介 4756.3.2 Consul架构 4766.3.3 Consul的安装和使用 4786.3.4 Consul agent 4926.4 ZooKeeper 5016.4.1 ZooKeeper简介 5016.4.2 ZooKeeper的安装和使用 5056.4.3 ZooKeeper内部工作原理 5096.4.4 例子:ZooKeeper实现barrier和producer-consumer queue 514第7章 分布式版本控制系统 5227.1 Bazaar 5237.1.1 Bazaar简介 5237.1.2 Bazaar的核心概念 5257.1.3 Bazaar的安装 5267.1.4 Bazaar的使用 5287.2 Mercurial 5337.2.1 Mercurial简介 5337.2.2 Mercurial的核心概念 5337.2.3 Mercurial的安装 5377.2.4 Mercurial的使用 5387.3 Git 5457.3.1 Git简介 5457.3.2 Git的安装 5467.3.3 Git的基础概念 5487.3.4 Git的使用 551第8章 RESTful API、微服务及容器技术 5788.1 Jersey 5798.1.1 Jersey简介 5798.1.2 Jersey的模块和依赖 5808.1.3 JAX-RS核心概念 5838.1.4 例子:用SSE构建实时Web应用 5958.2 Spring Boot 6038.2.1 Spring Boot简介 6038.2.2 Spring Boot的安装 6048.2.3 Spring Boot的使用 6108.2.4 Spring Boot的属性与配置 6158.3 Docker 6208.3.1 Docker简介 6218.3.2 Docker的特性 6218.3.3 Docker的概念和原理 6228.3.4 Docker Engine的安装 6288.3.5 Docker的使用 633第9章 淘宝网:“双11”神话的缔造者 6369.1 从LAMP到Java平台的转变 6379.1.1 淘宝网的诞生与发展 6379.1.2 “平民英雄”LAMP架构 6389.1.3 数据库更改为Oracle 6399.1.4 向Java平台转变 6429.2 坚定不移地走“去IOE”的道路 6439.2.1 使用小型机、EMC存储 6449.2.2 考虑“去IOE” 6449.2.3 如何去“I” 6469.2.4 如何去“O” 6499.2.5 如何去“E” 6509.3 打造云计算,决战“双11” 6539.3.1 “大淘宝”战略简介 6539.3.2 成立阿里云,专注云计算 6569.3.3 利用大数据优化物流 6609.3.4 技术是决胜“双11”的关键 661第10章 Twitter:实时信息传递的王者 66410.1 缓存,让响应更快 66510.1.1 Twitter的诞生 66510.1.2 RoR的蛮荒时代 66610.1.3 使用Memcached 66710.2 服务拆分与治理 66810.2.1 关系数据库不是万灵药 66810.2.2 系统拆分,平台转换 67010.2.3 Finagle 67010.3 抗击流量的洪流 67210.3.1 业务的重新设计 67310.3.2 Storm处理实时的大数据 67510.3.3 从Storm到Heron 676参考文献 680

封面

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

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

作者:柳伟卫

页数:未知

定价:¥99.0

出版社:电子工业出版社

出版日期:2017-02-01

ISBN:9787121307713

PDF电子书大小:58MB 高清扫描完整版

百度云下载:http://www.chendianrong.com/pdf

发表评论

邮箱地址不会被公开。 必填项已用*标注