이벤트 구동이란 무엇이며 실시간 속도는 얼마나 됩니까?

완료됨

생각해 보면 많은 이벤트 기반 시나리오를 식별할 수 있습니다. 그들 중 많은 실시간으로 반응이 필요합니다.

우리는 실시간으로 무엇을 의미합니까?

실시간으로 반응은 즉각적인 답변으로 볼 수 있습니다. 커피숍에서 무엇을 마시고 싶은지 묻는 점원의 예를 들어 보겠습니다.

계산원은 즉각적인 대답, 또는 적어도 곧 주어진 대답을 기대합니다. 그렇지 않으면 계산원이 질문을 다시 말하거나 무례하다고 의심할 수 있습니다. 빠른 답변이 요청되고 또한 적절합니다. 답변 시간은 약간 다를 수 있지만 여전히 "실시간"으로 보입니다. 따라서 인사말을 빨리 반환해야 하지만 계산원의 질문에 대답하기 위해 주문에 대해 간략하게 생각하는 것은 괜찮습니다.

해당 시나리오를 소프트웨어 시스템으로 변환하는 경우 응답 시간, 완료 시간, 액세스 시간, 시작 시간 등 타이밍만 있으면 됩니다. 사용자 또는 액세스 애플리케이션은 이러한 타이밍을 정의합니다.

비고

시스템 태스크는 실시간으로 규정된 최종 기한 내에 해당 기능을 수행합니다.

시스템에서 발생하는 일을 항상 알고 있어야 합니다. 따라서 타이밍의 로깅, 모니터링 및 측정이라는 명백한 사실을 잊지 마세요.

중요합니다

기한 및 타이밍을 미리 지정하고 비 차단 모니터링 솔루션을 설정하여 점검해야 합니다.

요약하자면, 실시간은 초고속을 의미한다는 데 동의합니다. 지정된 시나리오에서 정확히 지정하는 속도입니다.

이벤트 기반 애플리케이션

클릭 이벤트에 대해 생각 하는 경우 다른 것에 대해 생각 합니다. 이벤트 기반 애플리케이션은 화재를 사용하고 원칙을 무시 합니다. 이벤트는 다른 서비스, 이벤트 허브, 스트림 또는 Kafka와 같은 메시지 브로커일 수 있는 다음 시스템으로 전송되거나 발생 합니다. 시스템에서 다음 응답을 기다릴 필요는 없습니다. 느슨한 결합 은 다른 수준에서 처리해야 하는 최종 일관성의 가격으로 달성됩니다.

이벤트 기반 애플리케이션의 특성을 식별하기 위해 커피와 카푸치노를 구매하는 Alex라는 고객의 예를 사용하여 주요 아키텍처 패턴을 살펴보겠습니다.

이벤트 알림

이벤트 알림은 특정 발생 또는 이벤트에 대한 알림입니다. 각 이벤트는 별도로 표시됩니다. 커피와 카푸치노를 구입하는 Alex라는 고객의 예는 다음과 같습니다.

1. 이벤트 : 알렉스는 커피를 구입합니다.

2. 이벤트: 알렉스는 카푸치노를 구입합니다.

한 바리스타는 알렉스의 전체 순서를 얻기 위해 모든 이벤트를 주의 깊게 들어야 할 것입니다. 그러나 두 바리스타는 독립적으로 음료를 준비하고 제공 할 수 있습니다.

이벤트 전송 상태 전송

이벤트가 상태 전송을 수행하면 필요한 모든 정보가 단일 이벤트에 저장됩니다. 이는 이벤트가 손실되거나 서비스가 모든 이벤트를 수신 대기하지 않는 경우에 편리합니다. 이 예제의 경우 이벤트는 다음과 같습니다.

1. 이벤트 : 알렉스는 커피를 구입합니다.

2. 이벤트: 알렉스는 커피 외에도 카푸치노를 구입합니다.

바리스타 한 명과 함께 두 번째 이벤트만 듣는 것만으로도 충분할 수 있습니다. 두 명의 바리스타가 있는 두 번째 바리스타는 첫 번째 바리스타를 살펴봐야 합니다. 순서를 함께 제공 할 수 있지만 프로세스가 완전히 분리되는 것보다 오래 걸릴 수 있습니다.

이벤트 소싱

이벤트 소싱을 사용하면 이벤트 스토리지가 집중됩니다. 볼 수 있듯이 이벤트는 첫 번째 예제와 동일합니다. 그러나 바리스타는 바리스타가 이벤트를 수신하고 알렉스에 의해 만들어진 모든 주문에 대한 현재 상태를 얻기 위해 모든 해당 이벤트에 대해 생각하는 순간에이 개념에 중요하다.

두 번째 순서로, 바리스타는 알렉스의 주문이 첫 번째 순서를 기억하여 커피로 구성되어 있음을 알고, 카푸치노, 이 음료는 방금 주문되었기 때문에. 두 번째 바리스타와 병렬로 작업하는 것은 쉽지 않습니다.

계산원을 추가하여 주문을 받고 음료를 제공하면 바리스타는 독립적으로 음료를 준비할 수 있습니다. 고객에 대해 아무것도 알 필요가 없습니다. 계산원은 이 시나리오에서 이벤트를 유지하는 소위 이벤트 저장소입니다. 이벤트 소싱은 또 다른 복잡성 계층을 추가하지만 분리도 추가합니다.

1. 이벤트 : 알렉스는 커피를 구입합니다.

계산원: (첫 번째) 주문 (알렉스의 경우): 커피

2. 이벤트: 알렉스는 카푸치노를 구입합니다.

계산원: (두 번째) 주문 (알렉스): 카푸치노

커피 구매를 위한 이벤트 소싱을 보여 주는 시각화입니다.

원격 분석 데이터는 실시간 이벤트입니다.

우리가 생각할 수있는 다른 예도 있습니다. 예를 들어 식품 또는 의약품 제조업체의 냉장 시스템을 실행하는 시나리오를 상상해 보십시오. 시스템의 온도 및 기타 관련 데이터를 지속적으로 제어해야 합니다. 원격 분석 데이터를 인식하고 자동으로 제어하는 것은 성공에 매우 중요합니다. 2초마다 원격 분석을 측정한 다음 데이터가 분석, 처리 및 처리되는 제어 시스템으로 보내는 것은 이벤트 기반 시스템입니다. 또한 비즈니스에 비극적인 결과를 피하기 위해 신속하게 대응하는 것이 중요하기 때문에 데이터를 실시간으로 처리해야 합니다.