MSA

장숭혁·2024년 8월 8일
0

TIL작성

목록 보기
51/60

하나의 애플리케이션(모놀리틱) -> 여러개의 독립적 서비스 (MSA)

장점 및 특징

  • 개발 ,배포, 유지보수 용이해짐
  • 확장성🔝, 유연성 🔝, 개발주기⬇️
  • 주로 HTTP, HTTPS, 메시지 큐 로 통신함
  • 독립적 배포
  • 기술 스택의 다양성 ( spring framework , Django, NodeJS.. 와의 결합)

단점

  • 서비스 간 통신 기능을 따로 만들어야함
  • 데이터 일관성 문제 발생할 수 있음 (DB를 따로 씀)
  • 운영비용의 증가
  • 네트워크 지연
    .....

Spring Cloud

마이크로 서비스 개발 위한 다양한 도구, 프레임 워크의 모음
분산 시스템에서 발생하는 여러 문제를 해결하기 위해 설계됨

  • 서비스 디스커버리 ( eureka ) : 마이크로 서비스들이 중앙 저장소에 자신의 위치를 등록, 다른 서비스들이 서로의 위치를 알 수 있도록 한다. 헬스 체크 기능이 있어 서비스 상태를 확인할 수 있다 ( 가용성 보장 )

  • 로드 밸런싱( Ribbon ) : 서비스 부하 분산, Eureka에서 서비스 인스턴스를 제공받아 로드밸런싱에 활용됨

  • API 게이트 웨이 : 모든 요청이 처음으로 통과하는 진입점, 인증, 라우팅, 필터링, 로깅등의 기능 제공

  • 분산 설정 관리( 구성관리 - spring cloud config ) : 애플리케이션의 설정 정보를 중앙에서 관리할 수 있는 기능을 제공함 , Git, SVN 등의 저장소를 설정 파일 저장소로 쓸 수 있다.

  • 서킷 브레이커 : 서비스간 호출 실패를 감지, 시스템 전체적인 안정 유지

  • 분산 트레이싱 (Zipkin) : 각 서비스 간의 호출 경로와 시간을 시각적으로 확인할 수 있게 한다.

  • 메시지 브로커와 이벤트 드리븐 아키텍처 : Kafka, RabbitMQ와 같은 메시지 브로커를 사용해 이벤트 드리븐 아키텍처를 쉽게 구현할 수 있도록 도와준다. 생산자와 소비자로 구성되어 구현된다.

  • 구성 변경 실시간 반영 ( Spring Cloud Bus ) : 메시지 브로커를 통해 설정 변경 내용을 실시간으로 각 서비스에 전파 할 수 있다.

  • 서버 간 통신 보안 (Spring Cloud Security ) : OAuth2 및 jwt 등을 사용하여 서비스 간의 인증 및 권한 부여를 간단히 설정할 수 있도록 도와준다.

  • 데이터 이동 및 처리를 위한 배치 프로세싱 (Spring Cloud Data Flow ) : 데이터 파이프라인을 구성 배치 작업을 처리, 데이터 이동을 관리한다.

profile
코딩 기록

0개의 댓글

관련 채용 정보