본문 바로가기

전체 글

(1200)
MSA (GlobalFilter) 1. filter 패키지에서 CustomFilter파일을 복사하여 GlobalFilter 파일을 생성한다. 2. GlobalFilter에서 아래 코드를 작성한다. package com.example.apigatewayservice.filter; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springframework.cloud.gateway.filter.GatewayFilter; import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory; import org.springframework.http.server.reactive.ServerHttp..
MSA Spring (CustomFilter) 1. application.yml 파일을 아래와 같이 수정합니다. 기존에 설정된 필터 정보에서 Add 부분을 주석처리하고 CustomFilter를 추가해 줍니다. server: port: 8000 eureka: client: register-with-eureka: false fetch-registry: false service-url: defaultZone: http://localhost:8761/eureka spring: application: name: apigateway-service cloud: gateway: routes: - id: first-service uri: http://localhost:8081/ #http://127.0.0.1:8081/first-service/welcome #이동될..
MSA (Spring Gateway 필터적용_02) # Spring Gateway에서 yml 파일을 사용하여 필터를 적용하는 방법에 대해서 알아보자. 1. 기존에 작성했던 JAVA 파일에서 @어노테이션 부분을 주석으로 막아준다. - FirstServiceConroller와 SecondServieController에 아래의 코드를 추가한다. @GetMapping("/message") //메세지라는 메소드가 실행됨에 있어서 "first-request" 헤더값을 받아오고, 그 값이 header안에 저장이 된다. public String message(@RequestHeader("first-request") String header) { log.info(header); return "Hello World in First Service."; - 그리고 아래와 같이..
MSA (Spring Gateway 필터적용_01) 1. Spring Gateway에 필터를 적용하는 방법에 대해서 알아봅시다. - application.yml 파일에서 해당 내용을 주석처리 해줍니다. - 주석처리한 내용은 JAVA에서 코드로 구현을 할 예정입니다. 2. 아래의 이미지에 있는 정보처렁 config -> FilterConfig.class 파일을 생성해 줍니다. 3. 생성된 FilterConfig.class 파일에 아래의 코드를 작성해 줍니다. @Configuration public class FilterConfig { @Bean public RouteLocator gatewayRoutes(RouteLocatorBuilder builder) { return builder.routes() .route(r -> r.path("/first-serv..
MSA (Spring Cloud Gateway 프로젝트 생성) # yml 파일에 대해서 알아보자. YAML(야믈, 와이엠엘(.yml))은 JSON의 상위집합(superset)으로, 계층적 뼈대 구조를 설정하는데 편리한 형식(format)입니다. 라고 정의 되어 있다. # 스프링 클라우드 게이트웨이를 생성해보자. 1. 스프링 이니셜라이져에서 아래와같이 프로젝트를 생성하자. 2. application.yml 파일에 아래의 코드 내용을 추가하자. server: port: 8000 eureka: client: register-with-eureka: false fetch-registry: false service-url: defaultZone: http://localhost:8761/eureka spring: application: name: apigateway-servic..
MSA (Zuul Filter + Log 찍기) # Zuul 필터를 통해 로그를 찍는 방법에 대해 알아보자. 1. 아래의 그림처럼 패키지를 생성하고 class 파일을 생성한다. 2. extends ZuulFilter 후 alt+insert 키를 눌러서 implement Method 해주거나 마우스 우클릭 후 Generate 후 implement 해주면 아래와 같이 오버라이드 되어 생성이 된다. - 해당 필터는 사용자가 요청이 들어올때마다 먼저 실행되는 메소드라고 볼 수 있다. package com.example.zuulservice.filter; import com.netflix.zuul.ZuulFilter; import com.netflix.zuul.context.RequestContext; import com.netflix.zuul.exceptio..
MSA (Netflix zuul 프로젝트 생성 및 라우팅) # Netflix zuul이란? 이녀석이 Ingress 역할을 해주는것 같다. API GW 역할 - 간단하게 구글링 해보면, Overview ZUUL은 넷플릿스에서 사용 하는 JVM 기반의 라우터로 마이크로 서비스에서 라우팅, 모니터링, 에러처리, 보안 등을 담당한다. > 간단하게 이렇다... 주로하는 일은 라우팅 기능을 도맡아 하는거 같다. 그렇다면 이제 zuul 프로젝트를 생성하고 간단한 코드를 작성해 보자. 1. 스프링 이니셜라이져를 사용하여 스프링 first-service 프로젝트를 생성하자. 2. 동일하게 second-service 프로젝트를 생성하자. 다운받은 zip 파일을 압축을 해제 한 뒤 InteliJ에서 open하여 프로젝트를 띄운다. 그리고 나서 src > main > java > c..
MSA (동적으로 포트와 인스턴스 ID를 할당받아 실행하기) # 랜덤포트를 이용하여 동적으로 포트를 할당받아 어플리케이션을 실행하기. 1. application.yml 파일을 수정한다. server: port: 0 #포트를 동적으로 할당받기 위해 0으로 변경 spring: application: name: user-service eureka: instance: # 인스턴스 id를 동적으로 할당받아 인스턴스 id와 port번호를 출력 instance-id: ${spring.cloud.client.hostname}:${spring.application.instance_id:${random.value}} clinet: register-with-eureka: true fetch-registry: true service-url: defaultZone: http://127...