>
架构解密 从分布式到微服务+人人都是架构师+Spring Cloud与Docker微服务架构实战+亿级流量网站架构核心技术 软件开发技术基础书
9787121315626 9787121312717 9787121313011 9787121309540 9787121312380
架构解密:从分布式到微服务
>历经三年终出版!从你想了解的源码、理论、经验、视野等维度,对从分布式到微服务,进行架构解密!>
>
>
分布式架构与微服务平台是当今IT界的关键技术,也是软件工程师和架构师必须掌握的核心技术。《架构解密:从分布式到微服务》以从传统分布式架构迁移到基于容器技术的微服务架构为主线,全面、透彻地介绍了与分布式架构及微服务相关的知识和技术。《架构解密:从分布式到微服务》一开始并没有提及分布式的枯燥理论,而是讲述了一段精彩的IT发展史,其中重点讲述了大型机、UNIX小机器的没落与X86平台的崛起,从而巧妙地引出CPU、内存、网络、存储的分布式演进过程,这恰恰是分布式软件赖以运行的“物质基础”。然后简明扼要地介绍了进行架构所必需的网络基础,并详细介绍了分布式中的**理论、设计套路及RPC通信,对内存、SOA架构、分布式存储、分布式计算等进行了深度解析,·后详细介绍了全文检索与消息队列中间件,以及微服务架构所涉及的重点内容。 《架构解密:从分布式到微服务》是Leader-us多年架构经验的倾情分享,主要面向关注分布式架构及微服务,以及有志于成为实力派架构师的IT人士。>
>
>
Leader-us,本名吴治辉,惠普软件架构师,国内知名开源分布式数据库中间件 Mycat的发起人,精通Java编程,拥有超过16年软件研发经验,专注于电信和云计算方面的软件研发,参与过众多分布式与云计算相关的大型项目架构设计和 Coding,是业界少有的具备很强 Coding 能力的 S级架构师;曾经选拔和培养了大批**Java工程师,他们中的大多数人进入知名软件公司参与核心研发,也有一些人选择创业。 Leader-us 也是《ZeroC Ice 木又威指南》《Kubernetes 木又威指南:从 Docker到 Kubernetes 实践全接触》的作者。>
>
第1章 大话分布式 11.1 IT争霸战 11.1.1 划时代的,台计算机 11.1.2 IT界的恐龙时代 41.1.3 贵族的没落与平民的胜利 61.1.4 ARM新贵的爆发 101.1.5 计算机的绝地反击 111.2 分布式的开国元勋 131.3 分布式的基石:TCP/IP 171.4 从无奈到崛起的CDN网 191.5 这是一个·好的时代 21第2章 “知识木桶”中的短板—— 网络基础 232.1 即使高手也不大懂的网络 232.2 NIO,一本难念的经 302.2.1 难懂的ByteBuffer 302.2.2 晦涩的“非阻塞” 392.2.3 复杂的Reactor模型 412.3 AIO,大道至简的设计与苦涩的现实 452.4 网络传输中的对象序列化问题 50第3章 分布式的**基础理论 553.1 从分布式的设计理念说起 553.2 分布式的一致性原理 583.3 分布式的基石之ZooKeeper 613.3.1 ZooKeeper的原理与功能 613.3.2 ZooKeeper的场景案例分析 653.4 **的CA理论 693.5 BASE准则,一个影响深远的指导思想 723.6 重新认识分布式事务 733.6.1 数据库单机事务的实现原理 733.6.2 **的X/OpenDTP事务模型 753.6.3 互联网中的分布式事务解决方案 78第4章 聊聊RPC 834.1 从IPC通信说起 834.2 古老又有生命力的RPC 854.3 从RPC到服务治理框架 914.4 基于ZeroC Ice的微服务架构指南 944.4.1 微服务架构概述 954.4.2 ZeroC Ice微服务架构指南 100第5章 深入浅析内存 1075.1 你所不知道的内存知识 1075.1.1 复杂的CPU与单纯的内存 1075.1.2 多核CPU与内存共享的问题 1105.1.3 的Cache伪共享问题 1135.1.4 深入理解不一致性内存 1155.2 内存计算技术的前世今生 1185.3 内存缓存技术分析 1235.3.1 缓存概述 123>
>
亿级流量网站架构核心技术 跟开涛学搭建高可用高并发
>
亿级流量网站架构核心技术》一书总结并梳理了亿级流量网站高可用和高并发原则,通过实例详细介绍了如何落地这些原则。本书分为四部分:概述、高可用原则、高并发原则、案例实战。从负载均衡、限流、降级、隔离、超时与重试、回滚机制、压测与预案、缓存、池化、异步化、扩容、队列等多方面详细介绍了亿级流量网站的架构核心技术,让读者看后能快速运用到实践项目中。
不管是软件开发人员,还是运维人员,通过阅读《亿级流量网站架构核心技术》都能地学习实现亿级流量网站的架构核心技术,并收获解决问题的思路和方法。
张开涛,现就职于京东,“开涛的博客”公众号作者。写过《跟我学Spring》《跟我学Spring MVC》《跟我学Shiro》《跟我学Nginx+Lua开发》等系列教程,博客现有1000多万访问量。
>
第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
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心跳检查 / 25
2.5 其他配置 / 25
2.5.1 域名上游服务器 / 25
..........
Spring Cloud微服务实战+Spring Cloud与Docker微服务架构实战
Spring Cloud与Docker微服务架构实战
>
- 作者:
- 出版社:
- ISBN:9787121312717
- 上架时间:2017-4-6
- 出版日期:2017 年4月
- 开本:16开
- 页码:268
- 版次:1-1
- 所属分类:
作为一部帮助大家实现微服务架构落地的作品,《Spring Cloud与Docker微服务架构实战》覆盖了微服务理论、微服务开发框架(Spring Cloud)以及运行平台(Docker)三大主题。全书可分为三部分,第1章对微服务架构进行了的介绍;第2-11章使用Spring Cloud开发框架编写了一个"电影售票";第12-14章则讲解了如何将微服务应用运行在Docker之上。全书Demo驱动学习,以连贯的场景、具体的代码示例来引导读者学习相关知识,·终使用特定的技术栈实现微服务架构的落地。
>
热爱技术交流,曾代表公司参加微服务架构高峰论坛、QCon等技术沙龙。拥抱开源,在GitHub与Git@OSC上开源多个项目,并获得了开源中国的,例如开源电子书《使用Spring Cloud与Docker实战微服务》等。
笔者博客:http://itmuch.com,定期分享Spring Cloud相关博客。读者可扫码关注Spring Cloud 中国社区公众号以及作者公众号。
>
- 1 微服务架构概述. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 单体应用架构存在的问题1
1.2 如何解决单体应用架构存在的问题3
1.3 什么是微服务3
1.4 微服务架构的优点与挑战5
1.4.1 微服务架构的优点5
1.4.2 微服务架构面临的挑战5
1.5 微服务设计原则6
1.6 如何实现微服务架构7
1.6.1 技术选型7
1.6.2 架构图及常用组件8
2 微服务开发框架--Spring Cloud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1 Spring Cloud 简介10
2.2 Spring Cloud 特点10
2.3 Spring Cloud 版本11
2.3.1 版本简介11
2.3.2 子项目一览12
2.3.3 Spring Cloud/Spring Boot 版本兼容性13
3 开始使用Spring Cloud 实战微服务. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.1 Spring Cloud 实战前提143 开始使用Spring Cloud 实战微服务. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.1 Spring Cloud 实战前提14
3.1.1 技术储备14
3.1.2 工具及软件版本15
3.2 服务提供者与服务消费者16
3.3 编写服务提供者16
人人都是架构师:分布式架构落地与瓶颈突破
《人人都是架构师:分布式架构落地与瓶颈突破》并没有过多渲染架构的理论知识,而是切切实实站在开发一线角度,为各位读者诠释了大型网站在架构演变过程中出现一系列技术难题时的解决方案。《人人都是架构师:分布式架构落地与瓶颈突破》首先从分布式服务案例开始介绍,重点为大家讲解了大规模服务化场景下企业应该如何实施服务治理;然后在大流量限流/消峰案例中,笔者为大家讲解了应该如何有效地对流量实施管制,避免大流量对产生较大冲击,确保核心业务的稳定运行;接着笔者为大家讲解了分布式配置管理服务;之后的几章,笔者不仅为大家讲解了秒杀、限时抢购场景下热点数据的读/写优化案例,还为大家讲解了数据库实施分库分表改造后所带来的一系列影响的解决方案。
《人人都是架构师:分布式架构落地与瓶颈突破》适用于任何对分布式架构感兴趣的架构师、开发人员以及运维人员。相信阅读《人人都是架构师:分布式架构落地与瓶颈突破》你将会有知其然和知其所以然的畅快感。
目录
第1章 分布式服务案例 1
1.1 分布式的架构演变过程 2
1.1.1 单机 3
1.1.2 集群架构 4
1.1.3 拆之业务垂直化 6
1.1.4 为什么需要实现服务化架构 8
1.1.5 服务拆分粒度之微服务 10
1.2 服务化需求 11
1.2.1 服务化与RPC协议 11
1.2.2 使用阿里分布式服务框架Dubbo实现服务化 12
1.2.3 警惕Dubbo因超时和重试引起的雪崩 16
1.2.4 服务治理方案 18
1.2.5 关于服务化后的分布式事务问题 201.3 分布式调用跟踪需求 21
1.3.1 Google的Dapper论文简介 22
1.3.2 基于Dubbo实现分布式调用跟踪方案 25
1.3.3 采样率方案 35
1.4 本章小结 37
第2章 大流量限流/消峰案例 38
2.1 分布式为什么需要进行流量管制 39
2.2 限流的具体方案 42
2.2.1 常见的限流算法 43
2.2.2 使用Google的Guava实现平均速率限流 45
2.2.3 使用Nginx实现接入层限流 48
2.2.4 使用计数器算法实现商品抢购限流 49
2.3 基于时间分片的消峰方案 51
2.3.1 活动分时段进行实现消峰 52
2.3.2 通过答题验证实现消峰 52
2.4 异步调用需求 53
2.4.1 使用MQ实现之间的解耦 54
2.4.2 使用Apache开源的ActiveMQ实现异步调用 55
2.4.3 使用阿里开源的RocketMQ实现互联网场景下的流量消峰 61
2.4.4 基于MQ方案实现流量消峰的一些典型案例 72
2.5 本章小结 75
第3章 分布式配置管理服务案例 76
3.1 本地配置 77
3.1.1 将配置信息耦合在业务代码中 77
3.1.2 将配置信息配置在配置文件中 79
3.2 集中式资源配置需求 82
3.2.1 分布式一致性协调服务ZooKeeper简介 83
3.2.2 ZooKeeper的下载与集群安装 84
3.2.3 ZooKeeper的基本使用技巧 86
3.2.4 基于ZooKeeper实现分布式配置管理平台方案 87
3.2.5 从配置中心获取Spring的Bean定义实现Bean动态注册 93
3.2.6 容灾方案 95
3.2.7 使用Diamond实现分布式配置管理服务 96
3.2.8 Diamond与ZooKeeper的细节差异 101
3.2.9 使用百度Disconf实现分布式配置管理服务 102
3.3 本章小结 110
第4章 大促场景下热点数据的读/写优化案例 111
4.1 缓存技术简介 112
4.1.1 使用Ehcache实现数据缓存 114
4.1.2 LocalCache存在的弊端 116
4.1.3 神秘的off-heap技术 117
4.2 高性能分布式缓存Redis简介 120
4.2.1 使用Jedis客户端操作Redis 121
4.2.2 使用Redis集群实现数据水平化存储 122
4.3 同一商品高并发读需求 124
4.3.1 Redis集群多写多读方案 125
4.3.2 保障多写时的数据一致性 126
4.3.3 LocalCache结合Redis集群的多级Cache方案 128
4.3.4 实时热点自动发现方案 130
4.4 同一商品高并发写需求 132
4.4.1 InnoDB行锁引起数据库TPS下降 132
4.4.2 在Redis中扣减商品库存方案 134
4.4.3 商品库存扣减优化方案 138
4.4.4 控制单机并发写流量方案 141
4.4.5 使用阿里开源的AliSQL数据库提升秒杀场景性能 142
4.5 本章小结 148
第5章 数据库分库分表案例 149
5.1 关系型数据库的架构演变 150
现代软件架构的演进与实践:一本深入剖析高并发、分布式与云原生时代的工程指南 在这个瞬息万变的数字时代,软件系统的复杂性与日俱增。从支撑亿级流量的互联网巨头,到追求敏捷迭代的初创企业,再到拥抱云原生转型的传统行业,高效、稳定、可扩展的系统架构已成为成功的基石。本书并非简单堆砌技术名词,而是以一种抽丝剥茧的方式,带领读者穿越现代软件架构的演进历程,深入理解高并发处理的艺术、分布式系统的挑战与机遇,以及微服务和云原生带来的革命性变化。本书旨在为有志于构建或优化复杂系统的开发者、架构师以及技术管理者提供一套全面而实用的工程视角,帮助他们驾驭复杂性,构建面向未来的卓越软件。 第一部分:穿越高并发的洪流——亿级流量背后的架构智慧 当海量用户涌入,系统将如何应对?本书首先将深入剖析支撑亿级流量网站的核心技术。这不仅仅是简单的“多开几台服务器”,而是涉及对系统各个环节的精细化设计与优化。我们将从用户请求的入口开始,探讨负载均衡的艺术,如何将巨大的流量有效地分配到后端的服务器集群上,同时保证系统的可用性和弹性。这包括对各种负载均衡算法的深入解析,如轮询、加权轮询、最少连接,以及更具挑战性的基于请求特征的智能调度。 紧接着,我们将目光转向数据存储。在亿级流量的冲击下,单体数据库往往不堪重负。本书将详细阐述数据库分库分表的策略,如何将庞大的数据切分到不同的数据库实例中,以分散读写压力。这涉及分片键的选择、数据迁移方案、跨分片查询的处理,以及如何保证数据的一致性。此外,我们还将探讨缓存技术的威力,从应用层缓存到分布式缓存,如何巧妙地利用内存的速度优势,显著降低数据库的负载,提升响应速度。Redis、Memcached等主流分布式缓存技术的原理、使用场景及性能调优方法将得到详尽讲解。 网络通信是高并发系统的生命线。本书将深入探讨网络传输协议的优化,如TCP连接的复用与长连接,以及HTTP/2等新协议带来的性能提升。同时,我们会分析RPC(远程过程调用)和消息队列在构建分布式系统中的作用,它们如何实现服务间的解耦与异步通信,从而提高系统的整体吞吐量和容错能力。Kafka、RabbitMQ等主流消息中间件的设计理念、工作原理及实际应用将贯穿其中。 此外,系统的稳定性与高可用性是亿级流量网站的生命线。本书将深入探讨熔断、降级、限流等应对瞬时高并发压力的关键机制,它们如何在服务故障或负载过载时,保护系统的核心功能不被拖垮。我们还会剖析服务的容错设计,包括重试机制、超时设置、幂等性设计等,确保在复杂的分布式环境中,服务能够优雅地处理异常,恢复自身。 第二部分:拥抱分布式——构建弹性、可扩展的宏伟蓝图 随着业务的发展,系统往往需要拆分成多个独立的服务来管理和扩展。本书的第二部分将聚焦于分布式系统的设计与挑战。我们将从分布式事务的复杂性入手,探讨CAP理论、BASE理论等分布式一致性模型,并介绍两阶段提交、三阶段提交、TCC(Try-Confirm-Cancel)等不同的事务解决方案及其优缺点。理解这些理论基础,对于在分布式环境下保证数据的一致性至关重要。 服务治理是分布式系统的核心。本书将深入讲解服务注册与发现的机制,如ZooKeeper、etcd、Consul等注册中心的原理,以及服务提供者如何注册自身信息,服务消费者如何获取服务地址,实现动态的服务寻址。我们还会探讨服务配置的集中管理,如何实现配置的动态更新与灰度发布,避免人工介入的风险。 分布式系统中的监控与追踪同样不可或缺。本书将详细介绍分布式链路追踪的原理与实践,如何使用Zipkin、Jaeger等工具,追踪一次请求在多个服务间的完整调用路径,从而快速定位性能瓶颈与故障点。同时,我们还将探讨日志聚合与分析,如何将分散在各个服务节点上的日志收集起来,进行统一的存储与分析,为故障排查提供依据。 第三部分:微服务的浪潮——从理念到实践的深刻洞察 微服务架构以其高度的灵活性、可独立部署和技术多样性,成为了当前软件开发的主流趋势。本书第三部分将以Spring Cloud为载体,带领读者深入理解微服务架构的设计理念与落地实践。 Spring Cloud作为一套构建分布式系统的开发工具集,提供了丰富的组件来支持微服务的各个方面。我们将从服务间的通信入手,深入解析Spring Cloud Netflix中的Eureka(服务注册与发现)、Ribbon(客户端负载均衡)、Feign(声明式HTTP客户端),以及Spring Cloud Gateway(API网关)等核心组件。这些组件如何协同工作,构建起一个高效、稳定的微服务生态。 在微服务架构中,服务的熔断与降级是保证系统健壮性的重要手段。我们将重点讲解Hystrix(在Spring Cloud 2020.0.0及之后的版本中,其功能已整合到 Resilience4j 等更现代的解决方案中,但其设计理念仍然值得学习)等容错组件的设计思路,如何通过熔断器来隔离故障,避免级联失败,以及如何通过降级策略来应对服务不可用时的场景。 分布式配置管理是微服务架构的另一大挑战。本书将详细介绍Spring Cloud Config的实现原理,如何将所有服务的配置集中管理,并支持配置的动态刷新,使系统更加灵活可控。 除了Spring Cloud的官方组件,我们还将探讨其他关键的微服务技术。例如,如何利用Spring Security和OAuth2实现微服务间的安全认证与授权,保证数据传输的安全。同时,对于需要支持高并发读写场景的服务,我们将介绍如何结合Spring Boot与Redis、MongoDB等NoSQL数据库,构建高性能的数据服务。 第四部分:云原生时代的启航——现代化基础设施的构建 随着云计算的普及,云原生已成为软件架构发展的必然趋势。本书的第四部分将带领读者走进云原生时代,理解容器化、服务网格、Serverless等关键技术如何重塑软件的构建、部署与运维模式。 容器化技术,特别是Docker,彻底改变了应用的打包与分发方式。本书将深入讲解Docker的原理,如何创建和管理容器镜像,以及Docker Compose如何用于构建多容器应用。在此基础上,我们将重点介绍Kubernetes(K8S)——这个当前最流行的容器编排平台。我们将深入剖析Kubernetes的核心概念,如Pod、Deployment、Service、Ingress等,以及如何利用Kubernetes实现应用的自动化部署、扩缩容、故障恢复与滚动更新。Kubernetes的强大能力,使得我们能够以前所未有的效率管理和运维大规模的分布式系统。 服务网格(Service Mesh)是云原生时代服务治理的下一代解决方案。本书将深入探讨Istio、Linkerd等主流服务网格的架构与核心功能。服务网格如何通过Sidecar代理,将服务间的通信、流量管理、安全、可观察性等能力从应用代码中剥离出来,实现统一的、声明式的治理。我们将重点讲解服务路由、熔断、限流、故障注入、灰度发布等服务网格带来的高级能力。 此外,本书还将触及Serverless(无服务器计算)的理念与实践。理解Serverless如何通过云服务提供商提供的函数计算服务,让开发者无需关注服务器基础设施的运维,专注于编写业务逻辑。这将为构建更具弹性和成本效益的云原生应用提供新的思路。 本书的价值与目标读者 本书力求在理论深度与实践可操作性之间取得平衡。我们不仅会介绍各种技术的原理,更会结合实际的案例分析,展示如何在复杂的场景下应用这些技术。本书的目标读者包括: 初级到中级软件工程师: 希望提升技术视野,理解现代软件架构的演进,为承担更复杂的项目奠定基础。 资深软件工程师与架构师: 寻求对高并发、分布式、微服务及云原生技术的深入理解,以优化现有系统或设计新的解决方案。 技术团队负责人与管理者: 需要了解行业最新的技术趋势,以便为团队的技术选型、架构设计和人才培养提供指导。 对构建大规模、高可用、高性能软件系统充满热情的所有技术人员。 在本书的旅程中,我们将共同探索现代软件架构的精髓,掌握应对复杂挑战的利器,最终能够设计、构建并运维那些支撑起我们数字世界的庞大而精密的系统。