Building Microservices with Spring Boot


This book is no longer available for sale.

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. 


About the Author

Engin Yöyen
Engin Yöyen

I am a Software Engineer and father of a wonderful boy.  I am currently living in Berlin, and working for a company as a Technical Team Lead on Web Analytics Services.

In past, I worked in diverse fields such as Internet Of Things, Telecommunications, Smart Classes, CMS, etc. My main focus, however, is the web applications. I have degrees in Computer Science and Psychology(combined program) and Business Administration.

I love riding a motorbike, cooking and working less to learn more. I am writing because it is fun and educative.

Table of Contents

  • Preliminaries
    • Errata & Suggestion
    • Source Code
    • Credits
  • 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. Deployment
    • 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
  • Appendix
    • A.1 - Managing Parent POM
  • Notes

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.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!

Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.

Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub