内容简介
本书从动态代理模式、Reactor模式、三大限流策略等知识入手,深入浅出地剖析Spring Cloud+Nginx系统架构的核心原理以及Web高并发开发。全书从基础设计模式和基础原理出发,理论与实战相结合,系统和详尽地介绍Spring Cloud + Nginx高并发核心编程。
本书共10章,前6章剖析Feign高并发RPC的底层原理,解析Hystrix高性能配置的核心选项,阐述Hystrix滑动窗口的核心原理。后4章介绍Nginx的核心原理及其配置,并结合秒杀场景实现Spring Cloud秒杀、Spring Cloud+Nginx Lua秒杀,为广大Java开发者提供一个全面学习高并发开发的实战案例。这些知识为广大的Java工程师解决日常在后台开发中遇到的高并发、高性能问题打下坚实的技术基础。
涵盖解答高并发开发、大厂面试的核心难题涵盖解答高并发开发、大厂面试的核心难题
从设计模式和基础知识入手,抽丝剥茧,
将高深莫测的高并发核心知识讲解得浅显易懂
目录
本书内容分为10章,分别说明如下:
第1章Spring Cloud+Nginx高并发核心编程的学习准备
第1章介绍Spring Cloud+Nginx高并发核心编程的学习准备,包括知识背景、开发和自验证环境的准备。
Spring Cloud+Nginx相结合的分布式Web应用架构已经成为IT领域应用架构的事实标准。Spring Cloud+Nginx架构具有高度可伸缩、高可用、高并发的能力,这使其成为各新产品、新项目技术选型时的最佳架构之一,也成为老产品、老项目技术升级选型时的最佳架构之一。目前,无论是一线互联网公司(如阿里巴巴、百度、美团等)还是中小型互联网企业,都广泛地使用了Spring Cloud+ Nginx架构。
尽管Spring Cloud+Nginx架构已经成为主流架构,但广大Java工程师对Spring Cloud微服务、Nginx反向代理核心知识的掌握还是不够,大多数人仅停留在配置、使用阶段。
第2章Spring Cloud入门实战
第2章介绍Spring Cloud入门实战,包括注册中心、配置中心、微服务提供者的入门开发和配置。
Spring Cloud全家桶技术栈除了对Netflix OSS的开源组件进行了整合之外,还整合了一些选型中立的开源组件。比如,Spring CloudZooKeeper组件整合了ZooKeeper,提供了另一种方式的服务发现和配置管理。
Spring Cloud架构中的单体业务服务基于Spring Boot应用。Spring Boot是由Pivotal团队提供的全新框架,它用于简化新Spring应用的初始搭建以及开发过程。Spring Cloud和Spring Boot是什么关系呢?
第3章Spring Cloud RPC远程调用核心原理
第3章介绍Spring Cloud RPC远程调用的核心原理,从设计模式的代理模式开始,抽丝剥茧、层层递进地揭秘Spring Cloud Feign的底层RPC远程调用的核心原理。
如果不了解Spring Cloud中的Feign核心原理,就不会真正地了解Spring Cloud的性能优化和配置优化,也就不可能做到真正掌握Spring Cloud。
本章从Feign远程调用的重要组件开始,图文并茂地介绍Feign本地JDK Proxy实例的创建流程以及Feign远程调用的执行流程,彻底地解读Spring Cloud的核心知识,使得广大工程师知其然,更知其所以然。
第4章RxJava响应式编程框架
第4章介绍RxJava响应式编程框架。在Spring Cloud框架中涉及Ribbon和Hystrix两个重要的组件,它们都用到了RxJava响应式编程框架。作为非常重要的编程基础知识,本书特意设立本章对RxJava的原理和使用进行详细介绍。
在Spring Cloud框架中涉及的Ribbon和Hystrix两个重要的组件都使用了RxJava响应式编程框架,其作为重要的编程基础知识,特开辟一章对RxJava的使用进行详细的介绍。
Hystrix和Ribbon的代码中大量运用了RxJava的API,对于有RxJava基础的同学,学习Hystrix和Ribbon并不是一件难事。如果不懂RxJava,对于Hystrix和Ribbon的学习就会令人头疼不已。
第5章Hystrix RPC保护的原理
第5章介绍Hystrix RPC保护的原理,从RxJava响应式编程框架的应用开始,溯本求源、循序渐进地揭秘Spring Cloud Hystrix的底层 RPC保护的核心原理。
本章从Spring Cloud架构中RPC保护的目标开始介绍,为大家揭开Hystrix RPC核心原理的神秘面纱,让大家在使用Hystrix和对其进行配置时做到知其然,更知其所以然。
第6章微服务网关与用户身份识别
第6章介绍微服务网关与用户身份识别。微服务网关是微服务架构中不可或缺的部分,它统一解决Provider路由、负载均衡、权限控制等问题。
第7章Nginx/OpenResty详解
第7章详解Nginx/OpenResty,从高性能传输模式Reactor模型入手,寻踪觅源、由浅入深地揭秘Nginx反向代理Web服务器的核心知识,包括Reactor模型、Nginx的模块化设计、Nginx的请求处理流程等。
Nginx(或OpenResty)在生产场景中使用的广泛程度已经到了令人咂舌的地步。无论其实际的市场占用率如何,以笔者这些年所经历的项目来看,其使用率为100%。
第8章 Nginx Lua编程
第8章介绍Nginx Lua编程。在高并发场景下,Nginx Lua编程是解决性能问题的利器,本章介绍Nginx Lua编程的基础知识。
Nginx Lua编程主要的应用场景如下:
( 1 ) API网关:实现数据校验前置、请求过滤、API请求聚合、AB测试、灰度发布、降级、监控等功能,著名的开源网关Kong就是基于Nginx Lua开发的。
(2)高速缓存:可以对响应内容进行缓存,减少到后端的请求,从而提升性能。比如,Nginx Lua可以和Java容器(如Tomcat ) 、Redis整合,由Java容器进行业务处理和数据缓存,而Nginx负责读缓存并进行响应,从而解决Java容器的性能瓶颈。
(3)简单的动态Web应用:可以完成一些业务逻辑处理较少但是耗费CPU的简单应用,比如模板页面的渲染。一般的Nginx Lua页面渲染处理流程为:从Redis获取业务处理结果数据,从本地加载XML/HTML.页面模板,然后进行页面渲染。
(4)网关限流:缓存、降级、限流是解决高并发的三大利器,Nginx内置了令牌限流的算法,但是对于分布式的限流场景,可以通过Nginx Lua编程定制自己的限流机制。
第9章限流原理与实战
第9章介绍限流原理与实战。高并发系统用三把利器—缓存、降级和限流来保护系统,本章介绍计数器、令牌桶、漏桶这三大限流策略的原理和实现。
第10章Spring Cloud+Nginx秒杀实战
第10章介绍Spring Cloud+Nginx秒杀实战,通过这个综合性的实战案例说明缓存、降级和限流的应用。
在开发高并发系统时用三把利器——缓存、降级和限流来保护系统。缓存的目的是提升系统访问速度和增大系统能处理的容量,可谓是抗高并发流量的银弹;降级是当服务出现问题或者影响到核心流程的性能时需要暂时屏蔽掉服务请求,待高峰或者问题解决后再打开;有些场景并不能用缓存和降级来解决,比如稀缺资源(如秒杀、抢购)、写服务(如评论、下单)、频繁的复杂查询(如评论的最后几页),因此需要有一种手段来限制这些场景的并发请求量,即限流。
需要获取的小伙伴可以直接转发+关注后私信(学习)即可获取!
网友评论