Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Mastering microservice communication with Spring Cloud Feign
Rating: 4.6 out of 5(67 ratings)
568 students

Mastering microservice communication with Spring Cloud Feign

Learn how to implement resilient microservice communications in an entirely practical course
Created byArnold Galovics
Last updated 11/2021
English
English [Auto],

What you'll learn

  • Using Feign to communicate between microservices
  • Using Spring Cloud OpenFeign to communicate between microservices
  • Ensuring service resiliency
  • Integration testing of microservice communications using WireMock
  • Integrating circuit breakers into the communications
  • Ensuring API response time using Time Limiters
  • Key Resilience4J features combined with Feign
  • Client side load balancing
  • Using Spring Cloud Netflix Eureka as a Service Registry

Course content

6 sections37 lectures5h 8m total length
  • The architecture6:38

    Explore microservice architecture for an online store with a public world and private world, enabling create and buy flows via HTTP between inventory and user session services.

  • What is Feign?3:56

    Feign is a library to create Java-based http clients based on interfaces, eliminating boilerplate. Configure encoders and decoders for json, with spring integration, and enable asynchronous calls and resiliency.

  • Creating the projects2:08

    Outline the architecture for a microservices-based online store using Spring Boot, Gradle, and Java 11, with three projects—online store service, inventory service, and user session service—prepping future Spring Cloud integration.

Requirements

  • Beginner Java knowledge
  • Beginner Spring and Spring Boot knowledge
  • A tiny bit of WireMock knowledge for the testing module

Description

In this very practical course, you'll learn how to do effective microservice HTTP communication using Feign and Spring Cloud OpenFeign.

Nowadays microservices are everywhere. We need to learn how to use the architecture to our advantage to achieve the targeted goals. I'll help you to understand how to build a resilient communication channel between your services.

The course curriculum includes a lot of exciting pieces:

  • Regular Feign annotations and mappings

  • Retries

  • Custom error handling

  • Timeout handling

  • Async communication

  • Spring Cloud OpenFeign configuration

  • Resilience4J circuit breakers

  • Resilience4J time limiters

  • Integrating Spring Cloud Eureka service registry

  • Client side load balancing

  • Integration testing the API clients using WireMock

  • Integration testing circuit breakers, time limtiers and load balancing using WireMock

And that's just a high-level overview what's covered. The course includes non-stop coding where we'll build a complex microservice system to make sure you understand the concepts in detail.

Mastering how to build a reliable communication between your services is critical for every product. In a microservice system, everything can break, even your communication. During this course you'll learn the tools to ensure your messages hit the destination.

Another important question, making sure your individual services can scale to the load. What if they cannot? How to configure your API clients to cope with this and make sure we're not overloading the services? Using Resilience4J and Spring Cloud OpenFeign, we'll hit this milestone very quickly.

Testing microservices was never easy. On the contrary, it's a question most engineers would avoid. Using WireMock and combining it with Spring Cloud OpenFeign, I'll show you how to test your request/response mappings, circuit breakers, load balancing, and much more.

Who this course is for:

  • Intermediate Java engineers curious about microservice communication
  • Anybody with little or no experience about Feign
  • Anybody with little or no experience about Spring Cloud OpenFeign
  • Java engineers curious about the integration testing of microservice communications