分布式微服务架构:原理与实战 黄文毅 pdf下载

分布式微服务架构:原理与实战 黄文毅 百度网盘pdf下载

作者:
简介:分布式微服务架构:原理与实战 黄文毅
出版社:
出版时间:2019-11
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

作  者:黄文毅 著
定  价:89
出 版 社:清华大学出版社
出版日期:2019年11月01日
页  数:0
装  帧:简装
ISBN:9787302537816
"本书是一本关于分布式服务架构的专著,采用Intellij IDEA新版本进行概念讲解与代码开发。 分布式服务架构是大型互联网公司采用的架构。本书依托工作实践,结合大量案例多方面剖析了分布式服务框架的设计原则和原理,涵盖服务架构演进、服务注册、服务路由、服务治理、服务限流、服务降级与容错等内容;同时,对基于Docker部署微服务和基于微服务架构开发、部署及运维业务系统进行了详细的论述。 本书注重理论与实战相结合,涵盖分布式服务架构开发中常用的知识点,内容详尽,代码可读性及可操作性强。在概念讲等
章 从架构演进启程1 1.1 水平分层架构1 1.1.1 应用架构概述1 1.1.2 MVC架构/水平分层架构2 1.2 SOA服务化架构3 1.2.1 SOA概述4 1.2.2 SOA的特征4 1.2.3 SOA面临的问题5 1.3 分布式微服务架构5 1.3.1 微服务概述5 1.3.2 SOA与微服务5 1.3.3 微服务架构的特点6 1.3.4 微服务架构的缺点6 1.3.5 微服务架构全景图7 1.3.6 微服务类型8 1.3.7 微服务拆分原则与步骤9 第2章 微服务开发框架11 2.1 环境准备11 2.1.1 安装JDK11 2.1.2 安装 Intellij IDEA14 2.1.3 安装 Apache Maven14 2.2 一分钟快速搭建Spring Boot项目15 2.2.1 使用Spring Initializr新建项目15 2.2.2 测试18 2.3 Spring Boot简单介绍18 2.3.1 Spring Boot核心功能及特性19 2.3.2 Spring Boot的缺点20 2.4 Spring Boot目录介绍20 2.4.1 Spring Boot工程目录20 2.4.2 Spring Boot入口类21 2.4.3 Spring Boot测试类22 2.4.4 pom文件23 2.5 Spring Boot生产级特性24 2.5.1 应用监控24 2.5.2 健康检查28 2.5.3 跨域访问29 2.5.4 外部配置30 第3章 分布式RPC框架31 3.1 RPC框架概述31 3.1.1 RPC的定义31 3.1.2 RPC核心组件31 3.1.3 RPC调用过程32 3.1.4 RPC框架调用分类33 3.1.5 RPC框架性能35 3.1.6 RPC框架与分布式服务框架35 3.2 RPC框架36 3.2.1 RMI远程方法调用36 3.2.2 Thrift37 3.2.3 Hessian38 3.2.4 Avro-RPC38 3.2.5 gRPC38 3.2.6 其他RPC框架39 第4章 序列化与反序列化40 4.1 序列化与反序列化40 4.1.1 序列化/反序列化概念40 4.1.2 序列化/反序列化特性41 4.2 常用序列化框架41 4.2.1 Java默认序列化41 4.2.2 XML序列化框架46 4.2.3 JSON序列化框架48 4.2.4 ProtoBuf序列化框架50 第5章 微服务底层通信与协议54 5.1 Java网络通信54 5.1.1 传统BIO编程54 5.1.2 伪异步I/O编程60 5.1.3 NIO编程62 5.2 Netty框架78 5.2.1 Netty概述78 5.2.2 个Netty应用程序78 5.2.3 Netty架构设计84 5.3 分布式服务框架协议89 5.3.1 主流公有协议89 5.3.2 私有协议设计90 第6章 服务路由与负载均衡94 6.1 服务路由概述94 6.1.1 服务路由的定义94 6.1.2 服务信息存放方式94 6.2 负载均衡概述95 6.2.1 Nginx的定义95 6.2.2 负载均衡的实现95 6.2.3 负载均衡算法98 第7章 微服务注册中心103 7.1 了解微服务注册中心103 7.1.1 注册中心几个概念103 7.1.2 注册中心104 7.2 ZooKeeper实现服务注册中心104 7.2.1 ZooKeeper概述104 7.2.2 ZooKeeper的原理105 7.2.3 ZooKeeper的安装106 7.2.4 ZooKeeper搭建集群环境109 7.2.5 ZooKeeper集群总体架构110 7.2.6 命令行客户端zkCli.sh112 7.2.7 ZkClient连接ZooKeeper116 7.2.8 ZooKeeper实现服务注册与发现120 第8章 微服务框架服务调用与容错122 8.1 服务调用概述122 8.2 服务调用方式123 8.2.1 同步服务调用123 8.2.2 异步服务调用125 8.2.3 并行服务调用130 8.2.4 泛化调用132 第9章 分布式微服务封装与部署133 9.1 微服务封装技术133 9.1.1 Docker概述133 9.1.2 Docker的基本概念135 9.1.3 Docker架构135 9.1.4 Docker的安装137 9.1.5 Docker的常用命令138 9.1.6 制作镜像142 9.1.7 使用Dockerfile构建镜像144 9.1.8 Spring Boot集成Docker147 9.2 微服务部署概述150 9.2.1 蓝绿部署150 9.2.2 滚动发布152 9.2.3 灰度发布/金丝雀部署154 0章 分布式服务限流155 10.1 服务限流概述155 10.1.1 限流定义155 10.1.2 限流算法155 10.2 限流设计157 10.2.1 限流设计原理157 10.2.2 分级限流158 1章 服务降级、熔断、调度159 11.1 服务降级概述159 11.2 服务降级方式159 11.2.1 服务降级开关159 11.2.2 自动降级160 11.2.3 读服务降级161 11.2.4 写服务降级161 11.3 服务容错策略161 11.3.1 失败转移(Failover)162 11.3.2 失败自动恢复(Failback)162 11.3.3 快速失败(Failfast)162 11.3.4 失败缓存(FailCache)162 11.4 Hystrix降级、熔断162 11.4.1 Hystrix简介162 11.4.2 Hystrix实现降级/熔断1 11.5 服务优先级设计165 11.5.1 服务实例数量调整165 11.5.2 加权优先级队列166 11.5.3 线程调度器167 2章 服务版本与服务发布168 12.1 服务概述168 12.2 服务版本168 12.2.1 服务版本概述168 12.2.2 Snapshot和Release169 12.3 服务发布169 12.3.1 服务发布概述169 12.3.2 服务发布方式170 3章 分布式微服务日志中心173 13.1 分布式日志概述173 13.1.1 结构化日志/非结构化日志173 13.1.2 日志类型175 13.2 日志框架175 13.2.1 JDK Logger175 13.2.2 Apache Commons Logging177 13.2.3 Log4j/Log4j 2177 13.2.4 Spring Boot集成Log4j179 13.2.5 Docker日志框架181 13.2.6 Linux系统Syslog183 13.3 搭建日志中心183 13.3.1 ELK概述183 13.3.2 Elasticsearch日志存储184 13.3.3 Logstash日志收集189 13.3.4 Fluentd日志收集191 13.3.5 Kibana日志查询193 13.3.6 ELK架构与Docker整合194 13.3.7 ELK架构原理195 4章 分布式微服务监控197 14.1 分布式服务架构监控197 14.1.1 监控的价值197 14.1.2 监控的完整体系197 14.1.3 微服务监控类型198 14.1.4 Spring Boot应用监控198 14.1.5 Spring Boot Admin监控系统201 14.2 搭建系统监控中心206 14.2.1 概述206 14.2.2 时序数据收集系统:cAdvisor206 14.2.3 时序数据存储系统:InfluxDB209 14.2.4 时序数据分析系统:Grafana212 14.2.5 集成InfluxDB + cAdvisor + Grafana214 5章 分布式微服务配置中心218 15.1 配置中心概述218 15.1.1 配置概述218 15.1.2 配置中心解决问题218 15.1.3 全局配置219 15.1.4 配置中心221 15.2 Spring Cloud Config223 15.2.1 Spring Cloud Config概述223 15.2.2 Spring Cloud Config快速入门224 6章 分布式微服务存储与解耦232 16.1 分布式数据库架构232 16.1.1 分库232 16.1.2 分表233 16.1.3 水平切分的方式233 16.1.4 垂直切分的方式235 16.1.5 分组235 16.1.6 Mycat分库分表实战236 16.1.7 Spring+MyBatis+Mycat快速体验240 16.2 分布式事务249 16.2.1 数据库事务249 16.2.2 分布式事务249 16.2.3 CAP定理250 16.2.4 BASE理论251 16.2.5 两阶段提交(2PC)252 16.2.6 补偿事务(TCC)252 16.2.7 后置提交254 16.2.8 本地消息表(异步确保)255 16.3 分布式缓存架构256 16.3.1 Memcache与Redis256 16.3.2 进程内缓存257 16.3.3 Redis单节点安装259 16.3.4 Redis持久化策略260 16.3.5 Redis主从复制模式263 16.3.6 Redis哨兵模式266 16.3.7 Redis哨兵模式安装部署271 16.3.8 Redis集群模式277 16.3.9 Redis集群环境搭建280 16.3.10 Redis缓存穿透和雪崩288 16.4 微服务解耦294 16.4.1 服务解耦概述294 16.4.2 Kafka介绍295 16.4.3 Kafka安装299 16.4.4 Kafka搭建集群环境300 16.4.5 Kafka Manager的安装301 16.4.6 Kafka常用命令301 16.4.7 Spring Boot集成Kafka311 16.5 分布式服务Session315 16.5.1 Session与Cookie315 16.5.2 Session一致性问题315 16.5.3 Session同步316 7章 分布式微服务测试318 17.1 分布式微服务测试318 17.1.1 微服务测试概述318 17.1.2 微服务测试319 17.2 Spring Boot单元测试321 17.3 Mockito/PowerMockito测试框架323 17.3.1 Mockito概述323 17.3.2 Mockito简单实例324 17.3.3 PowerMock概述327 17.3.4 PowerMockito简单实例327 17.4 H2内存型数据库330 17.4.1 H2概述330 17.4.2 Spring Boot集成H2330 17.5 REST API测试333 17.5.1 tman概述333 17.5.2 tman简单使用333 17.6 性能测试336 17.6.1 ab概述336 17.6.2 ab测试336 17.6.3 其他性能测试工具338 8章 分布式微服务架构经典案例341 18.1 微服务架构案例341 18.1.1 微服务架构概述341 18.1.2 微服务架构平台选择342 18.1.3 微服务接口类型342 18.2 分布式服务框架Dubbo343 18.2.1 Dubbo概述343 18.2.2 Dubbo原理344 18.3 Spring Boot + Spring Cloud解决方案345 18.3.1 Spring Boot概述345 18.3.2 Spring Cloud概述345 18.3.3 微服务、Spring Boot、Spring Cloud的关系347 18.3.4 Spring Cloud与Dubbo的优劣347 18.4 Spring Boot + Kubernetes + Docker解决方案348 18.4.1 Docker概述348 18.4.2 Kubernetes概述349 18.4.3 Kubernetes的基本概念349 18.4.4 Kubernetes的使用351 18.4.5 Kubernetes的架构356 18.4.6 Kubernetes集群监控359 18.4.7 Kubernetes集群日志管理359 18.4.8 Kubernetes解决方案359 参考文献361
随着互联网技术的发展,系统架构由单体架构、垂直MVC架构、SOA服务化、分布式服务演变到分布式微服务架构,这是互联网企业架构的必经之路。分布式微服务架构涵盖的技术面广,知识点多。本书旨在让更多计算机从业者熟悉一个完整的分布式微服务架构所涉及的基础概念、涵盖的技术以及实战开发。 本书蕴含的知识体系甚广,~2章主要讲解架构是如何向前演化发展的以及阅读本书之前需要准备的环境。第3~5章主要讲解服务之间的RPC调用、通信协议等。第6~7章主要讲解服务路由以及服务注册中心的原理和实践。第8章主要讲解服务调用。第9章主要讲解服务容器化以及如何部署和发布服务。0~11章主要讲解服务限流、降级、容错以及熔断等技术。2~13章主要讲解如何搭建服务日志和监控体系。5章主要讲解配置中心的原理以及如何搭建配置中心。6章主要讲解分布式数据库、分布式缓存、分布式事务、分布式Session以及服务如何通过Kafka解等
黄文毅 著
黄文毅,CSDN博客专家,CSDN学院、网易学院和腾讯学院等网络学院讲师。曾就职于厦门星耀蓝图科技有限公司(为浦发银行、兴业银行、银行、湖南农信银行等银行开发系统)和上海美团(从事美团和大众点评后端开发工作),目前就职于厦门美图科技有限公司,从事美图秀秀和美拍后端开发工作。
微服务是一种分布式系统架构,是近年来备受关注的话题。它是大型互联网公司系统架构发展到一定程度的产物。它建议我们将业务切分为更加细粒度的服务,并使每个服务的职责单一且可独立部署,服务内部高内聚,服务之间低耦合,彼此相互隔离。分布式微服务架构在大型互联网公司是一把利剑,但并非适合所有企业,比如传统IT企业。因为分布式微服务架构对技术要求高,需要我们有一个自动化部署系统、分布式微服务日志中心以及完善的服务监控和告警平台,对公司的运维人员要求更高,需要投入更多的人力和物力,只有大公司或者的技术团队才能真正玩得起微服务架构。所以,我们不能为了微服务而去微服务,需要根据企业自身的情况选择适合自己公司的系统架构。 本书是一本理论和实践相结合的图书,将非常完善地介绍分布式微服务所涵盖的方方面面的知识,并通过大量生动形象的原理图以及实战案例加深读者对微服务架构的理解,相信读者必会受益匪浅。 让我们开始分等