新書推薦:
《
东野圭吾:分身(东野圭吾无法再现的双女主之作 奇绝瑰丽、残忍又温情)
》
售價:NT$
295.0
《
浪潮将至
》
售價:NT$
395.0
《
在虚无时代:与马克斯·韦伯共同思考
》
售價:NT$
260.0
《
日内交易与波段交易的资金风险管理
》
售價:NT$
390.0
《
自然信息图:一目了然的万物奇观
》
售價:NT$
640.0
《
经纬度丛书·州县之民:治乱之间的小民命运
》
售價:NT$
440.0
《
女性史:古代卷(真正意义上的女性大历史)
》
售價:NT$
560.0
《
跨代伴侣治疗
》
售價:NT$
440.0
|
內容簡介: |
本书从动态代理模式、Reactor模式、三大限流策略等知识入手,深入浅出地剖析Spring Cloud Nginx系统架构的核心原理以及Web高并发开发。全书从基础设计模式和基础原理出发,理论与实战相结合,系统和详尽地介绍Spring Cloud Nginx高并发核心编程。
本书共10章,前6章剖析Feign高并发RPC的底层原理,解析Hystrix高性能配置的核心选项,阐述Hystrix滑动窗口的核心原理。后4章介绍Nginx的核心原理及其配置,并结合秒杀场景实现Spring Cloud秒杀、Spring Cloud Nginx Lua秒杀,为广大Java开发者提供一个全面学习高并发开发的实战案例。这些知识为广大的Java工程师解决日常在后台开发中遇到的高并发、高性能问题打下坚实的技术基础。
|
目錄:
|
前言
第1章 Spring Cloud Nginx 高并发核心编程的学习准备 ........................ 1
1.1 Spring Cloud Nginx架构的主要组件 ......................................... 1
1.2 Spring Cloud和Spring Boot的版本选择 .............................................. 3
1.3 Spring Cloud微服务开发所涉及的中间件..................................... 4
1.4 Spring Cloud微服务开发和自验证环境 .................................................... 6
1.4.1 开发和自验证环境的系统选项和环境变量配置.......................................... 6
1.4.2 使用Fiddler工具抓包和查看报文....................................................... 7
1.5 crazy-springcloud微服务开发脚手........................................................ 9
1.6 以秒杀作为Spring Cloud Nginx的实战案例 ............................................. 10
第2章 Spring Cloud入门实战 ...................................................... 12
2.1 Eureka服务注册与发现 .................................................... 13
2.1.1 什么是服务注册与发现 ......................................................... 13
2.1.2 Eureka Server注册中心 ......................................................... 14
2.1.3 服务提供者的创建和配置 ......................................................... 19
2.1.4 服务提供者的续约(心跳) ....................................................... 22
2.1.5 服务提供者的健康状态 ............................................................ 24
2.1.6 Eureka自我保护模式与失效Provider的快速剔除 .................................... 28
2.2 Config配置中心 ............................................................... 32
2.2.1 config-server服务端组件 .......................................................... 32
2.2.2 config-client客户端组件 .......................................................... 35
2.3 微服务的RPC远程调用 ................................................................ 36
2.3.1 RESTful风格简介 ....................................................... 36
2.3.2 RestTemplate远程调用 ............................................................ 37
2.3.3 Feign远程调用 ................................................................... 38
2.4 Feign Ribbon实现客户端负载均衡 .................................................... 40
2.4.1 Spring Cloud Ribbon基础 ......................................................... 41
2.4.2 Spring Cloud Ribbon的负载均衡策略 ............................................... 43
2.4.3 Spring Cloud Ribbon的常用配置 ................................................... 45
2.5 Feign Hystrix实现RPC调用保护 ...................................................... 50
2.5.1 Spring Cloud Hystrix失败回退 ..................................................... 51
2.5.2 分布式系统面临的雪崩难题 ........................................................ 55
2.5.3 Spring Cloud Hystrix熔断器 ...................................................... 56
第3章 Spring Cloud RPC远程调用核心原理 .................................................. 61
3.1 代理模式与RPC客户端实现类 ............................................................ 61
3.1.1 客户端RPC远程调用实现类的职责 ................................................. 61
3.1.2 简单的RPC客户端实现类 ........................................................ 63
3.1.3 从基础原理讲起:代理模式与RPC客户端实现类 ......................................... 67
3.1.4 使用动态代理模式实现RPC客户端类 ............................................. 70
3.1.5 JDK动态代理机制的原理 ........................................ 74
3.2 模拟Feign RPC动态代理的实现 ....................................................... 77
3.2.1 模拟Feign的方法处理器MethodHandler ................................................. 78
3.2.2 模拟Feign的调用处理器InvocationHandler ...................................... 80
3.2.3 模拟Feign的动态代理RPC的执行流程 ................................................. 83
3.2.4 模拟动态代理RPC远程调用的测试 .................................................. 83
3.2.5 Feign弹性RPC客户端实现类 ......
|
內容試閱:
|
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章详解NginxOpenResty,从高性能传输模式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日
|
|