Eureka Flow
먼저 apigateway와 first-service , second-service의 pom.xml에
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
가 추가되어 있어야 한다.
그리고 apigateway와 first-service , second-service의 application.yml에 eureka를 등록해 준다.
eureka:
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://localhost:8761/eureka
그리고 apigateway에는 application.yml에 uri를 수정해준다.
server:
port: 8000
eureka:
client:
register-with-eureka: true
fetch-registry: true
service-url:
defaultZone: http://localhost:8761/eureka
spring:
application:
name: apigateway-service
cloud:
gateway:
default-filters:
- name: GlobalFilter
args:
baseMessage: Spring Cloud Gateway Global Filter
preLogger: true
postLogger: true
routes:
- id: first-service
uri: lb://MY-FIRST-SERVICE
predicates:
- Path=/first-service/**
filters:
- CustomFilter
- id: second-service
uri: lb://MY-SECOND-SERVICE
predicates:
- Path=/second-service/**
filters:
- name: CustomFilter
- name: LoggingFilter
args:
baseMessage: Hi, there Logging
preLogger: true
postLogger: true
Second-Service
package com.example.secondservice;
import lombok.extern.slf4j.Slf4j;
import org.springframework.core.env.Environment;
import javax.servlet.http.HttpServletRequest;
@RestController
@RequestMapping("/second-service")
@Slf4j
public class SecondServiceController {
Environment env;
public SecondServiceController(Environment env) {
this.env = env;
}
@GetMapping("/welcome")
public String welcome() {
return "Welcome to the Second Service";
}
@GetMapping("/message")
public String message(@RequestHeader("second-request") String header) {
log.info(header);
return "Hello World in Second Service";
}
@GetMapping("/check")
public String check(HttpServletRequest request) {
log.info("Server port={}", request.getServerPort());
return String.format("Hi there. This is a message from Second Service %s", env.getProperty("local.server.port"));
//return "Hi there. This is a message from Second Service";
}
}
그리고 각 서버들을 실행하여 Eureka에 접속해보면 아래와 같은 결과를 볼 수 있다
접속을 하게되면 라운드로빈 방식으로 번갈아가며 접속하게 된다.
'📚 Spring > Spring Cloud' 카테고리의 다른 글
Spring Cloud Config의 이해 (0) | 2022.01.29 |
---|---|
SpringCloud의 이해 (0) | 2022.01.28 |
Spring Cloud Gateway - Logging Filter (0) | 2021.09.29 |
Spring Cloud Gateway - Global Filter (0) | 2021.09.27 |
Spring Cloud Gateway - Custom Filter (0) | 2021.09.27 |