为你推荐
前言
第1章 Spring Cloud+Nginx高并发核心编程的学习准备
1.1 Spring Cloud+Nginx架构的主要组件
1.2 Spring Cloud和Spring Boot的版本选择
1.3 Spring Cloud微服务开发所涉及的中间件
1.4 Spring Cloud微服务开发和自验证环境
1.4.1 开发和自验证环境的系统选项和环境变量配置
1.4.2 使用Fiddler工具抓包和查看报文
1.5 crazy-springcloud微服务开发脚手架
1.6 以秒杀作为Spring Cloud+Nginx的实战案例
第2章 Spring Cloud入门实战
2.1 Eureka服务注册与发现
2.1.1 什么是服务注册与发现
2.1.2 Eureka Server注册中心
2.1.3 服务提供者的创建和配置
2.1.4 服务提供者的续约(心跳)
2.1.5 服务提供者的健康状态
2.1.6 Eureka自我保护模式与失效Provider的快速剔除
2.2 Config配置中心
2.2.1 config-server服务端组件
2.2.2 config-client客户端组件
2.3 微服务的RPC远程调用
2.3.1 RESTful风格简介
2.3.2 RestTemplate远程调用
2.3.3 Feign远程调用
2.4 Feign+Ribbon实现客户端负载均衡
2.4.1 Spring Cloud Ribbon基础
2.4.2 Spring Cloud Ribbon的负载均衡策略
2.4.3 Spring Cloud Ribbon的常用配置
2.5 Feign+Hystrix实现RPC调用保护
2.5.1 Spring Cloud Hystrix失败回退
2.5.2 分布式系统面临的雪崩难题
2.5.3 Spring Cloud Hystrix熔断器
第3章 Spring Cloud RPC远程调用核心原理
3.1 代理模式与RPC客户端实现类
3.1.1 客户端RPC远程调用实现类的职责
3.1.2 简单的RPC客户端实现类
3.1.3 从基础原理讲起:代理模式与RPC客户端实现类
3.1.4 使用动态代理模式实现RPC客户端类
3.1.5 JDK动态代理机制的原理
3.2 模拟Feign RPC动态代理的实现
3.2.1 模拟Feign的方法处理器MethodHandler
3.2.2 模拟Feign的调用处理器InvocationHandler
3.2.3 模拟Feign的动态代理RPC的执行流程
3.2.4 模拟动态代理RPC远程调用的测试
3.2.5 Feign弹性RPC客户端实现类
3.3 Feign弹性RPC客户端的重要组件
3.3.1 演示用例说明
3.3.2 Feign的动态代理RPC客户端实例
3.3.3 Feign的调用处理器InvocationHandler
3.3.4 Feign的方法处理器MethodHandler
3.3.5 Feign的客户端组件
3.4 Feign的RPC动态代理实例的创建流程
3.4.1 Feign的整体运作流程
3.4.2 RPC动态代理容器实例的FactoryBean工厂类
3.4.3 Feign.Builder建造者容器实例
3.4.4 默认的RPC动态代理实例的创建流程
3.4.5 Contract远程调用协议规则类
3.5 Feign远程调用的执行流程
3.5.1 与FeignInvocationHandler相关的远程调用执行流程
3.5.2 与HystrixInvocationHandler相关的远程调用执行流程
3.5.3 Feign远程调用的完整流程及其特性
3.6 HystrixFeign动态代理实例的创建流程
3.6.1 HystrixFeign.Builder建造者容器实例
3.6.2 配置HystrixFeign.Builder建造者容器实例
3.7 feign.Client客户端容器实例
3.7.1 装配LoadBalancerFeignClient负载均衡容器实例
3.7.2 装配ApacheHttpClient负载均衡容器实例
3.7.3 装配OkHttpClient负载均衡容器实例
3.7.4 装配Client.Default负载均衡容器实例
第4章 RxJava响应式编程框架
4.1 从基础原理讲起:观察者模式
4.1.1 观察者模式的基础原理
4.1.2 观察者模式的经典实现
4.1.3 RxJava中的观察者模式
4.1.4 RxJava的不完整回调
4.1.5 RxJava的函数式编程
4.1.6 RxJava的操作符
4.2 创建型操作符
4.2.1 just操作符
4.2.2 from操作符
4.2.3 range操作符
4.2.4 interval操作符
4.2.5 defer操作符
4.3 过滤型操作符
4.3.1 filter操作符
4.3.2 distinct操作符
4.4 转换型操作符
4.4.1 map操作符
4.4.2 flatMap操作符
4.4.3 scan操作符
4.5 聚合操作符
4.5.1 count操作符
4.5.2 reduce操作符
4.6 其他操作符
4.6.1 take操作符
4.6.2 window操作符
4.7 RxJava的Scheduler调度器
4.8 背压
4.8.1 什么是背压问题
4.8.2 背压问题的几种应对模式
第5章 Hystrix RPC保护的原理
5.1 RPC保护的目标
5.2 HystrixCommand简介
5.2.1 HystrixCommand的使用
5.2.2 HystrixCommand的配置内容和方式
5.3 HystrixCommand命令的执行方法
5.3.1 execute()方法
5.3.2 queue()方法
5.3.3 observe()方法
5.3.4 toObservable()方法
5.3.5 HystrixCommand的执行方法之间的关系
5.4 RPC保护之舱壁模式
5.4.1 什么是舱壁模式
5.4.2 Hystrix线程池隔离
5.4.3 Hystrix线程池隔离配置
5.4.4 Hystrix信号量隔离
5.5 RPC保护之熔断器模式
5.5.1 熔断器状态变化的演示实例
5.5.2 熔断器和滑动窗口的配置属性
5.5.3 Hystrix命令的执行流程
5.6 RPC监控之滑动窗口的实现原理
5.6.1 Hystrix健康统计滑动窗口的模拟实现
5.6.2 Hystrix滑动窗口的核心实现原理
第6章 微服务网关与用户身份识别
6.1 Zuul的基础使用
6.2 创建Zuul网关服务
6.2.1 Zuul路由规则配置
6.2.2 过滤敏感请求头部
6.2.3 路径前缀的处理
6.3 Zuul过滤器
6.3.1 Zuul网关的过滤器类型
6.3.2 实战:用户的黑名单过滤
6.4 Spring Security原理和实战
6.4.1 Spring Security核心组件
6.4.2 Spring Security的请求认证处理流程
6.4.3 基于数据源的认证流程
6.5 JWT+Spring Security进行网关安全认证
6.5.1 JWT安全令牌规范详解
6.5.2 JWT+Spring Security认证处理流程
6.5.3 Zuul网关与UAA微服务的配合
6.5.4 使用Zuul过滤器添加代理请求的用户标识
6.6 服务提供者之间的会话共享关系
6.6.1 分布式Session的起源和实现方案
6.6.2 Spring Session的核心组件和存储细节
6.6.3 Spring Session的使用和定制
6.6.4 通过用户身份标识查找Session ID
6.6.5 查找或创建分布式Session
6.6.6 加载高速访问数据到分布式Session
第7章 Nginx/OpenResty详解
7.1 Nginx简介
7.1.1 正向代理与反向代理
7.1.2 Nginx的启动与停止
7.1.3 Nginx的启动命令和参数详解
7.1.4 Linux下OpenResty的启动、停止脚本
7.1.5 Windows下OpenResty的启动、停止脚本
7.2 Nginx的核心原理
7.2.1 Reactor模型
7.2.2 Nginx的两类进程
7.2.3 Nginx的模块化设计
7.2.4 Nginx配置文件上下文结构
7.2.5 Nginx的请求处理流程
7.2.6 HTTP请求处理的11个阶段
7.3 Nginx的基础配置
7.3.1 events事件驱动配置
7.3.2 虚拟主机配置
7.3.3 错误页面配置
7.3.4 长连接相关配置
7.3.5 访问日志配置
7.3.6 Nginx核心模块内置变量
7.4 location路由规则配置详解
7.4.1 location语法详解
7.4.2 常用的location路由配置
7.5 Nginx的rewrite模块指令
7.5.1 set指令
7.5.2 rewrite指令
7.5.3 if条件指令
7.5.4 add_header指令
7.5.5 指令的执行顺序
7.6 反向代理与负载均衡配置
7.6.1 演示环境说明
7.6.2 proxy_pass反向代理指令
7.6.3 proxy_set_header请求头设置指令
7.6.4 upstream上游服务器组
7.6.5 upstream的上游服务器配置
7.6.6 upstream的负载分配方式
第8章 Nginx Lua编程
8.1 Nginx Lua编程的主要应用场景
8.2 Nginx Lua编程简介
8.2.1 ngx_lua简介
8.2.2 Nginx Lua项目的创建
8.2.3 Lua项目的工程结构
8.2.4 Lua项目的启动
8.3 Lua开发基础
8.3.1 Lua模块的定义和使用
8.3.2 Lua模块的使用
8.3.3 Lua的数据类型
8.3.4 Lua的字符串
8.3.5 Lua的数组容器
8.3.6 Lua的控制结构
8.3.7 Lua的函数定义
8.3.8 Lua的面向对象编程
8.4 Nginx Lua编程基础
8.4.1 Nginx Lua的执行原理
8.4.2 Nginx Lua的配置指令
8.4.3 Nginx Lua的内置常量和变量
8.5 Nginx Lua编程实例
8.5.1 Lua脚本获取URL中的参数
8.5.2 Nginx Lua的内置方法
8.5.3 通过ngx.header设置HTTP响应头
8.5.4 Lua访问Nginx变量
8.5.5 Lua访问请求上下文变量
8.6 重定向与内部子请求
8.6.1 Nginx Lua内部重定向
8.6.2 Nginx Lua外部重定向
8.6.3 ngx.location.capture子请求
8.6.4 ngx.location.capture_multi并发子请求
8.7 Nginx Lua操作Redis
8.7.1 Redis的CRUD基本操作
8.7.2 实战:封装一个操作Redis的基础类
8.7.3 在Lua中使用Redis连接池
8.8 Nginx Lua编程实战案例
8.8.1 Nginx+Redis进行分布式访问统计
8.8.2 Nginx+Redis+Java容器实现高并发访问
8.8.3 Nginx+Redis实现黑名单拦截
8.8.4 使用Nginx Lua共享内存
第9章 限流原理与实战
9.1 限流策略原理与参考实现
9.1.1 3种限流策略:计数器、漏桶和令牌桶
9.1.2 计数器限流原理和Java参考实现
9.1.3 漏桶限流原理和Java参考实现
9.1.4 令牌桶限流原理和Java参考实现
9.2 分布式计数器限流
9.2.1 实战:Nginx Lua分布式计数器限流
9.2.2 实战:Redis Lua分布式计数器限流
9.3 Nginx漏桶限流详解
9.4 实战:分布式令牌桶限流
9.4.1 分布式令牌桶限流Lua脚本
9.4.2 Java分布式令牌桶限流
9.4.3 Java分布式令牌桶限流的自验证
第10章 Spring Cloud+Nginx秒杀实战
10.1 秒杀系统的业务功能和技术难点
10.1.1 秒杀系统的业务功能
10.1.2 秒杀系统面临的技术难题
10.2 秒杀系统的系统架构
10.2.1 秒杀的分层架构
10.2.2 秒杀的限流架构
10.2.3 秒杀的分布式锁架构
10.2.4 秒杀的削峰架构
10.3 秒杀业务的参考实现
10.3.1 秒杀的功能模块和接口设计
10.3.2 数据表和PO实体类设计
10.3.3 使用分布式ID生成器
10.3.4 秒杀的控制层设计
10.3.5 service层逻辑:获取秒杀令牌
10.3.6 service层逻辑:执行秒杀下单
10.3.7 秒杀的Lua脚本设计
10.3.8 BusinessException定义
10.4 Zuul内部网关实现秒杀限流
10.5 Nginx高性能秒杀和限流
10.5.1 Lua脚本:获取秒杀令牌
10.5.2 Lua脚本:执行令牌桶限流
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