万本电子书0元读

万本电子书0元读

顶部广告

分布式系统开发实战电子书

(1)新。符合当今云架构发展现状的发技术,无论是大型企业还是个人发者,都或多或少地采用了分布式的方式来发和部署应用。 (2)全。涵盖REST设计、测试、服务注册、服务发现、安全、数据管理、消息通信、批处理、任务调度、运营、容器部署、持续发布等方面的知识。 (3)细。实战案例辅以大量理论知识,让读者透彻理解每一个知识。

售       价:¥

纸质售价:¥51.90购买纸书

86人正在读 | 0人评论 6.2

作       者:柳伟卫 编著

出  版  社:人民邮电出版社有限公司

出版时间:2021-03-01

字       数:41.9万

所属分类: 科技 > 计算机/网络 > 计算机教材

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
本书从原理和实践角度全面介绍如何设计分布式系统。内容包括节、通信、并发与并行、面向对象的分布式架构、面向服务的分布式架构、面向消息的分布式架构、 EST 风格的架构、微服务架构、 Serverless 架构、 Cloud Native 架构、虚拟化与容器技术、分布式计算、分布式存储、分布式监控、分布式版本控制、数据一致性、分布式事务、安全性、可用性等,内容丰富、案例新颖,相关理论与技术实践较为前瞻。本书*后还提供了一个综合实战案例,手把手教读者如何来基于Spring Cloud 技术来实现微服务架构。<br/>【推荐语】<br/>(1)新。符合当今云架构发展现状的发技术,无论是大型企业还是个人发者,都或多或少地采用了分布式的方式来发和部署应用。 (2)全。涵盖REST设计、测试、服务注册、服务发现、安全、数据管理、消息通信、批处理、任务调度、运营、容器部署、持续发布等方面的知识。 (3)细。实战案例辅以大量理论知识,让读者透彻理解每一个知识。<br/>【作者】<br/>在多家知名 IT 公司担任项目经理、架构师、高级发顾问等职位,具有多年软件发管理及系统架构经验。负责过多个省、大型分布式系统的设计与研发,参与了多个大型项目的微服务架构的技术改造,在实际工作中,积累了大量的分布式系统及微服务架构经验。业余时间创建了 waylau.com 网站,用于分享个人技术心得。喜欢源,长期跃于各大源社区,是 CSDN、 源中国、云栖社区等技术社区专家。为源社区无私编著了《Spring Framework 4.x参考文档》、《Netty 实战(精髓)》、《REST 实战》、《分布式 Java》、《Spring Boot 教程》、《Spring Security 教程》、《Thymeleaf 教程》等近30余篇技术教程,广受网友好评。其中出版了《分布式系统常用技术及案例分析》、《Spring Boot 企业级应用发实战》、《Spring Cloud 微服务架构发实战》等专著。<br/>
目录展开

扉页

目录

内容提要

前言

第1章 分布式系统概述

1.1 什么是分布式系统

1.2 分布式系统常用术语

1.3 集中式系统与分布式系统

1.4 分布式系统特征

1.5 设计分布式系统所面临的挑战

1.6 本章小结

1.7 习题

第2章 节点

2.1 什么是线程

2.2 进程和线程

2.3 线程和纤程

2.4 编程语言中的线程对象

2.4.1 定义和启动一个线程

2.4.2 暂停线程执行

2.4.3 中断线程

2.4.4 等待另一个线程完成

2.5 节点之间的通信

2.5.1 消息丢失

2.5.2 消息乱序

2.5.3 数据错误

2.5.4 不可靠的TCP

2.6 本章小结

2.7 习题

第3章 通信

3.1 本地过程调用

3.1.1 本地过程调用的概念

3.1.2 本地过程调用的实现

3.2 远程过程调用

3.2.1 远程过程调用原理

3.2.2 如何实现远程过程调用

3.2.3 远程过程调用API

3.2.4 远程过程调用发展历程

3.3 常用网络I/O模型

3.3.1 阻塞I/O模型

3.3.2 非阻塞I/O模型

3.3.3 I/O复用模型

3.3.4 信号驱动I/O模型

3.3.5 异步I/O模型

3.3.6 几种I/O模型的比较

3.4 I/O操作中的常用术语

3.4.1 阻塞和非阻塞

3.4.2 同步与异步

3.4.3 总结

3.5 实战:在Java中实现常用网络I/O模型

3.5.1 Java OIO

3.5.2 Java NIO

3.5.3 Java AIO

3.6 事件驱动

3.6.1 事件驱动编程

3.6.2 事件循环的实现

3.6.3 Reactor模型

3.6.4 Proactor模型

3.7 本章小结

3.8 习题

