전송 허브 동적 pub-sub 메시징 시스템

Azure Cache for Redis
Azure Cosmos DB
Azure Event Hubs
Azure 기능
Azure Service Bus

솔루션 아이디어

이 문서는 솔루션 아이디어입니다. 잠재적인 사용 사례, 대체 서비스, 구현 고려 사항 또는 가격 책정 지침과 같은 추가 정보로 콘텐츠를 확장하려면 GitHub 피드백을 제공하여 알려주세요.

이 문서에서는 데이터 생산자와 소비자가 검증된 큐레이팅된 콘텐츠 또는 데이터를 만들고 사용할 수 있는 탄력적이고 유연한 게시-구독 모델을 설명합니다.

아키텍처

전송 허브 게시-구독 메시징 시스템의 다이어그램

이 아키텍처의 Visio 파일을 다운로드합니다.

데이터 흐름

  1. 데이터 생산자 앱은 데이터를 Azure Functions 이벤트 처리 함수로 보내는 Azure Event Hubs에 데이터를 게시합니다.

  2. 또한 데이터 생산자는 Azure Storage 컨테이너의 스토리지에 대한 JSON 스키마도 보냅니다.

  3. 이벤트 처리 함수는 대기 시간을 줄이기 위해 Azure Cache for Redis에서 JSON 스키마를 검색하고 스키마를 사용하여 데이터의 유효성을 검사합니다.

    스키마가 아직 캐시되지 않은 경우 이벤트 처리 함수는 Azure Storage 컨테이너에서 스키마를 검색합니다. 스키마에 대한 요청은 또한 향후 검색을 위해 Azure Cache for Redis에 스키마를 저장합니다.

    참고

    Event Hubs의 Azure 스키마 레지스트리는 JSON 스키마를 저장하고 캐싱하는 데 사용할 수 있는 대안이 될 수 있습니다. 자세한 내용은 Event Hubs의 Azure Schema Registry(미리 보기)를 참조하세요.

  4. 토픽이 이미 있고 데이터가 유효한 경우 이벤트 처리 함수는 데이터를 기존 유효한 데이터 Azure Service Bus 토픽에 병합하고 토픽을 데이터 소비자 앱으로 보냅니다.

  5. 토픽이 이미 있고 데이터가 유효하지 않은 경우 이벤트 처리 함수는 데이터를 기존 유효하지 않은 데이터 Service Bus 토픽에 병합하고 토픽을 데이터 생산자 앱으로 다시 보냅니다. 데이터 생산자는 유효하지 않은 데이터 토픽을 구독하여 생산자가 만든 잘못된 데이터에 대한 피드백을 받습니다.

  6. 토픽이 아직 없는 경우 이벤트 처리 함수는 새 데이터를 새 데이터 Service Bus 토픽에 게시하고 해당 토픽을 Service Bus 토픽 관리자 함수로 보냅니다.

  7. 또한 새 데이터가 유효한 경우 이벤트 처리 함수는 이 데이터를 Azure Cosmos DB의 새로운 스냅샷 데이터 레코드로 삽입합니다.

  8. 새 데이터가 유효한 경우 Service Bus 토픽 관리자 함수는 새 유효한 데이터 Service Bus 토픽을 만들고 해당 토픽을 Event Hubs로 보냅니다.

  9. 새 데이터가 유효하지 않은 경우 Service Bus 토픽 관리자 함수는 새 유효하지 않은 데이터 Service Bus 토픽을 만들고 해당 토픽을 데이터 생산자로 보냅니다.

  10. Azure Data Factory에서 스냅샷 데이터 플랫 파일 프로세서가 일정에 따라 실행되어 스냅샷 데이터 Azure Cosmos DB 데이터베이스에서 모든 스냅샷 데이터를 추출합니다. 이 프로세서는 플랫 파일을 만들고 다운로드를 위해 Azure Storage의 스냅샷 데이터 플랫 파일에 게시합니다.

  11. 데이터 소비자 앱은 Service Bus 토픽 관리자가 구독에 사용할 수 있는 모든 Service Bus 토픽 목록을 검색합니다. 앱은 Service Bus 토픽 관리자에 등록하여 Service Bus 토픽을 구독합니다.

구성 요소

시나리오 정보

전송 허브는 데이터 생산자와 소비자가 검증된 큐레이팅된 콘텐츠 또는 데이터를 만들고 사용할 수 있는 동적인 게시-구독 모델입니다. 이 모델은 규모와 성능을 고려하여 탄력적입니다. 데이터 생산자는 데이터를 신속하게 온보딩하고 서비스에 업로드할 수 있습니다. 서비스는 데이터 생산자가 제공하는 스키마에 대해 데이터의 유효성을 검사합니다. 그런 다음, 구독자가 관심 있는 데이터를 사용할 수 있도록 유효성이 검사된 데이터를 제공합니다.

데이터의 유효성을 검사하는 서비스는 페이로드에 대해 알 필요가 없으며 생산자가 제공하는 스키마에 대해 유효한지 여부만 알면 됩니다. 이러한 유연성은 서비스가 다시 배포하지 않고도 새 페이로드 유형을 허용할 수 있다는 것을 의미합니다. 또한 이 솔루션을 통해 데이터 소비자는 소비자가 구독하기 전에 게시된 기록 데이터를 가져올 수 있습니다.

잠재적인 사용 사례

이 모델은 다음과 같은 시나리오에서 특히 유용합니다.

  • 사용자 볼륨 및 상태를 알 수 없거나 예측할 수 없게 변하는 메시징 시스템
  • 새 데이터 원본 또는 알 수 없는 데이터 원본을 지원해야 하는 게시 시스템
  • 데이터를 지속적으로 업데이트하고 빠른 제공을 위해 캐시해야 하는 상거래 또는 티켓 시스템

참가자

Microsoft에서 이 문서를 유지 관리합니다. 원래 다음 기여자가 작성했습니다.

보안 주체 작성자:

비공개 LinkedIn 프로필을 보려면 LinkedIn에 로그인하세요.

다음 단계