Gateway 서버는 Proxied 도메인으로 부터 온 응답의 일부분을 임의로 수정하곤 한다. ex) HSTS Header 처럼 보안과 관련된 헤더를 모든 요청에 일괄적으로 넣어줄때 위와 같은 역할을 수행하기 위하여 GlobalFilter 에 Response Header 를 수정하려고 시도하면 아래와 같은 예외가 발생한다. @Override public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) { return chain.filter(exchange).then(Mono.fromRunnable(() -> { exchange.getResponse().getHeaders().set("TEST_HEADER", "TEST_HEADER_VA..
Meta Data 에 GlobalFilter 에 대한 정의도 포함되어 있다. 따라서 GlobalFilter 도 런타임에 Load 하고 bean 으로 등록해야 한다. GLOBAL_CONFIG.json { "filters" : [{ "filterName" : "HostSettingFilter", "args" : { "host" : "my-host.comm" } }, { "filterName" : "GlobalLoggingFilter", "args" : {} }, { "filterName" : "UnsupportedBrowserFilter", "args" : { "unsupportedBrowserRegx" : ".*(MSIE [1-7]\\.).*" } }] } 각 GlobalFilter 에 대한 코드는 이미 ..
ROUTE_CONFIG.json [{ "uri" : "https://www.naver.com", "connectionTimedOut" : "300000", "responseTimedOut" : "30000", "enabled" : "true", "predicates" : [{ "predicateType" : "Path", "args" : { "pattern_0" : "/blog/**" "pattern_1" : "/news/**" } }], "filters" : [{ "filterName" : "DeviceHeaderFilter", "args" : {} }] }, { "uri" : "https://www.daum.net", "enabled" : "true", "predicates" : [{ "predica..
Spring Cloud Gateway 의 설정을 Admin 페이지에서 관리자가 쉽게 수정할 수 있도록 하기 위해서 Route 와 Filter 설정을 Custom Meta Data 로 아래와 같이 정의 하였다. YML 파일의 Spring Cloud Gateway 의 설정을 저장하는 방법도 가능하지만 우리 도메인에 특화된 설정들을 추가하기 힘들다는 단점과 spring cloud gateway 에 강한 의존성이 생기는 단점을 해소하기 위해서 Custom Meta Data 를 정의하였고 이를 런타임에 Spring Cloud Gateway Configuration 으로 변환하였다. ROUTE_CONFIG.json [{ "uri" : "https://www.naver.com", "connectionTimedOut"..
spring cloud gateway 를 Local 에 설정한 과정을 작성. 1. spring boot project 생성 spring boot initializr ( https://start.spring.io/ ) 에서 spring boot 프로젝트를 생성하여 저장합니다. 2. Spring Cloud Gateway 관련 의존성 추가. build.gradle compile group: 'org.springframework.cloud', name: 'spring-cloud-starter-gateway', version: '2.2.1.RELEASE' 3. RouteLocator 정의 java version : SpringCloudSampleApplication.java @SpringBootApplicatio..
Local 환경에서 RedisRateLimiter 를 적용한 과정. 1. docker 를 이용해서 redis 띄우기 docker run -d -p 6379:6379 --name rate_limiter_redis redis - port 를 mapping 하지 않아서 spring cloud gateway 에서 redis 로 접속이 안되는 문제가 있었다. 2. build.gradle 에 spring-boot-starter-data-redis-reactive 의존성 추가 compile group: 'org.springframework.boot', name: 'spring-boot-starter-data-redis-reactive', version: '2.3.2.RELEASE' 3. bootstrap.yml 에 ..
2.1.0.RELEASE 문서를 번역한 내용 https://cloud.spring.io/spring-cloud-static/spring-cloud-gateway/2.1.0.RELEASE/single/spring-cloud-gateway.html Spring Cloud Gateway 2.1.0.RELEASE This project provides an API Gateway built on top of the Spring Ecosystem, including: Spring 5, Spring Boot 2 and Project Reactor. Spring Cloud Gateway aims to provide a simple, yet effective way to route to APIs and provide c..
- Total
- Today
- Yesterday
- RouteDefinition
- wait()
- GlobalFilter
- circurit breaker
- N+1
- Lazy
- router
- notify()
- Flux
- DyanomoDB
- spring cloud gateway
- reative
- RoutePredication
- mariada-connector
- ConcurrentHashMap
- aurora
- mariadb-connector-j
- MariaDB
- rate limit
- reactor
- HashMap
- dynamodb
- notifyAll()
- referencedColumnName
- AbstractMethodError
- Seperate Chaining
- ResultSet
- getBoolean
- custom config data convertion
- msyql-connector-java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |