Building Microservices with Spring Boot
Building Microservices with Spring Boot
About the Book
This book is designed to give you the complete picture of how you can build microservices with Spring Boot. Existing book regarding microservice are helpful to grasp to concepts, but there are no practical examples of how to accomplish it. The objective of the book is to use Spring and Spring Boot to show practical approaches as well a reference guide to Spring Boot.
The way we build software has changed dramatically. The word cloud is everywhere. Most software companies are either using available providers such as AWS, Joyent, Rackspace or trying to build their own private cloud. The tendency of building big massive software is also changing, now the trend is to build smaller software which does one thing and it does it well.
It is called microservices, a small, discrete, isolated, stateless, lightweight application that can be deployed separately from other services that depend on it. The architectural style which refers to an approach to structuring a single software application as a group of small services, each running in its own process and communicating with lightweight mechanisms.
Spring as a mature framework does provide most of the necessary modules to accomplish what is needed to build a microservice architecture. So as a developer you can add necessary modules, wire it via dependency injection and start using it without changing the context. With Spring, you can connect relational or NoSQL datastore, work with AMQP, build your authentication and authorization, use configuration management, circuit breakers, intelligent routing, etc. Most of the technologies you may need for developing microservices are provided via Spring.
The book will cover topics such as essentials Spring Boot, HTTP programming, Spring Cloud Config, Service Discovery, Client-Side Load Balancing, Distributed Messaging, Asynchronous HTTP programming, Routing, API Gateways, etc.
- Errata & Suggestion
- Source Code
1. Microservices and Spring
- 1.1 Spring and Spring Boot
- 1.2 Microservice vs Monolith
- 1.3 Microservice Envy
- 1.4 Getting Started with Spring Boot
2. HTTP Programming
- 2.1 HTTP Request to Spring Annotation
- 2.2 Controllers
- 2.3 Working With Request Body
- 2.4 URI Templates
- 2.5 Building a HTTP Response
- 2.6 Request Headers
- 2.7 Handling Exceptions
- 2.8 HTTP Caching
- 3.1 Isolation of Code and Host
- 3.2 Build, Persist, Run
- 3.3 Store Config in The Environment
- 3.4 Continuous Integration & Delivery & Deployment
4. Application Configuration
- 4.1 Configuring a Spring Boot Application
- 4.2 Externalizing Configuration
- 4.3 Using Custom Configuration
5. Spring Cloud Config
- 5.1 System Setup
- 5.2 Storage of Configuration Files
- 5.3 Config Server
- 5.4 Config Client
- 5.5 Why Use(or Not Use) Spring Cloud Config?
6. Strategies for Building and Connecting APIs
- 6.1 An Example Scenario
- 6.2 Resource Waterfall
- 6.3 API Gateway
- 6.4 Upshot
7. Communicating with HTTP Clients
- 7.1 Spring’s Rest Template
- 7.2 Handling Errors
- 7.3 Asynchronous HTTP Requests
- 7.4 Handling Domain Model Across Services
- 7.5 Netflix’s Zuul
- 7.6 HTTP Connection Pool
8. Resiliency and Failure Recovery
- 8.1 Scalability
- 8.2 Load Balancing
- 8.3 Availability
- 8.4 Latency and Throughput
- 8.5 Client-Side Load Balancing with Ribbon
- 8.6 Circuit Breaker with Hystrix
9. Service Discovery
- 9.1 What is Service Discovery?
- 9.2 Example of Service Discovery Methods
- 9.3 When to Use Service Discovery
- 9.4 Service Statuses and Health Checks
- 9.5 Deployment
- 9.6 Choosing the Right Tool
10. Service Discovery with Spring Cloud Consul
- 10.1 Consul
- 10.2 Spring Cloud Consul
- 10.3 Discovery Client
- 10.4 Spring Cloud Consul Configuration
11. Server Side Caching
- 11.1 Cache Topologies
- 11.2 Spring’s Cache Manager
- 11.3 Cache Annotations
- 11.4 Enabling Caching
- 11.5 Caching with Ehcache
- 11.6 Caching with Hazelcast
- 11.7 Caching with Redis
- 11.8 Choosing The Right Cache Provider
12. Operational Aspects
- 12.1 Spring Boot Actuator
- 12.2 Application Metrics
- 12.3 Custom Metrics
- 12.4 Application Health
- 12.5 Heap and Thread Dumps
- 12.6 Application Environment Variables
- 12.7 JMX and Jolokia
- 12.8 Loggers Endpoint
- 12.9 Other Actuator End Points
- A.1 - Managing Parent POM
The Leanpub 60-day 100% Happiness Guarantee
Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.
See full terms
80% Royalties. Earn $16 on a $20 book.
We pay 80% royalties. That's not a typo: you earn $16 on a $20 sale. If we sell 5000 non-refunded copies of your book or course for $20, you'll earn $80,000.
(Yes, some authors have already earned much more than that on Leanpub.)
In fact, authors have earnedover $12 millionwriting, publishing and selling on Leanpub.
Learn more about writing on Leanpub
Free Updates. DRM Free.
If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).
Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.
Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.