revaturelabs / caliber-2-meta

Meta Repository for Caliber 2
5 stars 1 forks source link

Spring Cloud Microservice Integration Issues - Services Not exposed to Gateway #62

Open Jwkellenberger opened 5 years ago

Jwkellenberger commented 5 years ago

@Quinn-Donnelly There are services without exposed names for Zuul to route to them. With my limited knowledge of setting up gateways, I referred to currently working services, such as the Category Service, and extrapolated from there.

However, changing the Bootstrap.yml for non-hosting services also seems to introduce Spring cloud oriented errors that don't seem to effect the ability to provide json information when queried from Zuul.

This below image summarized the errors seen from exposing the user service to the gateway

bigResp

Jwkellenberger commented 5 years ago

I have also locally changed the Assessment Service to allow for gateway routing, and similar errors have also arisen. However, the query functionality seems again unaffected.

Original Bootstrap.yml for Assessment Service: /////////////////////AssessmentService

 spring: 
  cloud:
    config:
      name: assessment-service
      discovery:
        service-id: config
        enabled: true

///////////////current//////AssessmentService

spring:
  application:
    name: assessment-service
  cloud:
    config:
      name: assessment-service
      discovery:
        service-id: config
        enabled: true

server:
  servlet-path: /assessment/*
---
spring:
  profiles: dev

---               
spring:
  profiles: prod

eureka:
 instance:
    prefer-ip-address: true      
 client:
   service-url:
     defaultZone: http://caliber-2-dev-alb-315997072.us-east-1.elb.amazonaws.com/eureka

Furthermore, the annotations in the Springbooting class for this service had an annotation referencing MongoDB? I had to revert this reference to a standard @SpringBootApplication annotation for the gateway to view it.

/AssessmentService/src/main/java/com/revature/caliber/AssessmentServiceApplication.java


@EnableEurekaClient
@EnableFeignClients
//@SpringBootApplication(exclude = {MongoAutoConfiguration.class, MongoDataAutoConfiguration.class})
@SpringBootApplication
@EnableSwagger2
public class AssessmentServiceApplication {