Free Lines Arrow
본문 바로가기
728x90

Architecture/MSA3

[MSA] Transaction MSA Transaction MSA는 각각 독립된 서비스이다. 그렇다면 트랜잭션을 처리하는것은 쉽지 않을것 같다. 어떻게 처리를 해야 될까? MSA Transaction 처리 방법 대표적인 두가지 방법이 있다. 여기서는 개념만 알아보고 각각 구체적으로 살펴볼 예정이다. SAGA Two-Phase Commit SAGA 여러서비스에 나눠져 있는 비즈니스 트랜잭션을 하나의 사가로 구현한다. 각 로컬 트랜잭션은 데이터베이스를 업데이트를 한다. 업데이트 이후 다음 로컬 트랜잭션을 트리거 하기 위해 메시지 또는 이벤트를 발생시킨다. 트랜잭션이 하나라도 실패하는 경우 그것을 취소하기 위한 트랜잭션을 실행 시킨다. Two-Phase Commit 여러 노드에서 원자적 트랜잭션 커밋을 달성하기 위한 알고리즘이다. 모든 노.. 2023. 3. 4.
[MSA] Service Mesh Service Mesh MSA 를 적용후 시스템이 커지고 마이크로서비스의 인스턴스 수가 증가 할수 밖에 없다 중가되면 뭐가 문제 일까? - 런타임 복잡성 문제가 발생한다. 보안, 로드 밸런싱, 모니터링 등 통신을 하면서 발생되는 관심사들을 내부에서 안정적으로 다루기 위한 방법이 필요하다 이렇게 전체 서비스를 관리하기 위한 Outer Architecture 를 Service Mesh 라고 한다. Service Mesh 의 주요 기능들 Configuration Management - 설정이변경 되어도 서비스의 재빌드와 재부팅 없이 반영되어야 한다. Service Discovery - API Gateway 가 서비스를 검색하는 매커니즘 API Gateway - API 서버 앞단에서 API 엔드포인트 단일화 및.. 2021. 9. 30.
[MSA] 개념 MSA Micro Service Architecture 이다. 서비스지향 아키텍처이다. 프로그램을 독립적인 작은 서비스로 나누어 구축하는 방법이다. - 다시 말해 작은 서비스 들로 구축하는 방법이다. 하나의 작은 서비스들은 독립적인 모놀리식 아키텍처이다. 경량통신 또는 메시징프로토콜을 사용한다. - 경량통신 프로토콜(HTTP, REST) - 메시지 프로토콜(JMS 또는 AMQP) MSA 의 등장배경 기존 모놀리식의 단점을 해결하려고 등장했다. 모놀리식은 소프트웨어의 모든 요소가 한프로젝트에 통합되어있다. 그렇기 때문에 몸집이 점점커지게 되면 다음과 같은 단점을 가진다. - 빌드, 배포, 구동 시간이 길어진다. - 조금의 수정이 있어도 전체를 다시 빌드해야 된다. - 기능별로 기술, 언어를 분리하지 못한다.. 2021. 9. 29.
728x90
반응형