API Gateway Pre & Post Custom Filter 설정 Pre-filtes ( 사전 필터 ) 요청이 목적지로 라우팅되기 전에 호출되는 필터이다. [일반적인 사용 사례] 요청 메시지 검증(Validation) 처리 요청 권한이 있는 계정인지 인증하는 작업 ( 게이트 키퍼 ) Post-filtes ( 사후 필터 ) 서비스 호출후 클라이언트에게 응답이 나가기 전에 호출된다. 일반적으로 응답을 아카이빙하거나 오류 처리및 응답 검사에 사용된다. [일반적인 사용 사례] 응답 시 응답내용을 아카이빙한다. 응답이 정상적인지 검사하고 오류가 발생했을 때 오류처리한다. 예제 코드 설정 전제 Eureka 를 사용한 서비스 디스커버리가 존재한다고 가정한다. User Service와 Order Service의 ..
WebSocket 💡 한 번 연결해서 지속적으로 양방향 통신으로 서로 상호작용이 가능한 TCP 프로토콜 HTTP VS WebSocket 차이 주로 웹 애플리케이션에서 사용하는 HTTP 프로토콜과 WebSocket을 비교해보자. HTTP WebSocket 비 연결성 연결 지향 클라이언트 - 서버 양방향 통신 구현하기 구현 내용 : 웹 소켓을 통해 Echo 서버를 구현 해본다. 1. 의존성 추가하기 : WebSocket, Lombok 2. WebSocket Handler 생성 WebSocketSession 을 캐싱 하는 이유는 추후 해당 세션 들에 서버에서 값을 전달할 필요가 생길 수 있다. 예를 들어 채팅 서버에서 한 사람이 전송한 메시지를 해당 서버에 연결된 모든 사용자에게 전달해야 할 때 해당 Set ..
Circuit breaker Pattern Retry Pattern (재시도 패턴) 클라이언트가 요청한 작업이 실패한 경우 다시 시도하여 성공하였을 때 결과를 반환하는 방식이다. 이러한 방식은 무한적으로 재시도를 하여 시스템 전체에 에러를 전파할 수 있기 때문에, Timeout을 통해 예외처리가 필요하다. 재시도 패턴의 문제점 재시도 패턴은 분산된 환경의 원격 리소스 요청시 요청되는 서비스가 완전히 멈춘 경우에도 여러번 재시도 하게 된다. 때문에 많은 리소스를 오랜 시간 잡고 있어 리소스 낭비가 발생할 수 있으며 이렇게 많은 지연 시간이 생기게 되면 연관된 다른 분산 서비스에도 영향이 전파될 수 있다. Circuit breaker Pattern ( 회로 차단 패턴 ) 회로 차단기 패턴은 실패할 가능성이 ..
Fallback Pattern 회로 차단기 패턴 을 사용하게 되면 마이크로서비스 사이에 프록시(중개자) 역할을 하게된다. 때문에 서비스 사이간 원격 통신의 실패를 가로채 다른 대안을 실행하는 패턴을 Fallback Pattern 이라고 한다. 왜 필요할까? 서로 다른 서버 사이에는 예측할 수 없거나 대응이 힘든 다양한 변수가 발생할 수 있다. 예로는 네트워크의 문제로 서비스 간의 상호작용이 불가능한 상태가 될 수 있다. 이런 예상치 못하거나 대응할 수 없는 오류에 대응하기 위해 Fallback Pattern 이 필요하다. 생각 학습 과정에서 느낀 것은 마이크로 서비스를 운영하는 단계에서는 문제에 가능성이 모놀리틱한 구조의 애플리케이션 보다 많아지는 부분이 있고 때문에 에러 처리가 상대적으로 복잡하다. 하..
- Total
- Today
- Yesterday
- 컴포짓 패턴
- pool
- SpringBoot 2.2
- 장애 해결기
- 외부 단편화
- Memory Fragmentation
- Clean Architecture
- java
- 수평 분할
- pass by value
- 메모리 단편화
- 육각형 아키텍처
- 세션 불일치
- Object Pool
- Session
- Sticky Session
- 동적 타입 언어
- ATDD
- 클린 아키텍처
- 동적 디스패치
- 내부 단편화
- 수직 분할
- multimap
- pass by reference
- 메모리 파편화
- 객체 풀
- RestAssured
- 정적 타입 언어
- 뾰족함
- OOP
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |