[MSA] MSA 환경에서 장애 전파를 막기 위한 전략 (Tracing, Circuit Breaker, Rate Limit)
·
Distributed System
🧐 들어가기전모놀리틱 아키텍처에서 벗어나 서비스 단위로 쪼개진 마이크로 서비스 아키텍처에 들어서게 되면 모놀리틱의 단점을 보완할 수 있다. 모놀리틱은 모든 기능이 하나의 application에 집중 되어 있기 때문에 하나의 기능에서 발생한 장애가 서비스 전체로 이어질 여지가 있다. 반면 MSA 환경은 서비스들 간의 독립성이 유지되기에 장애를 격리 시킬 수 있다. 하지만 과연 정말 장애를 격리시킬 수 있을까에 대한 고민을 해봐야한다. 위와 같이 클라이언트가 서비스 A를 통해서 요청과 응답을 받고 서비스 A는 client의 요청을 서비스 B로 전달해 B로부터 온 응답을 client에게 전해준다고 가정하자. 그렇다면 위에서 만약 서비스 B의 장애가 발생하면 어떻게 될까?서비스 B에 장애가 발생한다면 생기는 ..
[JAVA로 로드밸런서 구현하기] Registration (3)
·
Distributed System
✅ Registration 로드밸런서의 첫번째 기능인 Registration을 구현하고자 한다. 각각의 조건 살펴보면각각의 서버는 로드밸런서에 연결되어야 한다그리고나서, 로드밸런서는 listen할 프로토콜과 포트를 등록한다.로드밸런서는 listen할 프로토콜과 포트를 bind한다.그리고나서 로드밸런서는 트래픽을 알맞는 서버에 분배한다. 위의 조건을 기반으로 과정을 더 자세히 살펴보겠다. 🔎 Register 프로세스 : 서버와 로드밸런서간의 통신  🧾등록 과정 (Control Channel)각 서버는 로드밸런서에 연결된 후 자신이 제공할 서비스(프로토콜, 포트)를 등록한다.JSON 형식의 메시지를 통해 서버가 자신을 등록하며, 로드밸런서는 이 정보를 바탕으로 트래픽을 분배한다.✏️1. 서버가 로드밸런서..
[JAVA로 로드밸런서 구현하기] L3/L4 로드밸런서에 대해 알아보자 (2)
·
Distributed System
✅ 로드밸런서 개요  우리가 구현하고자 하는 로드밸런서는 아래와 같다 📌 L3/L4 Load Balancer L3 / L4 로드 밸런서는 네트워크 계층과 전송 계층에서 동작하며, 각각의 계층에서 다루는 기능과 로드 밸런싱 방식이 조금씩 다르다. 📍L3 로드 밸런서 - 네트워크 계층 기반L3(Layer 3) 네트워크 계층(IP)에서 동작하며, 주로 IP 주소를 기준으로 패킷을 라우팅한다.  📎특징 라우터나 스위치와 유사하게 동작하며 IP 패킷을 처리한다.프로토콜에 구애받지 않음: TCP/UDP와 상관없이 IP 패킷을 기반으로 트래픽을 분배한다.네트워크 레벨의 부하 분산을 담당하며, 단순 라우팅과 트래픽 분배가 주된 역할이다.  📎장점 속도가 매우 빠르며, 대용량의 트래픽 처리에 적합하다.프로토콜에 ..
[JAVA로 로드밸런서 구현하기] 로드밸런서의 개념 (1)
·
Distributed System
✅ 로드밸런서란? 로드밸런서는 여러 서버에 걸쳐 네트워크 트래픽을 효율적으로 분배하는 장치 또는 소프트웨어이다. 이를 통해 사용자가 동시에 여러 요청을 보내도 하나의 서버에 과부하가 걸리지 않고,시스템 성능과 가용성을 유지할 수 있다. 하나의 서버에 많은 트래픽이 몰리게 되면 서버는 부하를 감당하지 못하고 다운되게 된다. 이런 문제를 해결하기 위해 Scale Up과 Scale out 방식 중 한 가지를 사용하여 해결한다. 📌Scale Up & Scale Out 📍Scale up스케일 업은 수직 확장이라고도 불리며, 기존의 서버나 인스턴스의 성능을 높이는 방식이다. 즉, 서버 자체에 리소스를 추가하는 방식이다. 다음과 같은 방법이 있다.CPU 추가 : 서버에 더 빠르고 강력한 CPU를 추가함으로써 처리..
J_hzlo
'Distributed System' 카테고리의 글 목록