분류 전체보기

· 공부/MSA
Spring Cloud Gateway - Logging Filter Logging Filter는 커스텀 필터이다. LoggingFilter.java 생성 OrderGatewayFilter 형식 @Override public GatewayFilter apply(Config config) { GatewayFilter filter = new OrderedGatewayFilter((exchange, chain) -> {필터 내용}, 순서); return filter; } @Component @Slf4j public class LoggingFilter extends AbstractGatewayFilterFactory { public LoggingFilter() { super(Config.class); } @Ove..
Spring Boot Webflux 반응형 및 비동기적인 웹 애플리케이션 개발을 지원하는 모듈이다. 이 모듈은 Reactive Streams 사양을 기반으로 하여, 비동기적인 이벤트 지향 프로그래밍을 통해 높은 확장성과 성능을 제공한다. Webflux를 사용하는 목적은 반응형 프로그래밍을 통해 '높은 처리량'과 '확장성'을 갖는 애플리케이션을 만드는 것을 목표로 한다. [ 더 알아보기 ] 💡 Webflux는 Spring Framework 5.0부터 지원한다고 들었는데 Spring Boot는 몇 버전이 되어야 하는가? - Spring Framework 5.0은 Spring Boot 2.0 이상을 요구하므로 Webflux를 사용하는데 Spring Boot 2.0 이상 버전이 최소 요구사항이 됩니다. Webf..
· 공부/MSA
Spring Cloud Filter - Global Filter 차이점 CustomFilter : Route마다 지정해줘야 한다. Global Filter 공통 필터 어떤 Filter보다 먼저 실행되고, 제일 마지막에 종료된다. GlobalFilter PRE CustomFilter PRE CustomFilter POST GlobalFilter POST 순으로 로그가 출력 될 것이다. Global Filter GlobalFilter.java 생성 @Component @Slf4j public class GlobalFilter extends AbstractGatewayFilterFactory { public GlobalFilter() { super(Config.class); } @Override public ..
· 공부/MSA
Spring Cloud Gateway - CustomFilter 적용 apigateway-service 프로젝트 CustomFilter.java 생성 CustomFilter를 사용하려면 AbstractGatewayFilterFactory를 상속받아야 한다. @Component @Slf4j public class CustomFilter extends AbstractGatewayFilterFactory { public CustomFilter() { super(Config.class); } @Override public GatewayFilter apply(Config config) { // # Custom Pre Filter return ((exchange, chain) -> { ServerHttpReques..
· 공부/MSA
filter 종류 prefilter : 사전에 호출 postfilter : 사후에 호출 작업 방법 방법1) 자바코드로 작업 방법2) 프로퍼티(property)로 작업 predicate : 요청정보가 들어오면 어떤 것인지 판단 방법1) 자바 코드 작업 기존에 설정해둔 application.yml에서 routes를 주석처리 해준다. 자바코드로 작성해보자! apigateway-service 프로젝트 Config.java클래스 생성 @Configuration을 추가하게 되면 Spring Boot가 처음 Bootsrap에 의해서 작동을 하게 될 때 @Configuration이 달려있는 Annotation을 모아서 메모리에 먼저 등록하는 작업을 한다. 이때 등록하는 빈의 이름을 RoterLocator로 등록한다. ..
· 공부/MSA
Spring Cloud Gateway 프로젝트 생성 dependencies: Lombok, Gateway, Eureka Discovery Client 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-service cloud: gateway: routes: - id: first-service uri: http://localhost:8081/ predicates: # 조건절 - Path=/first-service/..
· 공부/MSA
API Gateway API Gateway Service는 사용자가 설정한 Routing 설정에 따라 각 endpoint(client side에서 microservice 주소를 직접 이용)로 client를 대신해서 요청하고, 응답을 받아서 다시 client에게 전달해주는 Proxy(대리인)역할을 한다. 시스템의 내부 구조는 숨기고 외부의 요청에 대해 적절한 형태로 가공해서 응답할 수 있는 장점이 있다. API Gateway Service가 없을 시에 client에서는 microservice를 호출할 때, client쪽에서 endpoint를 설정하게 된다. 그런데 만약 microservice의 설정이 변경되어 endpoint가 변경되거나, 새로운 microservice가 추가되어 이에 해당하는 endpoi..
웹스코프 ✔ 스프링 스코프 종류
싱글톤 빈과 함께 사용시 Provider로 문제 해결 싱글톤 빈과 프로토타입 빈을 함께 사용할 때, 어떻게 하면 사용할 때 마다 항상 새로운 프로토타입 빈을 생성할 수 있을 까? 방법1. .스프링 컨테이너에 요청 가장 간단한 방법은 싱글톤 빈이 프로토 타입을 사용할 때 마다 스프링 컨테이너에 새로 요청하는 것이다. import static org.assertj.core.api.Assertions.assertThat; public class PrototypeProviderTest { @Test void singletonClientUsePrototype() { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(Clie..
ERROR 내용 maven으로 프로젝트를 생성했다. 터미널에서 mvn --version으로 버전을 확인하려 했으나.. maven 설치를 안해둔 상황.. IntellJ는 maven을 자동으로 설치해주지 않는다. 그래서 maven 설치를 했다. cmd 에서는 maven 버전확인이 되는데, 터미널에서는 오류가 뜸.. https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EB%A7%88%EC%9D%B4%ED%81%AC%EB%A1%9C%EC%84%9C%EB%B9%84%EC%8A%A4# 해결 "시스템 환경 변수 편집"에 들어가서 IntelliJ IDEA보다는 위에 %SystemRoot%\syst..
sesam
'분류 전체보기' 카테고리의 글 목록 (9 Page)