서비스 아키텍처

적용 대상:SQL ServerAzure SQL Managed Instance

이 섹션에서는 Service Broker를 사용하는 애플리케이션의 기본 디자인을 지정하는 데이터베이스 개체를 설명합니다.

Service Broker 애플리케이션은 디자인 타임에 다음 개체를 지정합니다.

  • 메시지 유형 - 애플리케이션 간에 교환되는 메시지의 이름을 정의합니다. 필요에 따라 메시지에 대한 유효성 검사를 제공합니다.

  • 계약 - 특정 대화의 메시지 방향 및 유형을 지정합니다.

  • 큐 - 메시지를 저장합니다. 이 스토리지 메커니즘은 서비스 간의 비동기 통신을 허용합니다. Service Broker 큐는 같은 대화 그룹의 메시지 자동 잠금과 같은 추가 이점을 제공합니다.

  • 서비스 - 대화에 대해 주소를 지정할 수 있는 엔드포인트입니다. Service Broker 메시지는 한 서비스에서 다른 서비스로 전송됩니다. 서비스는 메시지를 보관할 큐를 지정하고 대상이 될 수 있는 서비스에 계약을 지정합니다. 계약은 잘 정의된 메시지 유형 집합이 있는 서비스를 제공합니다.

Service Broker 애플리케이션은 위의 목록에 나온 SQL Server 개체를 사용하여 대화를 수행합니다. SQL Server에서 Transact-SQL 문을 실행할 수 있는 프로그램에서 Service Broker를 사용할 수 있습니다. 애플리케이션은 Transact-SQL 또는 CLR 호환 언어로 작성된 저장 프로시저이거나 SQL Server의 인스턴스에 연결되는 외부 프로그램일 수 있습니다.

다음 다이어그램에서는 Service Broker 서비스를 보여 줍니다.

Relationship of Service Broker objects

그림에 나온 것처럼 ProcessExpenses 계약에서는 SubmitExpense, AcceptDenyExpenseReimbursementIssued의 3개 메시지 유형을 지정합니다. 계약에는 비용 상환 작업을 수행하는 대화에 필요한 메시지 유형이 나열됩니다. ProcessExpenses 계약은 ProcessExpense 서비스와 ProcessExpense 서비스로 대화를 시작하는 서비스 간의 모든 대화를 제어합니다. ProcessExpense 서비스는 들어오는 메시지와 나가는 메시지를 ExpenseQueue 큐에 저장합니다. ExpenseProcessing 저장 프로시저는 이 큐에서 메시지를 받아서 처리한 다음, 회신이 필요한 경우 해당 Broker로 라우팅하는 데 사용하는 큐로 메시지를 다시 보냅니다.

섹션 내용

  • 메시지 유형
    대화 참가자는 각 메시지의 이름과 내용에 동의해야 합니다. 메시지 유형은 이름과 콘텐츠를 정의합니다.

  • 계약
    계약은 애플리케이션이 특정 작업을 수행하는 데 사용하는 메시지 유형을 정의합니다.


  • 큐에는 Service Broker 메시지가 저장됩니다.

  • 서비스
    Service Broker 서비스는 특정 비즈니스 태스크 또는 비즈니스 태스크 집합의 이름입니다.

참고 항목