본문 바로가기

System Software

Event Driven MicroService란 무엇인가?

반응형

An Analysis and Empirical Study of Container Networks 논문 리뷰를 하던 중 Introduction에서 Event Driven MicroService라는 용어가 나와 이에 대해 알아보기로 하였다.

 

https://www.techtarget.com/whatis/definition/monolithic-architecture

 

MicroService Architecture란?

Event Driven MicroService를 이해하기 위해서는 우선 MicroService Architecture가 무엇인지 부터 알아야한다.

구글 클라우드에 의하면 마이크로서비스 아키텍쳐의 정의는 다음과 같다.

더보기

마이크로서비스 아키텍처는 애플리케이션이 서비스 모음으로 개발되는 애플리케이션 아키텍처의 한 유형입니다. 또한 마이크로서비스 아키텍처 다이어그램과 서비스를 독립적으로 개발, 배포, 유지관리할 수 있는 프레임워크를 제공합니다.

쉽게 설명을 하자면 "하나의 큰 애플리케이션을 여러 개의 작은 애플리케이션으로 쪼개어 변경과 조합이 가능하도록 만든 아키텍처"로 각각의 작은 어플리케이션들은 Rest로 통신을 한다.

 

MSA는 도커, 쿠버네티스 등과 같이 모듈형으로 작동을 하기에, 조합이 괜찮았고 이로 인해, 넷플릭스,아마존과 같은 빅테크들이 사용중이라고 한다.


MicroService Architecture의 문제점들?

Microservice Architecture에 존재하는 장점들이 분명하지만, 이에 걸맞은 문제점들도 존재한다.

Monolithic Architecture와는 다르게 하나의 큰 어플리케이션을 작은 애플리케이션을 쪼개기 때문에, 복잡성이 증가하고, 어플리케이션 간의 통신과정에서 지연, 네트워크 장애 등 각종 오버헤드가 발생한다.

이외에도 쪼개진 작은 어플리케이션들은 자체 데이터베이스를 유지해야 하는데, 이를 일관되게 유지하는데 드는 리소스양이 적지 않다.


Event Driven MicroService

https://www.samsungsds.com/kr/insights/msa_architecture_edm.html 그림[3]

 

 

 

rest로 동기 통신을 하던 전통적인 microservice와 달리 Event Driven MicroService는 비동기 통신을 한다.

이벤트가 발생되면, Event Producer는 해당 이벤트를 필요로 하는 Consumer들에게 엑세스를 허용하는 발행-구독(Pub-Sub) 메시지 모델을 사용한다.

 

기존의 동기적인 Request-Response 모델은 EndPoint 주소를 알아야 하기에 서비스가 복잡하게 연결되어 있고, 동기 통신이기에 응답 서비스가 항상 떠 있어야 한다. 

 

반면 Pub-Sub 모델은 비동기 통신에 broadcasting이 가능하므로, 수신자가 나중에 메시지를 확인 할 수 있으며, 수신 여부를 파악해도 되지 않는 Non Blocking model이다.(Callee의 작업과 무관하게 Caller가 작업을 수행 할 수 있음)


참고 자료

https://techblog.gccompany.co.kr/apache-kafka%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC-eda-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0-bf263c79efd0

 

Apache Kafka를 사용하여 EDA 적용하기

안녕하세요, 여기어때의 결제정산개발팀에서 예약 개발 업무를 맡고 있는 paori 입니다.

techblog.gccompany.co.kr

https://www.ciokorea.com/news/300943

 

'만능 아니다' 마이크로서비스의 단점 5가지

클라우드 애플리케이션 개발에서 마이크로서비스 아키텍처(microservices architecture)란, 작고 느슨하게 결합된 여러 서비스의

www.ciokorea.com

https://www.samsungsds.com/kr/insights/msa_architecture_edm.html

 

당신의 MSA는 안녕하신가요? MSA를 보완하는 아키텍처 EDM[Event Driven MicroService] | 인사이트리포트 |

5~6년 전부터 MSA에 대해서 많은 논의가 있어왔습니다. MSA와 같은 모듈형 아키텍처 스타일은 클라우드 기반 환경에 적합해 높은 인기를 구가하고 있습니다. 특히 도커(Docker), 쿠버네티스(Kubernetes)

www.samsungsds.com

 

반응형