Azure Service Bus란?What is Azure Service Bus?

Microsoft Azure Service Bus는 완전 관리형 엔터프라이즈 통합 메시지 broker입니다.Microsoft Azure Service Bus is a fully managed enterprise integration message broker. Service Bus는 애플리케이션과 서비스를 서로 분리하는 데 가장 일반적으로 사용되며, 비동기 데이터 및 상태 전송에 대한 안정적이고 안전한 플랫폼입니다.Service Bus is most commonly used to decouple applications and services from each other, and is a reliable and secure platform for asynchronous data and state transfer. 데이터는 메시지를 사용하여 서로 다른 애플리케이션 및 서비스간에 전송됩니다.Data is transferred between different applications and services using messages. 메시지는 이진 형식으로 JSON, XML 또는 텍스트만 포함할 수 있습니다.A message is in binary format, which can contain JSON, XML, or just text.

몇 가지 일반적인 메시징 시나리오는 다음과 같습니다.Some common messaging scenarios are:

  • 메시징: 주문, 저널 판매 및 구입 또는 인벤토리 이동과 같은 비즈니스 데이터를 전송합니다.Messaging: transfer business data, such as sales or purchase orders, journals, or inventory movements.
  • 애플리케이션 분리: 애플리케이션 및 서비스의 안정성 및 확장성을 개선합니다(클라이언트 및 서비스는 동시에 온라인 상태일 필요가 없음).Decouple applications: improve reliability and scalability of applications and services (client and service do not have to be online at the same time).
  • 토픽 및 구독: 게시자와 구독자 간의 1:n 관계를 활성화합니다.Topics and subscriptions: enable 1:n relationships between publishers and subscribers.
  • 메시지 세션: 메시지 순서 지정 또는 메시지 지연이 필요한 워크플로를 구현합니다.Message sessions: implement workflows that require message ordering or message deferral.

네임스페이스Namespaces

네임스페이스는 모든 메시징 구성 요소에 대한 영역 컨테이너입니다.A namespace is a scoping container for all messaging components. 여러 큐 및 토픽은 단일 네임스페이스 내에 있을 수 있으며 네임스페이스는 종종 애플리케이션 컨테이너로 사용됩니다.Multiple queues and topics can reside within a single namespace, and namespaces often serve as application containers.

Queues

메시지는 간에서 전송 및 수신됩니다.Messages are sent to and received from queues. 큐를 사용하여 수신 애플리케이션이 수신 및 처리할 수 있을 때까지 메시지를 저장할 수 있습니다.Queues enable you to store messages until the receiving application is available to receive and process them.

큐

큐의 메시지는 도착 시 순서가 지정되고 타임스탬프가 지정됩니다.Messages in queues are ordered and timestamped on arrival. 허용되면 메시지는 중복 스토리지에 안전하게 보관됩니다.Once accepted, the message is held safely in redundant storage. 메시지는 요청 시 메시지를 전송하는 끌어오기 모드에서 전송됩니다.Messages are delivered in pull mode, which delivers messages on request.

토픽Topics

토픽을 사용하여 메시지를 보내고 받을 수도 있습니다.You can also use topics to send and receive messages. 큐는 종종 지점 간 통신에 사용되지만 토픽은 게시/구독 시나리오에서 유용합니다.While a queue is often used for point-to-point communication, topics are useful in publish/subscribe scenarios.

항목

토픽은 여러 개의 독립 구독을 가질 수 있습니다.Topics can have multiple, independent subscriptions. 토픽에 대한 구독자는 각 메시지의 복사본을 해당 토픽에 전송할 수 있습니다.A subscriber to a topic can receive a copy of each message sent to that topic. 구독은 지속적으로 생성되지만 필요에 따라 만료 또는 자동 삭제되는 엔터티 이름이 지정됩니다.Subscriptions are named entities, which are durably created but can optionally expire or auto-delete.

일부 시나리오에서는 개별 구독에서 토픽에 전송하는 모든 메시지를 수신하지 않을 수도 있습니다.In some scenarios, you may not want individual subscriptions to receive all messages sent to a topic. 이 경우 규칙 및 필터를 사용하여 선택적 작업을 트리거하는 조건을 정의하고, 지정된 메시지를 필터링하고 메시지 속성을 설정 또는 수정할 수 있습니다.If so, you can use rules and filters to define conditions that trigger optional actions, filter specified messages, and set or modify message properties.

고급 기능Advanced features

또한 Service Bus에는 보다 복잡한 메시징 문제를 해결할 수 있는 고급 기능이 있습니다.Service Bus also has advanced features that enable you to solve more complex messaging problems. 다음 섹션에서는 이러한 주요 기능을 설명합니다.The following sections describe these key features:

메시지 세션Message sessions

Service Bus에서 FIFO(first-in, first-out) 보장을 실현하려면 세션을 사용합니다.To realize a first-in, first-out (FIFO) guarantee in Service Bus, use sessions. 메시지 세션을 사용하면 관련 메시지의 무제한 시퀀스를 공동으로 순서를 지정하여 처리할 수 있습니다.Message sessions enable joint and ordered handling of unbounded sequences of related messages.

자동 전달Auto-forwarding

자동 전달 기능을 통해 동일한 네임스페이스의 일부인 다른 큐 또는 토픽에 큐 또는 구독을 연결할 수 있습니다.The auto-forwarding feature enables you to chain a queue or subscription to another queue or topic that is part of the same namespace. 자동 전달을 사용하도록 설정하면 Service Bus가 자동으로 첫 번째 큐 또는 구독(원본)에 있는 메시지를 제거하고 두 번째 큐 또는 토픽(대상)에 넣습니다.When auto-forwarding is enabled, Service Bus automatically removes messages that are placed in the first queue or subscription (source) and puts them in the second queue or topic (destination).

