包邮 分布式系统常用技术及案例分析第二版+分布式服务框架原理与实践+架构探险从零开始写分布式服务pdf下载

包邮 分布式系统常用技术及案例分析第二版+分布式服务框架原理与实践+架构探险从零开始写分布式服务百度网盘pdf下载

作者:
简介:包邮 分布式系统常用技术及案例分析第二版+分布式服务框架原理与实践+架构探险从零开始写分布式服务
出版社:
出版时间:
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍


9787000006669


9787121356773+9787121279195+9787121319594+9787121341359+9787121309540

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





本书分两部分,一部分主要介绍分布式系统基础理论知识,总结一些在设计分布式系统时需要考虑的范式、知识点以及可能会面临的问题,其中包括线程、通信、一致性、容错性、CAP理论、安全性和并发等相关内容;同时讲述分布式系统的常见架构体系,其中也包括近比较火的RESTful风格架构、微服务、容器技术等。二部分主要列举了在分布式系统应用中经常用到的一些主流技术,并介绍这些技术的作用和用法;这些技术涵盖了分布式消息服务、分布式计算、分布式存储、分布式监控系统、分布式版本控制、RESTful、微服务、容器等领域的内容。 


柳伟卫,网名老卫(waylau),在 IT 公司担任项目经理、架构师、高级开发顾问等职位,具有多年软件开发管理及系统架构经验。负责过多个省、大型分布式系统的设计与研发,参与了多个大型项目的微服务架构的技术改造,在实际工作中,积累了大量的分布式系统及微服务架构经验。业余时间创建了 waylau.com 网站,用于分享个人技术心得。喜欢开源,长期跃于各大开源社区,是 CSDN、 开源中国、云栖社区等技术社区专家。为开源社区无私编著了《Spring Framework 4.x参考文档》、《Netty 实战(精髓)》、《REST 实战》、《分布式 Java》、《Spring Boot 教程》、《Spring Security 教程》、《Thymeleaf 教程》等近30余篇技术教程,广受网友好评。其中出版了《分布式系统常用技术及案例分析》、《Spring Boot 企业级应用开发实战》、《Spring Cloud 微服务架构开发实战》等专著。 

关联推荐

本书主要面向的读者是对分布式系统感兴趣的计算机专业学生、软件工程师、系统架构师等。 

目  录


第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 发布微服务


内容简介





分布式服务框架目前已经是互联网公司实现SOA服务化架构的基础设施,对于一般的开发而言,自己要独立实现一个分布式服务框架,还是有相当的难度的。本书围绕如何从零开始实现一个可用的分布式服务框架,介绍了实现分布式服务框架所需技术的方方面面。对于从事开发行业的程序员有很大的现实价值。能够从中学习到很多的实用技术,了解并掌握实现分布式服务框架所需的思想以及技术。




目录






第1章 常用的RPC框架1
1.1 RPC框架原理1
1.2 RMI介绍2
1.2.1 原生RMI代码示例3
1.2.2 RMI穿透防火墙5
1.3 CXF/Axis2介绍7
1.3.1 CXF介绍7
1.3.2 Axis2介绍14
1.4 Thrift介绍21
1.4.1 Thrift工作原理介绍23
1.4.2 Thrift IDL语法说明26
1.4.3 基于Apache Thrift的Java版完整案例28
1.4.4 基于Java注解的简化实现36
1.5 gRPC介绍42
1.5.1 protobuf3语法介绍43
1.5.2 gRPC使用示例45
1.6 HTTP Client介绍53
1.6.1 构建HttpClient对象54
1.6.2 构建URI对象55
1.6.3 构建请求对象(HttpGet、HttpPost)56
1.6.4 HttpClient发起调用及获取调用返回结果56
1.7 实现自己的RPC框架61
1.8 RPC框架与分布式服务框架的区别68
1.9 本章小结68
第2章 分布式服务框架总体架构与功能69
2.1 面向服务的体系架构(SOA)69
2.1.1 面向服务架构范式69
2.1.2 服务拆分原则71
2.2 分布式服务框架现实需求72
2.3 分布式服务框架总体架构及所需的技术概述72
2.4 本章小结74
第3章 分布式服务框架序列化与反序列化实现75
3.1 序列化原理及常用的序列化介绍75
3.2 Java默认的序列化77

3.3 XML序列化框架介绍80.........



内容简介


