

Table of Contents
1. Overview
This article contains Spring boot cloud eureka server example with step by step. Spring cloud provide netflix project for spring boot cloud implantation, Netflix provides eureka server feature to manage micro service spring boot application.
Steps to configure Eureka server
- add
spring-cloud-starter-eureka-serverdependency inpom.xml - Enable eureka server using annotation in main class :
@EnableEurekaServer - Add server port and default url in
application.propertiesorapplication.yml - Build application and open dashboard
2. Eureka Server Configuration Example

Spring boot cloud eureka server example
2.1 pom.xml
spring-cloud-starter-eureka-server requires for eureka server management. Need to add in maven dependency or must be available in CLASSPATH
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>spring-boot-example</groupId>
<artifactId>spring-boot-example</artifactId>
<version>1.0-SNAPSHOT</version>
<description>Spring boot cloud eureka server example</description>
<!-- Inherit defaults from Spring Boot -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.RELEASE</version>
</parent>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-eureka-server -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka-server</artifactId>
<version>1.4.0.RELEASE</version>
</dependency>
</dependencies>
<!-- Package as an executable jar -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>2.2 application.properties
eureka.client.register-with-eureka indicate that do not resister self as client
eureka.client.serviceUrl.defaultZone Self Server URL
eureka.server.eviction-interval-timer-in-ms indicate heart bit to check register services(client) availability.
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
server.port=8761
eureka.instance.hostname=localhost
eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
eureka.server.eviction-interval-timer-in-ms=1000
2.3 application.yml
eureka server application.yml properties as bellow, application.yml or application.properties requires not both.
server:
port: 8761
eureka:
instance:
hostname: localhost
client:
register-with-eureka: false
fetch-registry: false
serviceUrl:
defaultZone : http://${eureka.instance.hostname}:${server.port}/eureka/
server:
eviction-interval-timer-in-ms: 1000
2.4 EurekaServerApplication
@EnableEurekaServer indicate that consider this application or service as ureka server. This annotation is org.springframework.cloud.netflix.eureka dependency which must be available in CLASSPATH
package com.javadeveloperzone;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
import org.springframework.context.annotation.ComponentScan;
/**
* Created by JavaDeveloperZone on 19-07-2017.
*/
@SpringBootApplication
@ComponentScan
@EnableEurekaServer // Indicate Eureka Server Application
public class EurekaServerApplication {
public static void main(String[] args) throws Exception {
SpringApplication.run(EurekaServerApplication.class, args); // it wil start application
}
}
2.5 Run Spring boot application:
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v1.5.4.RELEASE)
2018-01-01 11:49:37.294 INFO 80240 --- [ main] c.j.EurekaServerApplication : No active profile set, falling back to default profiles: default
2018-01-01 11:49:37.323 INFO 80240 --- [ main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@4d411036: startup date [Mon Jan 01 11:49:37 IST 2018]; parent: org.springframework.context.annotation.AnnotationConfigApplicationContext@563f38c4
2018-01-01 11:49:39.051 INFO 80240 --- [ main] o.s.cloud.context.scope.GenericScope : BeanFactory id=f1969cf7-dd87-3d17-b668-c40ed1395bf1
2018-01-01 11:49:39.082 INFO 80240 --- [ main] f.a.AutowiredAnnotationBeanPostProcessor : JSR-330 'javax.inject.Inject' annotation found and supported for autowiring
2018-01-01 11:49:39.207 INFO 80240 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.cloud.netflix.metrics.MetricsInterceptorConfiguration$MetricsRestTemplateConfiguration' of type [org.springframework.cloud.netflix.metrics.MetricsInterceptorConfiguration$MetricsRestTemplateConfiguration$$EnhancerBySpringCGLIB$$28ea30a] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2018-01-01 11:49:39.223 INFO 80240 --- [ main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration' of type [org.springframework.cloud.autoconfigure.ConfigurationPropertiesRebinderAutoConfiguration$$EnhancerBySpringCGLIB$$ec7bffc6] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2018-01-01 11:49:39.676 INFO 80240 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8761 (http)
2018-01-01 11:49:39.692 INFO 80240 --- [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2018-01-01 11:49:44.484 INFO 80240 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/service-registry/instance-status],methods=[GET]}" onto public org.springframework.http.ResponseEntity org.springframework.cloud.client.serviceregistry.endpoint.ServiceRegistryEndpoint.getStatus()
2018-01-01 11:49:44.484 INFO 80240 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/service-registry/instance-status],methods=[POST]}" onto public org.springframework.http.ResponseEntity<?> org.springframework.cloud.client.serviceregistry.endpoint.ServiceRegistryEndpoint.setStatus(java.lang.String)
2018-01-01 11:49:44.485 INFO 80240 --- [ main] o.s.b.a.e.mvc.EndpointHandlerMapping : Mapped "{[/features || /features.json],methods=[GET],produces=
2018-01-01 11:49:45.794 INFO 80240 --- [ main] o.s.c.support.DefaultLifecycleProcessor : Starting beans in phase 0
2018-01-01 11:49:45.794 INFO 80240 --- [ main] o.s.c.n.e.s.EurekaServiceRegistry : Registering application unknown with eureka with status UP
2018-01-01 11:49:45.856 INFO 80240 --- [ Thread-11] o.s.c.n.e.server.EurekaServerBootstrap : Setting the eureka configuration..
2018-01-01 11:49:45.856 INFO 80240 --- [ Thread-11] o.s.c.n.e.server.EurekaServerBootstrap : Eureka data center value eureka.datacenter is not set, defaulting to default
2018-01-01 11:49:45.856 INFO 80240 --- [ Thread-11] o.s.c.n.e.server.EurekaServerBootstrap : Eureka environment value eureka.environment is not set, defaulting to test
2018-01-01 11:49:45.884 INFO 80240 --- [ Thread-11] o.s.c.n.e.server.EurekaServerBootstrap : isAws returned false
2018-01-01 11:49:45.885 INFO 80240 --- [ Thread-11] o.s.c.n.e.server.EurekaServerBootstrap : Initialized server context
2018-01-01 11:49:45.886 INFO 80240 --- [ Thread-11] c.n.e.r.PeerAwareInstanceRegistryImpl : Got 1 instances from neighboring DS node
2018-01-01 11:49:45.886 INFO 80240 --- [ Thread-11] c.n.e.r.PeerAwareInstanceRegistryImpl : Renew threshold is: 1
2018-01-01 11:49:45.886 INFO 80240 --- [ Thread-11] c.n.e.r.PeerAwareInstanceRegistryImpl : Changing status to UP
2018-01-01 11:49:45.889 INFO 80240 --- [ Thread-11] e.s.EurekaServerInitializerConfiguration : Started Eureka Server
2018-01-01 11:49:45.942 INFO 80240 --- [ main] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8761 (http)
2018-01-01 11:49:45.942 INFO 80240 --- [ main] .s.c.n.e.s.EurekaAutoServiceRegistration : Updating port to 87612.6 Open Eureka Server Dashboard
http://localhost:8761/

Spring boot cloud eureka server dashboard
3. References
4. Source Code