第4章 并发与并行

4.1 并发与并行的区别

4.2 线程与并发

4.3 并发带来的风险

4.3.1 死锁

4.3.2 饥饿

4.3.3 活锁

4.4 解决并发风险

4.4.1 同步

4.4.2 原子访问

4.5 提升系统并发能力

4.5.1 无锁化设计提升并发能力

4.5.2 缓存提升并发能力

4.5.3 更细颗粒度的并发单元

4.6 本章小结

4.7 习题

第5章 面向对象的分布式架构

5.1 基于对象的分布式架构

5.2 常用的分布式对象系统

5.2.1 微软DCOM

5.2.2 CORBA

5.2.3 Java RMI

5.3 分布式对象系统优缺点

5.4 实战:基于Java RMI实现分布式对象通信

5.4.1 示例概述

5.4.2 编写RMI服务器

5.4.3 编写RMI客户端

5.4.4 运行

5.5 本章小结

5.6 习题

第6章 面向服务的分布式架构

6.1 什么是面向服务的架构

6.2 SOA的基本概念

6.3 基于Web服务的SOA

6.3.1 XML-RPC

6.3.2 SOAP

6.3.3 Microsoft.NET Remoting

6.3.4 Java中的XML Web服务

6.3.5 超越SOAP

6.3.6 SOA的演变

6.4 Web服务的分类

6.4.1 “大”Web服务

6.4.2 RESTful Web服务

6.4.3 Web服务技术选型

6.5 实战:基于JAX-WS实现Web服务

6.5.1 JAX-WS概述

6.5.2 创建Web服务器和客户端的基本步骤

6.5.3 JAX-WS终端要求

6.5.4 创建基于JAX-WS的服务器

6.5.5 创建基于JAX-WS的客户端

6.5.6 运行

6.6 本章小结

6.7 习题

第7章 面向消息的分布式架构

7.1 什么是面向消息的分布式架构

7.1.1 常用术语

7.1.2 使用场景

7.1.3 常用技术

7.2 常见消息中间件产品介绍

7.2.1 Apache ActiveMQ

7.2.2 RabbitMQ

7.2.3 Apache RocketMQ

7.3 消息通信常用模式

7.3.1 工作队列

7.3.2 发布/订阅

7.3.3 路由

7.3.4 主题

7.3.5 RPC

7.4 了解JMS规范

7.4.1 JMS消息风格

7.4.2 JMS接口

7.5 实战:基于JMS的消息发送和接收

7.5.1 项目概述

7.5.2 项目配置

7.5.3 编码实现

7.5.4 运行

7.6 本章小结

7.7 习题

第8章 REST风格的架构

8.1 什么是REST

8.2 REST设计原则

8.3 成熟度模型

8.3.1 第0级:使用HTTP作为传输方式

8.3.2 第1级:引入了资源的概念

8.3.3 第2级:根据语义使用HTTP动词

8.3.4 第3级:使用HATEOAS

8.4 REST API管理

8.5 常用技术

8.5.1 JAX-RS规范

8.5.2 Jersey

8.5.3 Apache CXF

8.5.4 Spring Web MVC

8.6 实战:基于Java实现REST API

8.6.1 基于Jersey来构建REST服务

8.6.2 基于Apache CXF来构建REST服务

8.6.3 基于Spring Web MVC来构建REST服务

8.7 本章小结

8.8 习题

第9章 微服务架构

9.1 什么是微服务架构

9.2 微服务架构与SOA架构的区别

9.2.1 单体架构的例子

9.2.2 微服务架构的例子

9.3 何时采用微服务架构

9.4 常用技术

9.4.1 Jetty HTTP Server

9.4.2 构建REST程序

9.4.3 运行

9.5 实战:基于Spring Boot实现微服务

9.5.1 配置环境

9.5.2 REST API设计

9.5.3 编写程序代码

9.5.4 安装REST客户端

9.5.5 运行、测试程序

9.6 微服务与通信

9.6.1 HTTP通信

9.6.2 消息通信

9.6.3 事件驱动的通信

9.7 了解CQRS

9.7.1 CQRS概述

9.7.2 CQRS与Event Sourcing的关系

9.7.3 CQRS好处

9.8 实战:基于CQRS微服务通信

9.8.1 配置

9.8.2 Aggregate

9.8.3 Command

9.8.4 Event

9.8.5 测试

9.9 本章小结

9.10 习题

第10章 Serverless架构

10.1 什么是Serverless架构

10.2 Serverless架构的典型应用

10.2.1 UI驱动的应用

10.2.2 消息驱动的应用

10.3 常见的Serverless架构

10.3.1 AWS Lambda