2018-06-12《大型网站技术架构演进与性能优化》从一名亲历者的角度,阐述了一个网站在业务量飞速发展的过程中所遇到的技术转型等各种问题及解决思路。从技术发展上看,网站经历了Web应用系统从分布式、无线多端、中台到国际化的改造;在解决大流量问题的方向上,涉及了从端的优化到管道到服务端甚至到基础环境优化的各个层面。

《大型网站技术架构演进与性能优化》总结的宝贵经验教训可以帮助读者了解当网站遇到类似问题时,应如何思考不同的解决思路、为什么要这样做、并最终做出合适的方案选择。



目录





1 构建大型网站:分布式改造 1

1.1 为什么要做分布式化 1

1.2 典型的分布式架构 2

1.3 分布式配置框架 4

1.4 分布式RPC 框架 6

1.5 分布式消息框架 8

1.6 分布式数据层 11

1.7 分布式文件系统 12

1.8 应用的服务化改造 15

1.9 分布式化遇到的典型问题 16

1.10 分布式消息通道服务的设计 19

1.11 典型的分布式集群设计思路 21

1.12 总结 24

2 无线化:无线时代下的架构演进 26

2.1 无线环境下的新挑战 26

2.2 端的演进 28

2.3 无线链路的优化 32

2.4 服务端的演进 36

2.5 思考:开发语言选择的思考 44

2.5 总结 46

3 大型网站平台化演进:大中台小前台 49

3.1 为什么需要中台 49

3.2 什么是中台 53

3.3 提升中台的效率 55

3.4 中台是否能解决一切问题 64

3.5 总结 65

4 全球化下的网站演进:全球部署方案 66

4.1 国际化的背景 67

4.2 面临的技术挑战 68

4.3 全球部署的目标架构 69

4.4 何为单元化 69

4.5 单元化解决什么问题 70

4.6 单元化数据分片方案 70

4.7 数据路由方案 74

4.8 接入层路由 78

4.9 服务层路由 79

4.10 数据层路由 81

4.10 Sequence ID 的冲突问题 83

4.11 异地多活 84

4.12 多语言问题 85

4.14 多时区问题 86

4.15 全球数据同步与数据路由 89

4.16 通用版与定制版的选择 90

4.17 全球化部署中遇到的坑 91

4.18 总结 92

5 应用程序优化:代码级优化 93

5.1 优化思路 93

5.2 影响性能的关键因素 97

5.3 Java 特性的优化 102

5.4 减少并发冲突 104

5.5 减少序列化 105

5.6 减少字符到字节的转换 105

5.7 使用长连接 106

5.8 总结 106



内容简介



通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计案例,为读者呈现一幅包括技术选型、架构设计、性能优化、Web 安全、系统发布、运维监控等在内的大型网站开发全景视图。





目录





第 1 部分 概述 ......................................................................................... 1
1 交易型系统设计的一些原则 .................................................................................... 2
1.1 高并发原则 ................................................................................................................ 3
1.1.1 无状态 ............................................................................................................ 3
1.1.2 拆分 ................................................................................................................ 3
1.1.3 服务化 ............................................................................................................ 4
1.1.4 消息队列 ........................................................................................................ 4
1.1.5 数据异构 ........................................................................................................ 6
1.1.6 缓存银弹 ........................................................................................................ 7
1.1.7 并发化 ............................................................................................................ 9
1.2 高可用原则 .............................................................................................................. 10
1.2.1 降级 .............................................................................................................. 10
1.2.2 限流 .............................................................................................................. 11
1.2.3 切流量 .......................................................................................................... 12
1.2.4 可回滚 .......................................................................................................... 12
1.3 业务设计原则 .......................................................................................................... 12
1.3.1 防重设计 ...................................................................................................... 13
1.3.2 幂等设计 ...................................................................................................... 13
1.3.3 流程可定义 .................................................................................................. 13
1.3.4 状态与状态机 .............................................................................................. 13
1.3.5 后台系统操作可反馈 .................................................................................. 14
1.3.6 后台系统审批化 .......................................................................................... 14
1.3.7 文档和注释 .................................................................................................. 14
XXIV | 亿级流量网站架构核心技术——跟开涛学搭建高可用高并发系统
1.3.8 备份 .............................................................................................................. 14
1.4 总结 ........................................................................................................................... 14
第 2 部分 高可用 ..................................................................................... 17
2 负载均衡与反向代理 ............................................................................................ 18
2.1 upstream 配置 ........................................................................................................... 20
2.2 负载均衡算法 ........................................................................................................... 21
2.3 失败重试 ................................................................................................................... 23
2.4 健康检查 ................................................................................................................... 24
2.4.1 TCP 心跳检查 .............................................................................................. 24
2.4.2 HTTP 心跳检查 ........................................................................................... 24
2.5 其他配置 ................................................................................................................... 25
2.5.1 域名上游服务器 .......................................................................................... 25
2.5.2 备份上游服务器 .......................................................................................... 26
2.5.3 不可用上游服务器 ...................................................................................... 26
2.6 长连接 ....................................................................................................................... 26
2.7 HTTP 反向代理示例 ................................................................................................ 29
2.8 HTTP 动态负载均衡 ................................................................................................ 30
2.8.1 Consul+Consul-template .............................................................................. 31
2.8.2 Consul+OpenResty .............





