무지에서 시작된 이벤트 구동 구조~ 도입편~

[개요]


필자는 이벤트 구동 구조(Event Driven Archeitecture)와 서버 없는 구조에 대해 아무것도 모른다.이러한 필자는 보도에서 학습 활동 구동 구조의 과정을 남겼고 앞으로 학습 활동 구동 구조를 시작하는 사람들에게 참고 가치가 있기를 바란다.

[대상 독자]


개요에도 기재되어 있지만 본 보도의 대상 독자는 앞으로 활동 구동 구조를 배우기 시작할 사람이다.

[참고 자료]


서버가 없는 전위 및 시스템 표현
Microsoft Azure 이벤트 구동 아키텍처 스타일
서버가 없는 것이 응용 소프트웨어에 가져다 주는 진정한 장점은?
Think IT 비즈니스 프로세스의 형식
DynamoDB Stream을 트리거하여 Lambda 실행

[활동 구동 구조는 과연?]


우선, 활동 구동 구조가 무엇인지 조사하기 위해 참고 자료를 수집할 때 약간의 방송, 회답 방식과 활동 구동을 알게 되었다.따라서 활동 구동뿐만 아니라 다양한 요청과 답변 방식도 조사했다.그럼에도 불구하고 요구·회답 방식은 흔한 디자인이기 때문에 금방 이해했다(혹은 개념을 이해하고 이름만 알았다).

[요청/응답 방법]


먼저 다음 그림을 보십시오.

단순히 주문 처리를 받는다는 의미로, 이용자가 주문을 하면 주문 관리 서비스가 요청되고, 주문 관리 서비스를 받으면 배송 예약 서비스, 재고 관리 서비스로 요청이 발송된다.서비스 간 협력은 보통 REST입니까?이런 방식을 청구와 회답 방식이라고 부른다.
매출을 집계하려는 조건이 생겨 판매 통계 서비스를 다시 실시해야 했다.이 상태는 다음 그림입니다.

요구·회신 방식의 경우 필요조건에 맞게 판매통계 서비스를 시행했지만, 판매통계 서비스에 요청을 보내기 위해서는 발주 관리 서비스도 수정이 필요하다.

[이벤트 구동]


다음은 다음 그림을 보십시오.

발주 관리 서비스는 배송 예약 서비스와 재고 관리 서비스에 요청을 보내는 것이 아니라 사건만 발송하며, 배송 예약 서비스와 재고 관리 서비스는 사건을 스크린으로 나눠 처리한다.이벤트를 보내는 서비스를 이벤트 프로듀서, 이벤트를 스크린으로 나누어 생중계하는 서비스를 이벤트 소비자라고 부른다.요청 회신 방식에서 배송 예약 서비스와 재고 관리 서비스는 수동적(passive)이고 활동 구동에서는 주동적(active)이다.
그렇다면 활동 구동에서도 매출액 통계 서비스를 실시해야 한다.이 상태는 다음 그림입니다.

위에서 설명한 바와 같이 주문 관리 서비스는 이벤트만 공개하고 판매 통계 서비스는 이벤트를 단계적으로 생중계 처리하기 때문에 판매 통계 서비스가 실시됨에 따라 주문 관리 서비스를 수정할 필요가 없다.
간단하게 말하면 이벤트 구동 구조는 서비스 사이에 이벤트를 끼워 넣어 서비스 간의 의존성을 없애는 장점을 가진다.미션 대기열도 이거야?

[AWS에서 이벤트 구동 구조 구축]


그럼 활동 구동 구조가 뭔지 알겠습니다.그렇다면 어떻게 활동 구동 구조를 구축합니까?
조사한 곳에서는 다이나마이드 스트림을 활용한 예가 잘 보였다.
다이나모DBStream은 표 조작을 할 때 포착할 수 있었던 어제를 말하는데, 이를 이용해 표 조작을 감지하고 람다에 불을 붙일 수 있다.다음 그림은 DynamoDB Stream의 이벤트 구동 구조를 활용한 구성도입니다.

주문 관리 서비스는 주문 정보를 표에 삽입하고 다이나모DB 스트림 체크를 삽입해 램브다에 불을 붙이고, 각 램브다는 배송 예약·판매 합계·재고 관리를 한다.
이곳의 상세한 내용은 실천편 이후에 투고할 것이다.

[이벤트 구동 구조의 과제]


내가 조사해 보니 활동 구동 구조가 매우 매력적이라는 것을 발견하였다.그런데 단점, 과제는 없나요?내가 그것을 조사해 보니 역시 과제가 있었다.그것은 발송 활동에 대한 보증이다.
이벤트 구동 구조에서 이벤트를 발송할 수 없으면 서비스를 실행할 수 없기 때문에 이 점을 주의하여 설계와 기술 선택을 할 필요가 있다.

【총괄】


나는 나의 방식으로 여기까지 조사한 내용을 총결하고 싶다.
분포식 시스템에서 서비스 간의 연합을 하는 방법은 요청·회신 방식과 이벤트 구동이 있고 이벤트 구동은 서비스와 서비스 사이에 이벤트를 끼워 넣어 이벤트 간의 소외 결합을 하는 장점이 있다.한편, 이벤트가 발표되지 않는 상황에서 이동 프로듀서는 이를 눈치채지 못하기 때문에 이벤트의 발송을 보장해야 한다.
또 액티브 드라이브 아키텍처 구축의 주류는 다이나모DB 스트림이 람다에 불을 붙이는 것이다.'AWS로 이벤트 구동 구조 구축'1절에도 실기편으로 다이나마이드 스트림과 람다를 파내려고 했다고 실었다.
=>실천편 공개!
https://qiita.com/Suzuki_Cecil/items/b9a1faaab7e225d29efc
이상은 무식한 저의 학습 활동 구동 구조의 과정과 학습을 통해 정리한 것입니다.만약 잘못이 있다면 스펀지로 만든 기러기를 던져 주십시오.

좋은 웹페이지 즐겨찾기