Java编程方法论:响应式Spring Reactor 3设计与实现
图书信息
| 作者 | 知秋 |
| 出版社 | 电子工业出版社 |
| ISBN | 9787121394768 |
| 出版时间 | 2020-09-01 |
| 字数 | 13.8万 |
| 分类 | 科技,计算机,网络,程序设计 |
读书简介
本书主要专注于解读Spring Reactor 3的代码设计与实现。全书共10章,其中第1、2章将从口的设计手,逐渐深介绍Reactor中Flux源与订阅者Subscriber的诸多交互实现细节;第3章将通过对调度器的研究来向读者展示其中的优秀设计,可以帮助读者更好地掌握Java并发库,同时可以使读者对使用Reactor行异步编程有更好的认识;第4章将触到一些常用的Reactor操作,方便读者写出可重用度高、逻辑清晰的代码;第5、6、7章将着重分析Reactor中Processor的设计实现,不仅讲述了它的使用场景,还讲解了其中的内在原理,以及如何应对未来项目发过程中可能遇到的种种问题;第8章将介绍并分析Reactor特别提供的Context,这是Reactor为了应对生产-订阅模式下的响应式编程在异步环境中对订阅关系上下文行管理所产生的问题而给出的解决方案,Spring Framework 5.2中的响应式事务也是基于它实现的;第9章将主要介绍Reactor中的测试,同时带着读者一步一步设计实现一个针对Reactor项目的测试库;第10章将主要介绍Reactor中的调试,可以教会读者根据不同的需求采取不同的调试方式。
目录
内容简介
推荐序一
推荐序二
推荐序三
推荐序四
推荐序五
推荐序六
推荐序七
前言
第1章 响应式编程概述
1.1 并发与并行的关系
1.2 如何理解响应式编程中的背压
1.3 源码接口设计启示
1.4 如何看待众多函数表达式
1.5 Reactor与RxJava的对比
1.6 小结
第2章 对Flux的探索
2.1 对Flux.subscribe订阅逻辑的解读
2.1.1 对CoreSubscriber的解读
2.1.2 对LambdaSubscriber的解读
2.1.3 AtomicXxxFieldUpdater的技法应用
2.2 用Flux.create创建源
2.2.1 FluxCreate细节探索
2.2.2 Flux的快速包装方法
2.2.3 Reactor 3中的generate方法
2.3 蛇行走位的QueueSubscription
2.3.1 无界队列SpscLinkedArrayQueue
2.3.2 QueueSubscription.requestFusion的催化效应
2.4 Mono的二三事
2.5 通过BaseSubscriber自定义订阅者
2.6 将常见的监听器改造成响应式结构
2.7 Flux.push的特殊使用场景及细节探索
2.8 对Flux.handle的解读
2.9 小结
第3章 调度器
3.1 深入理解Schedulers.elastic
3.1.1 CachedScheduler的启示
3.1.2 ElasticScheduler的类定义思路
3.1.3 对Schedulers.decorateExecutorService的解读
3.1.4 对ElasticScheduler.schedule的解读
3.1.5 对ElasticScheduler.DirectScheduleTask的解读
3.1.6 对Schedulers.directSchedule的解读
3.1.7 对ElasticScheduler.ElasticWorker的解读
3.1.8 ElasticScheduler小结
3.2 深入解读publishOn
3.2.1 publishOn流程概述
3.2.2 对FluxPublishOn的解读
3.3 深入解读subscribeOn
3.4 Flux.parallel&Flowable.parallel的并行玩法
3.5 ParallelFlux.runOn&ParallelFlowable.runOn的调度实现
3.6 小结
第4章 对Reactor操作的解读
4.1 filter操作
4.2 transform操作
4.3 compose与transformDeferred操作
4.4 批处理操作
4.4.1 buffer操作
4.4.2 window操作
4.4.3 groupBy操作
4.5 merge和mergeSequential操作
4.6 flatMap和flatMapSequential操作
4.7 concatMap操作
4.8 combineLatest操作
4.9 ConnectableFlux的二三事及对reactor-bug的分析
4.10 小结
第5章 对Processor的探索
5.1 UnicastProcessor详解
5.2 DirectProcessor详解
5.3 EmitterProcessor详解
5.4 ReplayProcessor详解
5.5 小结
第6章 TopicProcessor及Reactor中匹配Disruptor的实现代码
6.1 初识TopicProcessor
6.2 TopicProcessor构造器
6.3 对RingBuffer中publish方法的解读
6.4 对MultiProducerRingBuffer的解读
6.4.1 RingBuffer中的UnsafeSupport
6.4.2 RingBuffer中的next与publish操作
6.5 TopicProcessor.onSubscribe及类BossEventLoopGroup的设计
6.6 TopicProcessor.subscribe及类WorkerEventLoopGroup的设计
6.7 小结
第7章 对WorkQueueProcessor的解读
7.1 WorkQueueProcessor的requestTask
7.2 WorkQueueProcessor的subscribe
7.3 冷热数据源的区别
7.4 实例详解
7.5 小结
第8章 Reactor中特供的Context
8.1 Context的设计缘由
8.2 对Context的解读
8.3 小结
第9章 Reactor中的测试
9.1 StepVerifier测试源码解析
9.1.1 接口定义
9.1.2 接口实现
9.1.3 验证
9.2 StepVerifier测试应用
9.3 操作时间测试
9.4 使用StepVerifier进行后置验证
9.5 关于Context的测试
9.6 使用TestPublisher对自定义中间操作进行测试
9.7 使用PublisherProbe检查执行路径
9.8 小结
第10章 Reactor中的调试
10.1 启用调试模式
10.2 在调试模式下读取堆栈跟踪信息
10.3 通过checkpoint方式进行调试
10.4 记录订阅关系下与操作流程相关的日志
10.5 小结
- Desperate Sons(Standiford, Les)
- Once Upon a Christmas (Mills & Boon Love Inspired)(Pamela Tracy)
- Emergency Admissions(Kit Wharton)
- 第7集 制度的起点是小人思维(俞凌雄)
- 简单易学的基金投资(杨天南,孙振曦,贾泽亮 等)
- 文治帝国:大宋300年的世运与人物【畅销书《一看就停不下来的中国史》作者重磅新书!】(艾公子)
- 漫画素描技法5:分镜头篇(CG动漫社)
- 交易圣经((澳)布伦特·奔富)