배달 못 한 편지Dead-lettering

Service Bus는 수신자에게 배달할 수 없는 메시지 또는 처리하지 못한 메시지를 보관하도록 DLQ(배달 못 한 편지 큐)를 지원합니다.Service Bus supports a dead-letter queue (DLQ) to hold messages that cannot be delivered to any receiver, or messages that cannot be processed. 그런 다음, DLQ에서 메시지를 제거하고 검사할 수 있습니다.You can then remove messages from the DLQ and inspect them.

예약 배달Scheduled delivery

지연 처리를 위해 큐 또는 토픽에 메시지를 제출할 수 있습니다. 특정 시간에 시스템에서 처리할 수 있게 되는 작업 예약을 예로 들 수 있습니다.You can submit messages to a queue or topic for delayed processing; for example, to schedule a job to become available for processing by a system at a certain time.

메시지 지연Message deferral

큐 또는 구독 클라이언트가 처리하려는 메시지를 받았으나 애플리케이션 내의 특수한 상황으로 인해 처리가 현재 가능하지 않을 경우 엔터티에는 메시지의 검색을 나중으로 연기하는 옵션이 있습니다.When a queue or subscription client receives a message that it is willing to process, but for which processing is not currently possible due to special circumstances within the application, the entity has the option to defer retrieval of the message to a later point. 메시지는 큐나 구독에 남아 있지만 따로 분리됩니다.The message remains in the queue or subscription, but it is set aside.

일괄 처리Batching

클라이언트 쪽 일괄 처리를 통해 큐 또는 토픽 클라이언트가 일정 시간 동안 메시지 전송을 연기할 수 있습니다.Client-side batching enables a queue or topic client to delay sending a message for a certain period of time. 클라이언트가 이 기간 동안 추가 메시지를 보내면 메시지를 단일 배치로 전송합니다.If the client sends additional messages during this time period, it transmits the messages in a single batch.

트랜잭션Transactions

트랜잭션 그룹은 두 개 이상의 작업을 실행 범위로 그룹화합니다.A transaction groups two or more operations together into an execution scope. Service Bus는 트랜잭션 범위 내에서 단일 메시징 엔터티(큐, 토픽, 구독)에 대한 그룹화 작업을 지원합니다.Service Bus supports grouping operations against a single messaging entity (queue, topic, subscription) within the scope of a transaction.

필터링 및 작업Filtering and actions

구독자는 토픽에서 수신할 메시지를 정의할 수 있습니다.Subscribers can define which messages they want to receive from a topic. 이러한 메시지는 하나 이상의 명명된 구독 규칙의 형태로 지정됩니다.These messages are specified in the form of one or more named subscription rules. 일치하는 각 규칙 조건에 대해 구독은 메시지의 복사본을 생성하며 일치하는 규칙마다 다르게 주석을 달 수 있습니다.For each matching rule condition, the subscription produces a copy of the message, which may be differently annotated for each matching rule.

유휴 상태에서 자동 삭제Auto-delete on idle

유휴 상태에서 자동 삭제를 통해 큐가 자동으로 삭제된 후 유휴 간격을 지정할 수 있습니다.Auto-delete on idle enables you to specify an idle interval after which the queue is automatically deleted. 최소 기간은 5분입니다.The minimum duration is 5 minutes.

중복 검색Duplicate detection

클라이언트가 전송 작업의 결과에 대한 의문을 갖게 되는 오류가 발생하는 경우 중복 검색은 보낸 사람이 동일한 메시지를 다시 보낼 수 있도록 하고 큐 또는 토픽에서 중복된 복사본을 삭제하여 이러한 상황에 대한 의문을 해소합니다.If an error occurs that causes the client to have any doubt about the outcome of a send operation, duplicate detection takes the doubt out of these situations by enabling the sender to re-send the same message, and the queue or topic discards any duplicate copies.

SAS, RBAC 및 Azure 리소스에 대한 관리 IDSAS, RBAC, and Managed identities for Azure resources

Service Bus는 SAS(공유 액세스 서명), RBAC(역할 기반 액세스 제어)Azure 리소스에 대한 관리 ID 같은 보안 프로토콜을 지원합니다.Service Bus supports security protocols such as Shared Access Signatures (SAS), Role Based Access Control (RBAC) and Managed identities for Azure resources.

지리적 재해 복구Geo-disaster recovery

Azure 지역 또는 데이터 센터에서 가동 중단이 발생하는 경우 지리적 재해 복구를 통해 데이터 처리는 다른 지역 또는 데이터 센터에서 작업을 계속할 수 있습니다.When Azure regions or datacenters experience downtime, Geo-disaster recovery enables data processing to continue operating in a different region or datacenter.

보안Security

Service Bus는 표준 AMQP 1.0HTTP/REST 프로토콜을 지원합니다.Service Bus supports standard AMQP 1.0 and HTTP/REST protocols.

클라이언트 라이브러리Client libraries

Service Bus는 .NET, Java, JMS에 대한 클라이언트 라이브러리를 지원합니다.Service Bus supports client libraries for .NET, Java, JMS.

통합Integration

Service Bus는 다음 Azure 서비스와 완벽하게 통합됩니다.Service Bus fully integrates with the following Azure services:

다음 단계Next steps

Service Bus 메시징 사용을 시작하려면 다음 문서를 참조하세요.To get started using Service Bus messaging, see the following articles: