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