Tag Archives: Spring

Spring Cloud: Creating REST Client Using Ribbon

⚠️ This tutorial is outdated. Netflix Ribbon was removed from Spring Cloud and does not work with Spring Boot 3.x. Client-side load balancing is now handled by Spring Cloud LoadBalancer — see the Spring Cloud Netflix migration guide for the migration steps. This post remains online for teams maintaining legacy systems.

This is a quick tutorial for creating a REST API client using Spring Cloud Ribbon component. For this tutorial, you will need a running Eureka server and a Eureka client application. In case if you do not have Eureka server or a Eureka client application, check out my previous posts which explain how to setup eureka server and how to develop a eureka client application.

What is Ribbon?

In short, Ribbon is a load balancer. Let’s say you have a service which is used by 1000’s of customers. In that case, you may have multiple instances of service running on multiple servers for load balancing purpose. Now if you want to consume that service in another service, you should not hard code its URL. Because that will always point to only one service and will defeat the purpose of load balancing.

Ribbon helps us to solve this issue. Ribbon on backend talks with Eureka server and will get all instances of services and try to distribute the load across instances.

TL;DR You can download whole project by clicking following link.

To give you a brief idea about the project… We will have a producer which we will be launching multiple times. We will be creating a consumer with Ribbon which will consume the service exposed by the producer. At the same time, it will take care of load balancing as well.

Continue reading Spring Cloud: Creating REST Client Using Ribbon

Service Discovery with Eureka in Spring Boot 3.x: Server, Client, and Calling Services

Eureka is the survivor of the Spring Cloud Netflix stack. While Hystrix, Zuul, and Ribbon were removed from Spring Cloud years ago, Eureka server and client are still actively maintained and ship in every current release train. This post — a complete rewrite of my 2020 Eureka series — builds a working setup on Spring Boot 3.x: a Eureka server, a registered student service, and a second service that discovers and calls it through Spring Cloud LoadBalancer, with none of the deprecated pieces.

Continue reading Service Discovery with Eureka in Spring Boot 3.x: Server, Client, and Calling Services

Spring Cloud: Consuming Eureka client application With another eureka client and Rest Template (Part 3)

⚠️ This tutorial covers an old Spring Cloud version. It uses RestTemplate with Ribbon on Spring Boot 1.x/2.x — Ribbon was removed from Spring Cloud, and RestTemplate is replaced by RestClient. See the updated Eureka guide, the RestTemplate to RestClient migration guide, and the Spring Cloud Netflix migration guide.

This is a quick tutorial for consuming services exposed by one Eureka client application in another Eureka client application. This tutorial has the prerequisite of a running Eureka server and a Eureka client application as well. In case if you do not have Eureka server or a Eureka client application, check out my previous posts in this series which explains how to setup eureka server and how to develop a eureka client application.

The eureka client which we will be developing in this tutorial will be registered in eureka server and will consume service exposed by another client application.

TL;DR You can download whole project by clicking following link.

To give you a brief idea about what we are developing… We will be creating a Eureka client in this tutorial. The client will be a spring boot application and will expose one rest endpoint. The client will also internally consume service exposed by another eureka client application.

Continue reading Spring Cloud: Consuming Eureka client application With another eureka client and Rest Template (Part 3)

Spring Cloud: Creating first client application With eureka client (Part 2)

⚠️ This tutorial covers an old Spring Cloud version. Eureka itself is still actively maintained, but this setup targets Spring Boot 1.x/2.x. For Spring Boot 3.x, see the updated Service Discovery with Eureka guide and the Spring Cloud Netflix migration guide.

This is a quick tutorial for creating a eureka client application. This tutorial has the prerequisite of a running eureka server. In case if you do not have running eureka server or a newbie, check out my previous post in this series which explains how to setup eureka server yourself. The eureka client which we will be developing in this tutorial will be registered in the eureka server.

TL;DR You can download whole project by clicking following link.

We will be creating a Eureka client in this tutorial. The client will be a spring boot application and will expose one rest endpoint. That endpoint will accept one value (or String, as said in Java world) as path parameter and will prefix it with ‘Hello’. The endpoint will return its result as String again.

Continue reading Spring Cloud: Creating first client application With eureka client (Part 2)

Setting Up Eureka Server Using Spring Cloud (Version: 1.5.18.RELEASE/ Edgware.SR5)

⚠️ This post covers Spring Cloud Edgware (2018) and is kept for reference only. For Spring Boot 3.x, see the updated Service Discovery with Eureka guide and the Spring Cloud Netflix migration guide.

This post contains pom.xml file and sample eureka server project built using Spring cloud version 1.5.18.RELEASE/ Edgware.SR5. Please refer Setting Up Eureka Server Using Spring Cloud post for detailed instructions.

Continue reading Setting Up Eureka Server Using Spring Cloud (Version: 1.5.18.RELEASE/ Edgware.SR5)

Setting Up Eureka Server Using Spring Cloud (Part 1)

⚠️ This tutorial covers an old Spring Cloud version. Eureka itself is still actively maintained, but this setup targets Spring Boot 1.x/2.x. For Spring Boot 3.x, see the updated Service Discovery with Eureka guide and the Spring Cloud Netflix migration guide.

This is a quick example for setting up Eureka server using Spring Cloud.

You can download the whole project by using following link.

For this tutorial, we will be creating a New Maven Project. To keep thing more simple we will be creating a simple maven project i.e. we will be skipping archetype selection.

New Maven Project Wizard – Creating a simple project
Continue reading Setting Up Eureka Server Using Spring Cloud (Part 1)