Eureka is a naming service or discovery service offered by Spring Cloud and it enables both service discovery as well as the service registration.
In a real world scenario, there will be different microservices which will be communicating with each other and each of them can have N number of instances running.
If we take a closer look, maintaining or record keeping the details about these microservices will be a hard process. Say in real world, there is a chance that some microservice instances can fail and scaling and other activities can happen.
Eureka Server helps us with this problem. It stores the details of microservices like its URL, server details, port number, IP address, etc. and simplify the process of service discovery
Whenever a new microservice is deployed, they will contact the Eureka server and do a self registration. Other consuming microservices can communicate with the Eureka server to get the details related to the registered microservices and can call the offered APIs.
Note: I will be using Spring Tool Suite 4 IDE for development purpose. Its free and you can get it from their website.
Creating Eureka Server
- Create a new Spring Boot Starter project
Eureka Serverdependency and click on Finish
If you open the
pom.xml file you will see the following dependencies. Eureka Server dependency is part of Spring Cloud and that is why the the cloud dependencies are added to the project
Open the application main class (the default one created once the project is setup) and add @EnableEurekaServer annotation. This will let spring boot configure your application as Eureka Server.
Configuring the Eureka Server
The default port used by Eureka Server is 8761 and so we have to specify this in
application.properties and tell Spring Boot to use this instead of setting the default port 8080.
Along with this we have to add two more properties to the
application.properties and tell Eureka Server to stop doing a self registration and the registry fetch operation.
eureka.client.register-with-eureka is for decision making – It indicates whether or not this instance should register its information with eureka server for discovery by others. Since we are creating Eureka Server, we have to set this property to
false, as the default value for this is always
Now the second property
eureka.client.fetch-registry is used for registry information fetch from Eureka Server. As we are developing Eureka Server the server itself doesn’t need to fetch the registry. The default value is
true. So we have to set this to
That’s it – we are done creating our Discovery Service and it is time to start the service 🙂
Once the server is up and running, go to the below URL, we will see the Eureka Server home page.
Downloading the Source Code
Are you looking for a finished project ?
The source code is available in my GitHub 🙂
Open Spring Tool Suite and Import it as a Maven project.
How to build and register microservices in Eureka Server ? we will see it in next article
Thank You for Reading