마이크로서비스 아키텍처(MSA)는 여러 독립적인 서비스가 상호작용하여 복잡한 시스템을 형성하는 현대의 소프트웨어 설계 패턴입니다. [MSA] MSA란 무엇일까❓디지털 기술이 빠르게 발전함에 따라 소프트웨어 아키텍처도 지속적으로 진화하고 있습니다. 전통적인 모놀리틱 아키텍처에서 점점 더 많은 기업들이 MSA(Microservices Architecture)로 전환하고 있습pixx.tistory.com MSA 아키텍처는 서비스의 독립성과 확장성이라는 큰 장점을 제공하지만, 그에 따라 발생하는 여러 가지 복잡성 문제를 해결해야 합니다. 특히, 다양한 서비스가 상호작용하면서 발생할 수 있는 문제 중 하나가 클라이언트와 서비스 간의 요청 및 응답 관리입니다. 여기서 API 게이트웨이가 중요한 역할을 합니다. 이번..
마이크로서비스 아키텍처(MSA)는 여러 독립적인 서비스가 상호작용하며 복잡한 시스템을 형성합니다. 이러한 아키텍처는 확장성과 유연성을 제공하지만, 동시에 서비스 간의 의존성이 증가하여 시스템의 안정성이 위협받을 수 있습니다. 특히, 하나의 서비스가 실패하면 연쇄적으로 다른 서비스에 영향을 미치고, 이로 인해 전체 시스템의 신뢰성이 떨어질 수 있습니다. 이러한 문제를 해결하기 위해 서킷 브레이커 패턴이 도입되었습니다.이번 포스팅에서는 제가 공부한 내용을 바탕으로 서킷 브레이커의 역할과 필요성에 대해 정리하고, 서킷 브레이커의 주요 기능과 동작확인을 해보겠습니다. 서킷 브레이커(Circuit Breaker)란❓서킷 브레이커(Circuit Break)를 번역해 보면, "회로 차단기"입니다. SpringClo..
오늘은 로드밸런싱, 그중 클라이언트단에서 서비스 디스커버리 및 로드밸런싱을 담당하는 클라이언트 사이드 로드밸런싱에 대해 정리하고자 합니다. 앞선 "2024.08.01"포스팅에서 정리했듯이 많은 것을 넘어 방대한 수의 애플리케이션의 "부하를 어떻게 분산하는 지"에 대해서 해결 방법 중 하나 가 트래픽을 효율적으로 분산하는 "로드 밸런싱"입니다. 네트워크 트래픽을 여러 서버 또는 서비스 인스턴스에 고르게 분산하여, 서버의 부하를 줄이고, 시스템의 성능을 높입니다. 그런데 이러한 로드 밸런싱을 클라이언트 App이 담당하는 것이 바로 "클라이언트 사이드 로드 밸런싱"입니다. 위와 같은 그림처럼 클라이언트는 서버의 목록을 가지고 있으며, 이를 바탕으로 로드 밸런싱을 수행합니다. 이러한 "Client Side ..
다시 한 번 Amazon과 Netflix의 아키텍처 애플리케이션들의 마이크로서비스 간 종속성을 나타낸 그래프를 살펴보았습니다. 처음 이 그림을 보았을 때, 그 규모와 복잡성에 감탄했지만, MSA와 Spring Cloud 강의를 통해 점점 더 많은 의문이 들기 시작했습니다. 방대한 수의 애플리케이션이 어떻게 관리되고, 부하를 어떻게 분산시키며, 서로 종속을 어떻게 맺는지 궁금해졌습니다. 그에대한 정답은 "Spring Cloud"였습니다. Spring Cloud 중 서비스 디스커버리를 통해 다양한 서비스를 동적으로 관리하고, 서비스 위치를 실시간으로 업데이트하며, 트래픽을 효율적으로 분산시킴으로써 복잡한 종속성도 효과적으로 처리할 수 있습니다. 서비스 디스커버리의 자세한 설명은 아래의 포스팅에서 확인이 ..