마이크로 서비스로 시작했을 때 단점
=> 개발, 통합 테스트, 표준, API, 로깅&모니터링, 에러처리, 커뮤니케이션방법 등등에 많은 주의가 필요
첫 릴리즈까진 일체형으로 개발 후 마이크로서비스로 분리하여 개발 진행
마이크로서비스 연결 방법
1. DB 공유
-> 데이터를 공유하면 컨텍스트 분리의 이점이 사라짐
2. 다른 서비스가 주기적으로 데이터를 끌어오는 방법
-> 필요하지 않아도 지속적으로 데이터를 끌어와야함
3. 이벤트가 발생하면 마이크로서비스를 호출하여 데이터 업데이트
-> 서비스가 분리된 상태로 설계 가능
다른 프로세스에 영향을 주지 않고 연결 가능
이벤트 중심 아키텍쳐
: 중요한 행위가 일어날 때마다 마이크로서비스 이벤트 전송
마이크로서비스는 메시지 브로커(이벤트 버스)를 톨해 이벤트 주고받음
이벤트를 구독하고 처리
이벤트 네이밍
- 과거형 (SolvedEvent)
- 해당 이벤트를 구족하면 로직을 수행하고 다른 이벤트 발행 가능
특징
: 스프링 부트와 연동되는 오픈소스 메시지 브로거 (AMQP 프로토콜 사용)
프로듀서
: 메세지 발생
익스체인지
: 받은 메시지를 어느 큐에 넣을지 결정 (일종의 라우터)
큐
: 발생 메시지 보관 버퍼, 하나의 큐에 여러 개의 라우팅 키 부여 가능
컨슈머
: 메시지 수신