书籍详情

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

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

作者:柳伟卫

出版社:电子工业出版社

出版时间:2017-01-01

ISBN:9787121307713

定价:¥99.00

购买这本书可以去
内容简介
  本书分为三大部分,即分布式系统基础理论、分布式系统常用技术以及经典的分布式系统案例分析。*部分主要介绍分布式系统基础理论知识,总结一些在设计分布式系统时需要考虑的范式、知识点以及可能会面临的问题,其中包括线程、通信、一致性、容错性、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.4 SimpleThreads示例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.6 CAP理论52
1.6.1 什么是CAP理论52
1.6.2 为什么说CAP只能三选二53
1.6.3 CAP常见模型55
1.6.4 CAP的意义56
1.6.5 CAP最新发展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.3 CORBA88
2.1.4 Java RMI90
2.2 面向服务的架构(SOA)93
2.2.1 架构VS.标准94
2.2.2 SOA的基本概念95
2.2.3 基于Web Services的SOA97
2.2.4 SOA的演变112
2.3 REST风格的架构112
2.3.1 什么是REST112
2.3.2 REST有哪些特征113
2.3.3 Java实现REST的例子115
2.3.4 REST API最佳实践125
2.4 微服务架构(MSA)128
2.4.1 什么是MSA128
2.4.2 MSA VS. 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.6 Serverless架构149
2.6.1 什么是Serverless架构150
2.6.2 Serverless典型的应用场景151
2.6.3 常见的Serverless框架153
2.6.4 Serverless架构原则155
2.6.5 例子:使用Serverless实现游戏全球同服157
第3章 分布式消息服务164
3.1 Apache ActiveMQ165
3.1.1 Apache ActiveMQ简介165
3.1.2 Apache ActiveMQ安装配置166
3.1.3 例子:producer-consumer173
3.1.4 例子:使用JMX来监控ActiveMQ174
3.1.5 例子:使用Java实现producer-consumer176
3.2 RabbitMQ180
3.2.1 RabbitMQ简介180
3.2.2 RabbitMQ安装配置181
3.2.3 例子:Work Queues185
3.2.4 例子:Publish/Subscribe191
3.2.5 例子:Routing195
3.2.6 例子:Topics200
3.2.7 例子:RPC204
3.3 RocketMQ210
3.3.1 RocketMQ简介210
3.3.2 RocketMQ安装配置213
3.3.3 例子:使用Java实现producer-consumer214
3.3.4 RocketMQ最佳实践219
3.4 Apache Kafka223
3.4.1 Apache Kafka简介224
3.4.2 Apache Kafka的核心概念225
3.4.3 Apache Kafka的使用场景228
3.4.4 Apache Kafka的安装、配置、使用229
第4章 分布式计算236
4.1 MapReduce237
4.1.1 MapReduce简介237
4.1.2 MapReduce的编程模型238
4.1.3 MapReduce的实现243
4.1.4 MapReduce的使用技巧248
4.2 Apache Hadoop251
4.2.1 Apache Hadoop简介252
4.2.2 Apache Hadoop核心组件253
4.2.3 Apache Hadoop单节点上的安装配置254
4.2.4 Apache Hadoop集群上的安装配置258
4.2.5 例子:词频统计WordCount程序267
4.3 Apache Spark272
4.3.1 Apache Spark简介272
4.3.2 Apache Spark与Apache Hadoop的关系274
4.3.3 Apache Spark 2.0的新特性275
4.3.4 Apache Spark的安装和使用279
4.3.5 Apache Spark集群模式280
4.4 Apache Mesos282
4.4.1 Apache Mesos简介283
4.4.2 Apache Mesos的安装、使用285
4.4.3 设计高可用的Mesos framework289
第5章 分布式存储296
5.1 Bigtable297
5.1.1 Bigtable简介297
5.1.2 Bigtable的数据模型298
5.1.3 Bigtable的实现300
5.1.4 Bigtable的性能优化304
5.2 Apache HBase308
5.2.1 Apache HBase简介308
5.2.2 Apache HBase基本概念310
5.2.3 Apache HBase架构318
5.2.4 Apache HBase的安装、配置、使用332
5.2.5 本地伪分布式336
5.2.6 完全分布式338
5.3 Apache Cassandra342
5.3.1 Apache Cassandra简介342
5.3.2 Apache Cassandra的应用场景345
5.3.3 Apache Cassandra的架构、数据模型346
5.3.4 用于配置Apache Cassandra的核心组件347
5.3.5 Apache Cassandra的安装、配置、使用349
5.4 Memcached352
5.4.1 Memcached简介352
5.4.2 Memcached的架构353
5.4.3 Memcached的安装、使用355
5.4.4 Memcached客户端358
5.5 Redis370
5.5.1 Redis简介370
5.5.2 Redis的下载、安装、使用372
5.5.3 Redis的数据类型及抽象372
5.6 MongoDB392
5.6.1 MongoDB简介392
5.6.2 MongoDB的安装、配置、运行394
5.6.3 MongoDB核心概念401
5.6.4 MongoDB的数据模型406
5.6.5 示例:Java连接MongoDB420
第6章 分布式监控422
6.1 Nagios423
6.1.1 Nagios简介423
6.1.2 Nagios的安装、使用424
6.1.3 Nagios监控428
6.1.4 Nagios插件446
6.2 Zabbix448
6.2.1 Zabbix简介449
6.2.2 安装Zabbix451
6.2.3 Zabbix对于容器的支持460
6.2.4 Zabbix基本概念463
6.3 Consul474
6.3.1 Consul简介475
6.3.2 Consul架构476
6.3.3 Consul的安装和使用478
6.3.4 Consul agent492
6.4 ZooKeeper501
6.4.1 ZooKeeper简介501
6.4.2 ZooKeeper的安装和使用505
6.4.3 ZooKeeper内部工作原理509
6.4.4 例子:ZooKeeper实现barrier和producer-consumer queue514
第7章 分布式版本控制系统522
7.1 Bazaar523
7.1.1 Bazaar简介523
7.1.2 Bazaar的核心概念525
7.1.3 Bazaar的安装526
7.1.4 Bazaar的使用528
7.2 Mercurial533
7.2.1 Mercurial简介533
7.2.2 Mercurial的核心概念533
7.2.3 Mercurial的安装537
7.2.4 Mercurial的使用538
7.3 Git545
7.3.1 Git简介545
7.3.2 Git的安装546
7.3.3 Git的基础概念548
7.3.4 Git的使用551
第8章 RESTful API、微服务及容器技术578
8.1 Jersey579
8.1.1 Jersey简介579
8.1.2 Jersey的模块和依赖580
8.1.3 JAX-RS核心概念583
8.1.4 例子:用SSE构建实时Web应用595
8.2 Spring Boot603
8.2.1 Spring Boot简介603
8.2.2 Spring Boot的安装604
8.2.3 Spring Boot的使用610
8.2.4 Spring Boot的属性与配置615
8.3 Docker620
8.3.1 Docker简介621
8.3.2 Docker的特性621
8.3.3 Docker的概念和原理622
8.3.4 Docker Engine的安装628
8.3.5 Docker的使用633
第9章 淘宝网:“双11”神话的缔造者636
9.1 从LAMP到Java平台的转变637
9.1.1 淘宝网的诞生与发展637
9.1.2 “平民英雄”LAMP架构638
9.1.3 数据库更改为Oracle639
9.1.4 向Java平台转变642
9.2 坚定不移地走“去IOE”的道路643
9.2.1 使用小型机、EMC存储644
9.2.2 考虑“去IOE”644
9.2.3 如何去“I”646
9.2.4 如何去“O”649
9.2.5 如何去“E”650
9.3 打造云计算,决战“双11”653
9.3.1 “大淘宝”战略简介653
9.3.2 成立阿里云,专注云计算656
9.3.3 利用大数据优化物流660
9.3.4 技术是决胜“双11”的关键661
第10章 Twitter:实时信息传递的王者664
10.1 缓存,让响应更快665
10.1.1 Twitter的诞生665
10.1.2 RoR的蛮荒时代666
10.1.3 使用Memcached667
10.2 服务拆分与治理668
10.2.1 关系数据库不是万灵药668
10.2.2 系统拆分,平台转换670
10.2.3 Finagle670
10.3 抗击流量的洪流672
10.3.1 业务的重新设计673
10.3.2 Storm处理实时的大数据675
10.3.3 从Storm到Heron676
参考文献680
猜您喜欢

读书导航