书籍内容
本书从动态代理模式、Reactor模式、三大限流策略等知识入手,深入浅出地剖析Spring Cloud+Nginx系统架构的核心原理以及Web高并发开发。全书从基础设计模式和基础原理出发,理论与实战相结合,系统和详尽地介绍Spring Cloud + Nginx高并发核心编程。
本书共10章,前6章剖析Feign高并发RPC的底层原理,解析Hystrix高性能配置的核心选项,阐述Hystrix滑动窗口的核心原理。后4章介绍Nginx的核心原理及其配置,并结合秒杀场景实现Spring Cloud秒杀、Spring Cloud+Nginx Lua秒杀,为广大Java开发者提供一个全面学习高并发开发的实战案例。这些知识为广大的Java工程师解决日常在后台开发中遇到的高并发、高性能问题打下坚实的技术基础。
前言/序言
Spring Cloud+Nginx系统架构毫无疑问是当今的主流技术之一。分布式Spring Cloud微服务框架和高性能的Nginx反向代理Web服务的优秀组合,满足了各大产品和项目的可扩展、高可用、高性能架构的需求。然而根据笔者摸查,很多Java开发人员对Spring Cloud微服务、反向代理Nginx核心知识的掌握不够,仅停留在Spring Cloud+Nginx基础配置、API使用的初级使用阶段。
本书从基础设计模式、基础原理出发,理论与实战相结合,对Spring Cloud + Nginx高并发编程的核心原理做了非常系统和详尽的介绍。本书旨在帮助初、中、高级开发工程师弥补在Spring Cloud微服务、Nginx反向代理核心知识方面的短板,为广大开发人员顺利成长为优秀的Java高级工程师、系统架构师提供帮助。
本书内容
本书内容分为10章,分别说明如下:
第1章介绍Spring Cloud+Nginx高并发核心编程的学习准备,包括知识背景、开发和自验证环境的准备。
第2章介绍Spring Cloud入门实战,包括注册中心、配置中心、微服务提供者的入门开发和配置。
第3章介绍Spring Cloud RPC远程调用的核心原理,从设计模式的代理模式开始,抽丝剥茧、层层递进地揭秘Spring Cloud Feign的底层RPC远程调用的核心原理。
第4章介绍RxJava响应式编程框架。在Spring Cloud框架中涉及Ribbon和Hystrix两个重要的组件,它们都用到了RxJava响应式编程框架。作为非常重要的编程基础知识,本书特意设立本章对RxJava的原理和使用进行详细介绍。
第5章介绍Hystrix RPC保护的原理,从RxJava响应式编程框架的应用开始,溯本求源、循序渐进地揭秘Spring Cloud Hystrix的底层 RPC保护的核心原理。
第6章介绍微服务网关与用户身份识别。微服务网关是微服务架构中不可或缺的部分,它统一解决Provider路由、负载均衡、权限控制等问题。
第7章详解Nginx/OpenResty,从高性能传输模式Reactor模型入手,寻踪觅源、由浅入深地揭秘Nginx反向代理Web服务器的核心知识,包括Reactor模型、Nginx的模块化设计、Nginx的请求处理流程等。
第8章介绍Nginx Lua编程。在高并发场景下,Nginx Lua编程是解决性能问题的利器,本章介绍Nginx Lua编程的基础知识。
第9章介绍限流原理与实战。高并发系统用三把利器—缓存、降级和限流来保护系统,本章介绍计数器、令牌桶、漏桶这三大限流策略的原理和实现。
第10章介绍Spring Cloud+Nginx秒杀实战,通过这个综合性的实战案例说明缓存、降级和限流的应用。
读者对象
(1)对Spring Cloud+Nginx系统架构感兴趣的大专院校师生。
(2)需要学习Spring Cloud+Nginx分布式高并发技术和高并发架构的初、中、高级Java工程师。
(3)生产场景中需要用到Spring Cloud+Nginx组合或者其中某个框架的架构师或工程师。
资源下载
本书资源可以登录机械工业出版社华章公司的网站(www.hzbook.com)下载,方法是:搜索到本书,然后在页面上的“资源下载”模块下载即可。如果下载有问题,请发送电子邮件至booksaga@126.com。
致 谢
首先感谢卞诚君老师在笔者写书过程中给予的指导和帮助。没有他的提议,我不会想到将自己的“疯狂创客圈”社群中高并发方面的博客整理成图书出版。感谢“疯狂创客圈”社群中的小伙伴们,虽然大家在群里抛出的很多技术难题笔者不一定能给出更佳的解决方案,但正是因为一路同行,一直坦诚、纯粹地进行技术交流,才能相互启发技术灵感,进而扩充小伙伴们的技术视野,最终提升编程水平。欢迎大家在“疯狂创客圈”社群提出问题,也欢迎大家多多交流。
写书不仅仅是一种技术活,更是一种工匠活,为了保证书中的知识是全面的、系统化的,笔者需要不断地思考和总结,不断地检查与修正。为了保证书中的每一行程序是正确的,笔者需要反复地编写LLT用例进行验证。尽管如此,还是不能保证书中没有瑕疵,不妥之处希望读者批评指正。
完成一本优质的书需要投入大量的业余时间,这也意味着牺牲了本该陪伴家人的时间,在这里特别感谢我的家人给予的理解、支持和帮助。
本书的读者QQ群为104131248,欢迎读者加群交流。目前,群里已经有不少高质量面试题和开发技术难题的交流。
尼 恩
2020年5月9日