内容简介

本书作者具有丰富的分布式服务框架、平台中间件的架构设计和实践经验,主导设计的华为分布式服务框架已经在全球数十个国家成功商用。书中依托工作实践,从分布式服务框架的架构设计原理到实践经验总结,涵盖了服务化架构演进、订阅发布、路由策略、集群容错和服务治理等多个专题,全方位剖析服务框架的设计原则和原理,结合大量实践案例与读者分享作者对分布式服务框架设计和运维的体会。同时,对基于Docker部署微服务以及基于微服务架构开发、部署和运维业务系统进行了详细介绍。



目录

第1章应用架构演进1
1.1传统垂直应用架构2
1.1.1垂直应用架构介绍2
1.1.2垂直应用架构面临的挑战4
1.2RPC架构6
1.2.1RPC框架原理6
1.2.2最简单的RPC框架实现8
1.2.3业界主流RPC框架14
1.2.4RPC框架面临的挑战17
1.3SOA服务化架构18
1.3.1面向服务设计的原则18
1.3.2服务治理19
1.4微服务架构21
1.4.1什么是微服务21
1.4.2微服务架构对比SOA22
1.5总结23
第2章分布式服务框架入门25
2.1分布式服务框架诞生背景26
2.1.1应用从集中式走向分布式.26?
2.1.2亟需服务治理28
2.2业界分布式服务框架介绍29
2.2.1阿里Dubbo30
2.2.2淘宝HSF33
2.2.3亚马逊CoralService35
2.3分布式服务框架设计36
2.3.1架构原理36
2.3.2功能特性37
2.3.3性能特性39
2.3.4可靠性39
2.3.5服务治理40
2.4总结41
第3章通信框架42
3.1关键技术点分析43
3.1.1长连接还是短连接43
3.1.2BIO还是NIO43
3.1.3自研还是选择开源NIO框架46
3.2功能设计47
3.2.1服务端设计48
3.2.2客户端设计50
3.3可靠性设计53
3.3.1链路有效性检测54
3.3.2断连重连机制56
3.3.3消息缓存重发57
3.3.4资源优雅释放58
3.4性能设计59
3.4.1性能差的三宗罪59
3.4.2通信性能三原则60
3.4.3高性能之道61
3.5最佳实践61
3.6总结64
第4章序列化与反序列化65
4.1几个关键概念澄清66
4.1.1序列化与通信框架的关系66
4.1.2序列化与通信协议的关系66
4.1.3是否需要支持多种序列化方式67
4.2功能设计67
4.2.1功能丰富度67
4.2.2跨语言支持68
4.2.3兼容性69
4.2.4性能70
4.3扩展性设计71
4.3.1内置的序列化/反序列化功能类71
4.3.2反序列化扩展72
4.3.3序列化扩展75
4.4最佳实践77
4.4.1接口的前向兼容性规范77
4.4.2高并发下的稳定性78
4.5总结78
第5章协议栈79
5.1关键技术点分析.80
5.1.1是否必须支持多协议80
5.1.2公有协议还是私有协议80
5.1.3集成开源还是自研81
5.2功能设计82
5.2.1功能描述82
5.2.2通信模型82
5.2.3协议消息定义84
5.2.4协议栈消息序列化支持的字段类型85
5.2.5协议消息的序列化和反序列化86
5.2.6链路创建89
5.2.7链路关闭90
5.3可靠性设计90
5.3.1客户端连接超时90
5.3.2客户端重连机制91
5.3.3客户端重复握手保护91
5.3.4消息缓存重发92
5.3.5心跳机制92
5.4安全性设计92
5.5最佳实践—协议的前向兼容性94
5.6总结95