Enable Javascript

Please enable Javascript to view website properly

Toll Free 1800 889 7020

Looking for an Expert Development Team? Take two weeks Trial! Try Now

A Complete Guide about Spring Cloud Feign and Hystrix Circuit Breaker

I am going to explain how you can be able to create declarative Rest Clients with Feign. And will illustrate how you will be able to call REST services using the Feign libraries. The interesting thing is that you can easily understand from this article that how Feign, Ribbon, and Eureka collaborate. If you do not know about Ribbon and Eureka, then please refer to our specific blogs on Eureka Service Discovery and Spring Ribbon.

Hystrix Circuit Breaker

What is Feign?

Feign is another part of the Netflix open-source software library i.e. easily usable within Spring Cloud. Feign allows us to write calls to Restful Services using a declarative style that results in no actual implementation code. Please be clear that here I am not talking about server-side code. I am referring to the client-side code that makes a call to server-side code that might be written in any technology or any programming language.

Feign declarative client is even easier than the “RestTemplate” that we normally use to call rest services. Spring Cloud provides an easy wrapper for using Feign. Now, I want to give you an example of RestClient i.e. part of the Spring framework. Please look at the example below code:

RestTemplate tp = new RestTemplate(); String url = “http://inventoryService/{0};// This is the target url with the placeholder String s = tp.getForObject(url, String.class, 11)// Calls the URL, placeholder value is provided 11. // Template takes care of all HTTP and type conversion

Now, Feign is an alternative to technology like the RestTemplate.

How Feign Works?

Feign Runtime Implementations:

We have to enable Feign functionality via the “@EnableFeignClients” annotation in one of our spring configuration classes. When the application starts up, the Feign libraries will see the annotations and provide runtime implementations of exactly what we told it to build. Please see the below example:

@SpringBootApplication @EnableFeignClients // Spring will seek interfaces and implement them Public class Application{ }

What does @EnableFeignClients annotation do Internally?

Before the application is running, what you would see in your codebase are the interfaces annotated with the “@FeignClient”. But when you run the application, Feign takes over and automatically provides the run time implementation (illustrated in the blue box in the below image). Please look at the below image.

Hystrix Circuit Breaker

Feign dependency:

Hystrix Circuit Breaker

Demo on Feign Declarative REST clients:

Before starting with Feign, first, you have to start your common-config-server and the common-eureka-server. You can visit our separate blog for the Eureka server setup and config server setup. Check the Eureka server running in your local host.

Software Development Team
Need Software Development Team?

Thank you!
We will contact soon.

Oops! Something went wrong.

Recent Blogs


NSS Note
Some of our clients