Skip to content

ABuarque/SpringCloudWithZuulAndEureka

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SpringCloudWithZuulAndEureka

Using Eureka Discovery service and Zuul as proxy

Eureka

To enable service discovery, in your microservices add the following dependencia:

implementation('org.springframework.cloud:spring-cloud-starter-netflix-eureka-client')

And then, add the anotion to driver class:

@EnableEurekaClient

Configure the application.yml file:

spring:
  application:
    name: api-client

server:
  port: 8501

eureka:
  client:
    registerWithEureka: true
    fetchRegistry: true
    serviceUrl:
      defaultZone: http://localhost:8502/eureka/
  instance:
    hostname: localhost

In the Discovery microservice add the following dependency:

implementation('org.springframework.cloud:spring-cloud-starter-netflix-eureka-server')

Enable Eureka server in driver class:

@EnableEurekaServer

Configure the application.yml:

eureka:
  dashboard:
    enabled: true
  client:
    registerWithEureka: false
    fetchRegistry: false
    server:
      waitTimeInMsWhenSyncEmpty: 0

To open up the Eureka dashboard

http://localhost:8502/

Zuul

Add the following dependencie to the gateway microservice:

implementation('org.springframework.cloud:spring-cloud-starter-netflix-zuul')

Add the Enable zuul proxy anotation to driver class:

@EnableZuulProxy

Configure the application.yml:

zuul:
  #Service will be mapped under the /api URI
  prefix: /api
  routes:
    api-server:
      stripPrefix: false
      path: /users/**
      url: http://localhost:8500
    api-client:
      stripPrefix: false
      path: /analysis/**
      url: http://localhost:8501

Fixing problems with JAXB

About: http://blog.caelum.com.br/erros-com-jaxb-no-java-9/

To fix it, add these dependecies to the build.gradle in your gateway project

compile group: 'javax.xml.bind', name: 'jaxb-api', version: '2.2.4'
compile group: 'com.sun.xml.bind', name: 'jaxb-core', version: '2.2.7'
compile group: 'com.sun.xml.bind', name: 'jaxb-impl', version: '2.2.3-1'