Reactive Spring 1732910413, 9781732910416

Microservices and big-data increasingly confront us with the limitations of traditional input/output. In traditional IO,

2,073 402 12MB

English Pages 484 [378] Year 2020

Report DMCA / Copyright

DOWNLOAD FILE

Reactive Spring
 1732910413, 9781732910416

Table of contents :
Reactive Spring
Table of Contents
Frontmatter
Dedication
Preface
Foreword
Chapter 1. Introduction
Chapter 2. Prerequisites
2.1. Who this book is for
2.2. What you need for this book
2.3. Conventions
2.4. Reader feedback
2.5. Getting the Code
2.6. Building the Code
2.7. Running the Code
2.8. Some Foundational Java
Chapter 3. Bootstrap
3.1. A Big ol' Bag o' Beans
3.2. The CustomerService
3.3. An Inflexible Implementation
3.4. A Parameterized Implementation
3.5. Templates
3.6. A Context For Your Application
3.7. Component Scanning
3.8. Declarative Container Services with @Enable* Annotations
3.9. A "Bootiful" Application
3.10. But What If…​
3.11. Deployment
3.12. Next Steps
Chapter 4. IO, IO, It’s Off to Work We Go…​
4.1. A Natural Limit
4.2. The Missing Metaphor
4.3. The Reactive Streams Initiative
4.4. Are We There Yet?
4.5. Towards a More Functional, Reactive Spring
Chapter 5. Reactor
5.1. The Reactive Streams Specification
5.2. Project Reactor
5.3. Creating New Reactive Streams
5.4. Processors
5.5. Operators
5.6. Operator Fusion
5.7. Schedulers and Threads
5.8. Hot and Cold Streams
5.9. Context
5.10. Control Flow
5.11. Debugging
5.12. Next Steps
Chapter 6. Data Access
6.1. Why Should You Go Reactive?
6.2. What About Transactions?
6.3. Reactive SQL Data Access
6.4. More Efficient, Reactive Data Access in NoSQL Pastures
6.5. Review
6.6. Next Steps
Chapter 7. HTTP
7.1. HTTP Works
7.2. HTTP Scales
7.3. REST
7.4. Spring WebFlux: a Net-New Reactive Web Runtime
7.5. Long-Lived Client Connections
7.6. Server-Sent Events (SSE)
7.7. Websockets
7.8. Reactive Views with Thymeleaf
7.9. A Reactive Servlet Container
7.10. The Reactive Client
7.11. Security
7.12. Next Steps
Chapter 8. Testing
8.1. How I Stopped Worrying and Learned to Love Testing
8.2. Test Driven Development
8.3. Inside-Out or Outside-In
8.4. The Customer Object is Always Right (Right?)
8.5. A Repository of (Untested) Knowledge
8.6. On The Web, No One Knows You’re a Reactive Stream
8.7. The Customer is Always Right!
8.8. The Customer Is Not Always Right
8.9. Conclusion
Chapter 9. RSocket
9.1. Motivations for RSocket
9.2. Common Infrastructure for Raw RSocket
9.3. Raw RSocket
9.4. Bootiful RSocket
9.5. Security
9.6. Spring Integration
9.7. Next Steps
Chapter 10. Service Orchestration and Composition
10.1. Service Registration and Discovery
10.2. Some Simple Sample Services
10.3. Client Side Loadbalancing in the WebClient
10.4. Resilient Streams with Reactor Operators
10.5. Resilient Streams with Resilience4J
10.6. Hedging
10.7. Reactive Scatter/Gather
10.8. API Gateways with Spring Cloud Gateway
10.9. Summary
Chapter 11. Action!
11.1. Websites to Bookmark
11.2. Additional reading
Acknowledgements
Chapter 12. About the Author
Colophon for Reactive Spring

Polecaj historie