티스토리 뷰
마이크로서비스 아키텍처 특징
1. 애플리케이션 로직을 각자 책임이 명확한 작은 컴토넌트들로 분해하고 이들을 조합해서 솔루션을 제공한다.
2. 각 컴토넌트는 작은 책임 영역을 담당하고 완전히 상호 독립적으로 배포된다. 마이크로서비스는 비즈니스 영역의 한 부분에서만 책임을 담당한다. 그리고 여러 애플리케이션에서 재사용할 수 있어야 한다.
3, 마이크로서비스는 몇가지 기본 원칙에 기반을 두며, 서비스 소비자와 서비스 제공자 사이의 데이터 교환을 위해 HTTP와 JSON 같은 경량 통신 프로토콜을 사용한다.
4. 애플리케이션은 항상 기술 중립적 프로토콜을 사용해 통신하므로 서비스 구현기술과는 무관하다. 따라서 마이크로 서비스 기반의 애플리케이션을 다양한 언어와 기술로 구축할 수 있다는 것을 의미한다.
5. 작고 독립적이며 분산된 마이크로 서비스를 사용해 조직은 명확히 정의된 책임 영역을 담당하는 소규모 팀을 보유할 수 있다. 이 팀들은 애플리케이션 출시처럼 하나의 목표를 향해 일하지만, 자기가 개발하는 서비스만 책임진다.
MSA backing service의 특징
- 마이크로 서비스에서의 backing service는 메세지 큐를 활용한 비동기 통신 채턴을 많이 사용한다. 현대 MSA의 특징 중 하나는 하나의 Micro Service 오케스트레이션이 진행되며, 마이크로 서비스의 신규 생성, 재생성, 서비스 인스턴스의 삭제 등의 작업이 빈번하게 이루어진다는 것입니다.
Message quere
일반적인 웹서비스에서 서버-클라이언트 사이의 통신은 결합도가 높은 구조이며, 동기방식으로 작동합니다. 이와 같은 방식은 시스템 내 요소들 간에 으존성이 높아 시스템에 많은 영향을 끼치며, 유연성이 낮습니다.
서비스 간 결합도가 낮아야 하는 MSA에서 데이터의 송수신 방법으로는 비동기 방식으로 메시지를 사용하는 것이 효율적이다.MQ는 메세지를 발생하는 생산자와 메세지를 받는 소비자 사이에 위치하는 매개체 역할을 수행하는 미들웨어다.
'IT > Back-end' 카테고리의 다른 글
[C++] Bingo game 빙고게임 (0) | 2022.03.28 |
---|---|
[C++] RFID 충돌방지기법, 질문트리 프로토콜 (0) | 2022.03.28 |
[C++] 무선 링크 및 개수 구하기 (0) | 2022.03.28 |
JPA와 JDBC ? (0) | 2021.04.04 |
c++과 JAVA(자바) 차이점? (0) | 2021.03.27 |