이벤트 기반 마이크로서비스 아키텍처
EDA ( Event-Driven Architecture )는 조직이 "이벤트" 또는 중요한 비즈니스 순간(예: 트랜잭션, 사이트 방문, 장바구니 포기 등)을 감지하고 실시간으로 또는 그에 가까운 조치를 취할 수 있도록 하는 소프트웨어 디자인 패턴입니다. 실시간.
이벤트 기반 아키텍처는 종종 "비동기" 통신이라고 합니다. 이는 발신자와 수신자가 다음 작업으로 넘어가기 위해 서로를 기다릴 필요가 없음을 의미합니다. 시스템은 그 하나의 메시지에 의존하지 않습니다.
이벤트 기반 데이터 관리 시스템은 주로 마이크로 서비스를 구동하기 위해 실행됩니다. 이 시스템의 일부로 하나의 마이크로 서비스는 주목할만한 일이 발생하면 이벤트를 브로드캐스트하고 다른 마이크로 서비스는 이를 구독합니다. 이는 현대 기업의 높아지는 기대치를 충족하고 마이크로서비스를 보다 안전하게 만들기 위해 중개 이벤트 브로커를 통해 수행됩니다.
마이크로서비스는 이벤트를 수신한 후 비즈니스 엔터티를 수정할 수 있으며 이로 인해 새로운 이벤트가 게시됩니다. 이 디자인 패턴은 모든 언어와 플랫폼에 대해 작성된 프로그램에 적용됩니다.
이벤트 기반 아키텍처
이벤트 기반 아키텍처의 이점:
- 반응성 . 모든 것이 가능한 한 빨리 발생하고 아무도 다른 사람을 기다리지 않기 때문에 이벤트 기반 아키텍처는 가능한 가장 빠른 응답 시간을 제공합니다.
- 확장성 . 다운스트림에서 발생하는 상황을 고려할 필요가 없으므로 확장할 서비스 인스턴스를 추가할 수 있습니다. 주제 라우팅 및 필터링은 명령 쿼리 책임 분리에서와 같이 빠르고 쉽게 서비스를 나눌 수 있습니다.
- 민첩성 . 다른 서비스를 추가하려는 경우 이벤트를 구독하고 자체적으로 새 이벤트를 생성하도록 할 수 있습니다. 기존 서비스는 이러한 일이 발생했음을 모르거나 신경 쓰지 않으므로 영향을 미치지 않습니다.
- 확장성 및 분산성이 뛰어납니다 .
이 아키텍처를 사용하는 경우:
- 여러 하위 시스템이 동일한 이벤트를 처리해야 합니다.
- 최소 시간 지연으로 실시간 처리.
- 시간 창에 따른 패턴 일치 또는 집계와 같은 복잡한 이벤트 처리.
- IoT와 같은 대용량 및 고속 데이터.
과제:
- 배달 보장. 일부 시스템, 특히 IoT 시나리오에서는 이벤트가 전달되도록 보장하는 것이 중요합니다.
- 이벤트를 순서대로 또는 정확히 한 번 처리합니다. 각 소비자 유형은 일반적으로 복원력과 확장성을 위해 여러 인스턴스에서 실행됩니다.
게시/구독 및 이벤트 기반 아키텍처를 활성화하는 주요 도구:
- 구글 클라우드 플랫폼 데이터 흐름
- IBM 이벤트 스트림
- AWS 키네시스
- 날카로운
- 위안
- 아파치 카프카
- 활성 MQ
- 펄서
이벤트 기반 마이크로서비스 아키텍처의 패턴:
다음 패턴은 마이크로 서비스 개발의 이벤트 중심 방식으로 활용됩니다.
- 이벤트 스트림
- 이벤트 소싱
- 다국어 지속성
- 명령 쿼리 책임 분리(CQRS)
결론:
이 기사에서는 이벤트 기반 마이크로 서비스와 이벤트 기반 접근 방식을 사용하여 마이크로 서비스를 구축하는 방법에 대해 설명했습니다. 이벤트 기반 아키텍처에서 게시자는 이벤트를 게시하고 소비자는 이벤트를 구독합니다. 이러한 이벤트는 서비스가 분리된 방식으로 통신하는 데 도움이 됩니다.
[광고] STEEM 개발자 커뮤니티에 참여 하시면, 다양한 혜택을 받을 수 있습니다.