일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |
- 트리
- spring boot
- 게이트웨이
- 도커
- Zuul
- 완전 탐색
- 스택
- 주울
- BFS
- 달팽이
- 서비스 디스커버리
- 이분 탐색
- spring cloud
- 플로이드 와샬
- Logback
- Gradle
- dp
- 유레카
- 비트마스킹
- Spring Cloud Config
- 백트래킹
- 다익스트라
- 메모이제이션
- Java
- ZuulFilter
- 이분 매칭
- docker-compose
- 구간 트리
- 구현
- 스프링 시큐리티
- Today
- Total
목록spring cloud (4)
Hello, Freakin world!
주울은 클라이언트에게 단일 진입점을 제공하는 게이트웨이입니다. 모든 요청은 게이트웨이를 거쳐가기 때문에 보안, 로깅과 같은 횡단관심사들을 구현하기 딱 좋습니다. 이런 기능들은 필터를 통해 구현합니다. 필터들은 4가지 타입이 존재하며 아래와 같이 동작합니다. - pre-filter(사전 필터) - route-filter(경로 필터) - post-filter(사후 필터) - error-filter(에러 필터) 사전 필터 주울에서 서비스에 대한 요청이 발생하기 전에 호출됩니다. 요청 메세지의 형식을 확인하거나(특정 헤더를 포함하는지) 사용자가 인증 및 인가되었는지 확인하는 기능 등을 여기에 구현합니다. 사후 필터 서비스를 호출하고 받은 응답 받은 후 호출됩니다. 응답을 로깅하거나 에러 처리, 민감한 정보에 대..
이번 글에서는 주울로 들어오는 url을 라우팅하는 방법에 대해 살펴보겠습니다. 1. 서비스 디스커버리를 이용한 자동 경로 매핑 유레카가 연결돼있다면 기본적으로 동작하는 방식입니다. 아무런 설정이 없다면 이 방식으로 동작합니다. 이 방식은 유레카에 등록된 서비스 ID(applciation.name)을 이용해 url을 자동 매핑합니다. 직접 확인해볼까요? application.yml server: port: 9000 # eureka eureka: instance: prefer-ip-address: true client: register-with-eureka: true fetch-registry: true service-url: defaultZone: http://localhost:8761/eureka # a..
Zuul 이란? 간단하게 말하자면 넷플릭스에서 제공하는 게이트웨이 오픈소스 라이브러리다. Gateway 란? 게이트웨이란 MSA에서 클라이언트에게 분산된 서비스의 단일 진입점이 되는 프록시(리버스 프록시)서버다. MSA에서 보안, 로깅과 같은 횡단 관심사를 각 서비스에 적용하려면 코드 중복해서 사용해야 된다. 이러면 유지보수하기가 힘들어지는데, 그래서 단일 진입점인 게이트웨이에 보통 구현하게 된다. 클라이언트가 여러 서비스의 물리적 주소를 알 필요 없이 게이트웨이 주소만 알면 되는것도 장점이다. 목적 이번 글에서는 간단하게 Zuul을 유레카와 연결하고, 자동 생성된 경로들을 스프링 액츄에이터에서 제공하는 엔드 포인트로 확인하면서 마무리할 것이다. 그리고 게이트웨이 아래에 연결되는 서비스들은 서비스 디스커..
스프링 이니셜라이저를 이용해 아래와 같은 의존성을 가지는 프로젝트를 생성합니다. plugins { id 'org.springframework.boot' version '2.4.3' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } group = 'springboot.cloud' version = '1.0.0' sourceCompatibility = '11' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } ext { set('springCloudVersion', "2020.0.1") } depend..