10.3.2 Google Cloud Functions

10.3.3 Iron.io

10.3.4 IBM OpenWhisk

10.3.5 Serverless Framework

10.3.6 Azure WebJobs

10.4 Serverless架构原则

10.4.1 根据需要使用计算服务执行代码

10.4.2 编写单一用途的无状态函数

10.4.3 设计基于推送的、事件驱动的管道

10.4.4 创建更粗实、更强大的前端

10.4.5 拥抱第三方服务

10.5 实战:使用AWS平台实现Serverless架构

10.6 本章小结

10.7 习题

第11章 Cloud Native架构

11.1 Cloud Native概述

11.1.1 软件需求的发展

11.1.2 开发方式的巨变

11.1.3 云是大势所趋

11.2 Cloud Native特性

11.2.1 以云为基础架构

11.2.2 云服务

11.2.3 无服务

11.2.4 可扩展

11.2.5 高可用

11.2.6 敏捷

11.2.7 云优先

11.3 12-Factor

11.3.1 基准代码

11.3.2 依赖

11.3.3 配置

11.3.4 后端服务

11.3.5 构建、发布、运行

11.3.6 进程

11.3.7 端口绑定

11.3.8 并发

11.3.9 易处理

11.3.10 开发环境与线上环境等价

11.3.11 日志

11.3.12 管理进程

11.4 Cloud Native成功案例分析

11.4.1 Amazon

11.4.2 Netflix

11.4.3 淘宝网

11.5 Cloud Native与微服务架构的关系

11.6 Cloud Native与Serverless架构的关系

11.7 Cloud Native的优点及面临的挑战

11.7.1 Cloud Native优点

11.7.2 Cloud Native不是“银弹”

11.7.3 面临的挑战

11.8 本章小结

11.9 习题

第12章 虚拟化与容器技术

12.1 虚拟化技术

12.2 容器与虚拟机

12.2.1 成熟度方面的比较

12.2.2 启动速度的比较

12.2.3 安全方面的比较

12.2.4 性能方面的比较

12.3 基于容器的持续部署

12.3.1 持续部署管道

12.3.2 测试

12.3.3 构建

12.3.4 部署

12.3.5 蓝-绿部署

12.3.6 运行预集成以及集成后测试

12.3.7 回滚与清理

12.3.8 决定每个步骤的执行环境

12.3.9 完成整个持续部署流

12.4 容器技术与微服务架构

12.4.1 基于Google Kubernetes架构

12.4.2 基于DaoCloud DCE架构

12.5 容器技术与Cloud Native架构

12.6 实战:基于Docker发布微服务

12.6.1 创建微服务

12.6.2 微服务容器化

12.6.3 使用Gradle来构建Docker image

12.6.4 运行image

12.6.5 访问应用

12.6.6 关闭容器

12.6.7 Docker发布微服务

12.7 本章小结

12.8 习题

第13章 分布式计算

13.1 分布式计算概述

13.2 分布式计算应用场景

13.3 分布式计算常用技术

13.3.1 MapReduce

13.3.2 Apache Hadoop

13.3.3 Apache Spark

13.4 实战:基于Spark词频统计

13.4.1 项目概述

13.4.2 项目配置

13.4.3 编码实现

13.4.4 运行

13.5 本章小结

13.6 习题

第14章 分布式存储

14.1 分布式存储概述

14.2 分布式存储应用场景

14.3 分布式存储常用技术

14.3.1 Bigtable

14.3.2 Apache HBase

14.3.3 Apache Cassandra

14.3.4 Memcached

14.3.5 Redis

14.3.6 MongoDB

14.4 实战:基于MongoDB文件服务器

14.4.1 文件服务器的需求

14.4.2 所需技术

14.4.3 文件服务器的实现

14.4.4 运行

14.4.5 其他配置项

14.5 本章小结

14.6 习题

第15章 分布式监控

15.1 分布式监控概述

15.2 分布式监控应用场景

15.3 分布式监控常用技术

15.3.1 Nagios

15.3.2 Zabbix

15.3.3 Consul

15.3.4 ZooKeeper

15.4 实战:基于ZooKeeper的服务注册和发现

15.4.1 项目概述

15.4.2 项目配置

15.4.3 编码实现

15.4.4 运行

15.5 本章小结

15.6 习题

第16章 分布式版本控制

16.1 版本控制系统简史

16.2 集中式与分布式版本控制系统

16.3 常用技术

16.3.1 Bazaar

16.3.2 Mercurial

16.3.3 Git

16.4 了解Git Flow

16.4.1 分支定义

16.4.2 新功能开发工作流

16.4.3 Bug修复工作流

16.4.4 版本发布工作流

16.5 本章小结

16.6 习题

第17章 数据一致性

17.1 什么是CAP理论

17.2 为什么CAP只能三选二

17.3 CAP常见模型

17.3.1 牺牲分区容错性(CA模型)

17.3.2 牺牲可用性(CP模型)

17.3.3 牺牲一致性(AP模型)

17.4 CAP的意义及发展

17.4.1 CAP最新发展

17.4.2 BASE

17.5 以数据为中心的一致性模型

17.5.1 严格一致性

17.5.2 持续一致性

17.5.3 顺序一致性

17.5.4 因果一致性

17.5.5 入口一致性

17.6 以客户为中心的一致性模型

17.6.1 单调读一致性

17.6.2 单调写一致性

17.6.3 读写一致性

17.6.4 写读一致性

17.7 本章小结

17.8 习题

第18章 分布式事务

18.1 本地事务

18.1.1 一个银行转账的例子

18.1.2 事务隔离级别

18.2 分布式事务面临的挑战

18.3 节点复制

18.3.1 Master-Slave复制

18.3.2 Master-Master多主复制

18.4 两阶段提交

18.4.1 准备阶段

18.4.2 提交阶段

18.4.3 两阶段提交状态机

18.4.4 两阶段提交的缺陷

18.5 三阶段提交

18.5.1 CanCommit

18.5.2 PreCommit

18.5.3 DoCommit

18.5.4 三阶段提交状态机

18.5.5 三阶段提交的缺陷

18.6 Paxos算法

18.6.1 问题描述

18.6.2 提案的选定

18.6.3 获取被选定的提案值

18.6.4 进展性

18.6.5 实现

18.6.6 总结

18.6.7 缺陷

18.7 Raft算法

18.7.1 Raft概述

18.7.2 复制状态机

18.7.3 Raft算法基础

18.7.4 Raft算法Leader选举

18.7.5 Raft算法日志同步

18.7.6 Raft算法安全性

18.7.7 处理Follower和Candidate异常

18.7.8 时间要求及可用性

18.7.9 集群成员关系变更

18.7.10 日志压缩

18.7.11 客户端交互

18.7.12 总结

18.8 消息

18.8.1 本地消息表

18.8.2 事务消息

18.8.3 如何保障幂等性

18.8.4 总结

18.9 本章小结

18.10 习题

第19章 安全性

19.1 基本概念

19.1.1 安全威胁、策略和机制

19.1.2 密码与数字签名

19.2 加密算法

19.2.1 对称加密

19.2.2 使用对称密钥加密的数字签名

19.2.3 非对称加密

19.2.4 使用公钥加密的数字签名

19.3 安全通道

19.3.1 SSL/TLS

19.3.2 SSL握手过程

19.3.3 HTTPS

19.4 访问控制

19.4.1 防火墙

19.4.2 堡垒机

19.4.3 拒绝服务

19.4.4 访问控制的模型

19.5 实战:基于Spring Security实现安全认证

19.5.1 添加依赖

19.5.2 添加业务代码

19.5.3 配置消息转换器

19.5.4 配置Spring Security

19.5.5 创建应用配置类

19.5.6 创建内嵌Jetty的服务器

19.5.7 应用启动器

19.5.8 运行应用

19.6 本章小结

19.7 习题

第20章 可用性

20.1 故障不可避免

20.2 使用冗余提升系统可用性

20.3 常用副本控制协议

20.3.1 中心化副本控制协议

20.3.2 primary-secondary协议

20.3.3 去中心化副本控制协议

20.4 负载均衡技术

20.4.1 客户端发现模式

20.4.2 服务端发现模式

20.5 实战:基于NGINX实现服务高可用

20.5.1 配置负载均衡

20.5.2 负载均衡常用算法

20.5.3 实现Web服务的高可用

20.5.4 运行

20.6 本章小结

20.7 习题

第21章 综合实战:基于Spring Cloud的微服务架构设计与实现

21.1 Spring Cloud概述

21.1.1 什么是Spring Cloud

21.1.2 Spring Cloud与Spring Boot的关系

21.2 Spring Cloud入门配置

21.2.1 Maven配置

21.2.2 Gradle配置

21.2.3 声明式方法

21.3 Spring Cloud的子项目介绍

21.3.1 Spring Cloud子项目的组成

21.3.2 Spring Cloud组件的版本

21.4 实现微服务的注册与发现

21.4.1 服务发现的意义

21.4.2 如何集成Eureka Server

21.4.3 如何集成Eureka Client

21.4.4 实现服务的注册与发现

21.5 本章小结

21.6 习题

附录 本书所涉及的软件及相关版本

参考文献

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部