Azure Service Bus とはWhat is Azure Service Bus?

Microsoft Azure Service Bus は、完全なマネージド エンタープライズ統合メッセージ ブローカーです。Microsoft Azure Service Bus is a fully managed enterprise integration message broker. Service Bus は、アプリケーションとサービスを分離できます。Service Bus can decouple applications and services. Service Bus は、データと状態の非同期転送のための信頼性が高く安全なプラットフォームを提供します。Service Bus offers a reliable and secure platform for asynchronous transfer of data and state.

データは、メッセージを使用してさまざまなアプリとサービス間で転送されます。Data is transferred between different applications and services using messages. メッセージはバイナリ形式であり、JSON、XML、または単なるテキストを含むことができます。A message is in binary format and can contain JSON, XML, or just text. 詳細については、「Integration Services」を参照してください。For more information, see Integration Services.

一般的なメッセージング シナリオの例を次にいくつか示します。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 don't have to be online at the same time.
  • トピックとサブスクリプションTopics and subscriptions. 公開元とサブスクライバーの間で 1:n の関係が可能になります。Enable 1:n relationships between publishers and subscribers.
  • メッセージ セッションMessage sessions. メッセージの順序付けやメッセージの遅延が必要なワークフローを実装します。Implement workflows that require message ordering or message deferral.

名前空間Namespaces

名前空間は、すべてのメッセージング コンポーネントのコンテナーです。A namespace is a container for all messaging components. 複数のキューとトピックを 1 つの名前空間に格納できます。多くの場合、名前空間はアプリケーション コンテナーとして機能します。Multiple queues and topics can be in a single namespace, and namespaces often serve as application containers.

キューQueues

メッセージはキューに送受信されます。Messages are sent to and received from queues. 受信側アプリがメッセージを受信して処理できるようになるまで、キューがメッセージを格納します。Queues 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, only delivering messages when requested.

トピック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. サブスクリプションは永続的ですが、有効期限が切れたり自動的に削除されたりすることがあります。Subscriptions persist, but can expire or autodelete.

トピックに送信されたすべてのメッセージを個々のサブスクリプションに受信させたくない場合があります。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. 指定したメッセージをフィルター処理したり、メッセージのプロパティを設定または変更したりできます。You can filter specified messages and set or modify message properties. 詳細については、「トピック フィルターとアクション」を参照してください。For more information, see Topic filters and actions.

高度な機能Advanced features

Service Bus には、より複雑なメッセージングの問題を解決できる高度な機能があります。Service Bus includes advanced features that enable you to solve more complex messaging problems. 次のセクションでは、これらの機能のいくつかを説明します。The following sections describe several of these features.

メッセージ セッションMessage sessions

Service Bus の先入れ先出し (FIFO) 処理を作成するには、セッションを使用します。To create 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. 詳細については、「メッセージ セッション: 先入れ先出し (FIFO)」を参照してください。For more information, see Message sessions: first in, first out (FIFO).

自動転送Autoforwarding

自動転送機能は、キューまたはサブスクリプションを別のキューまたはトピックにチェーンします。The autoforwarding feature chains a queue or subscription to another queue or topic. これらは同じ名前空間に属している必要があります。They must be part of the same namespace. 自動転送を使用すると、Service Bus はキューまたはサブスクリプションからメッセージを自動的に削除し、別のキューまたはトピックに格納します。With autoforwarding, Service Bus automatically removes messages from a queue or subscription and puts them in a different queue or topic. 詳細については、「自動転送を使用した Service Bus エンティティのチェーン」を参照してください。For more information, see Chaining Service Bus entities with autoforwarding.

配信不能キューDead-letter queue

Service Bus は配信不能キュー (DLQ) をサポートしています。Service Bus supports a dead-letter queue (DLQ). DLQ は、受信者に配信できないメッセージを保持します。A DLQ holds messages that can't be delivered to any receiver. これは処理できないメッセージを保持します。It holds messages that can't be processed. Service Bus を使用すると、DLQ のメッセージを削除し、検査することができます。Service Bus lets you remove messages from the DLQ and inspect them. 詳しくは、「Service Bus の配信不能キューの概要」をご覧ください。For more information, see Overview of Service Bus dead-letter queues.

スケジュールされた配信Scheduled delivery

メッセージをキューまたはトピックに送信して、処理を遅延させることができます。You can submit messages to a queue or topic for delayed processing. 特定の時点にシステムで処理できるようにジョブをスケジュールすることができます。You can schedule a job to become available for processing by a system at a certain time. 詳細については、「スケジュールされたメッセージ」を参照してください。For more information, see Scheduled messages.

メッセージ遅延Message deferral

キューまたはサブスクリプション クライアントは、メッセージの取得を遅延させることができます。A queue or subscription client can defer retrieval of a message until a later time. この遅延は、アプリケーションの特殊な状況によって発生する場合があります。This deferral might be because of special circumstances in the application. メッセージは、キューまたはサブスクリプションに留まりますが、確保されます。The message remains in the queue or subscription, but it's set aside. 詳細については、「メッセージの遅延」を参照してください。For more information, see Message deferral.

バッチ処理Batching

クライアント側のバッチ処理により、キューまたはトピックのクライアントはメッセージの送信を一定期間遅らせることができます。Client-side batching enables a queue or topic client to delay sending a message for a certain period of time. クライアントがこの期間内に追加のメッセージを送信すると、1 つのバッチで複数のメッセージが送信されます。If the client sends additional messages during this time period, it transmits the messages in a single batch. 詳細については、「クライアント側のバッチ処理」を参照してください。For more information, see Client-side batching.

トランザクションTransactions

トランザクションにより、複数の操作が 1 つの実行スコープにグループ化されます。A transaction groups two or more operations together into an execution scope. Service Bus は、単一トランザクションのスコープ内の単一メッセージング エンティティに対するグループ化操作をサポートしています。Service Bus supports grouping operations against a single messaging entity within the scope of a single transaction. メッセージ エンティティは、キュー、トピック、またはサブスクリプションとすることができます。A message entity can be a queue, topic, or subscription. 詳しくは、「Service Bus のトランザクション処理の概要」を参照してください。For more information, see Overview of Service Bus transaction processing.

フィルター処理とアクションFiltering and actions

サブスクライバーは、トピックから受信するメッセージを定義できます。Subscribers can define which messages they want to receive from a topic. これらのメッセージは、1 つ以上の名前付きのサブスクリプション ルールの形式で指定されます。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 can be differently annotated for each matching rule. 詳細については、「トピック フィルターとアクション」を参照してください。For more information, see Topic filters and actions.

アイドル状態時の自動削除Autodelete on idle

アイドル状態時の自動削除機能を使用すると、アイドル間隔を指定できます。この間隔が経過すると、キューは自動的に削除されます。Autodelete on idle enables you to specify an idle interval after which a queue is automatically deleted. 最小時間は、5 分です。The minimum duration is 5 minutes. 詳細については、「QueueDescription.AutoDeleteOnIdle プロパティ」を参照してください。For more information, see the QueueDescription.AutoDeleteOnIdle Property.

重複検出Duplicate detection

エラーが発生すると、クライアントは送信操作の結果について不明な状態になる可能性があります。An error could cause the client to have a doubt about the outcome of a send operation. 重複検出を使用すると、送信側は同じメッセージを再送信できます。Duplicate detection enables the sender to resend the same message. 別の方法として、キューまたはトピックで重複するコピーを破棄することもできます。Another option is for the queue or topic to discard any duplicate copies. 詳しくは、「重複検出」をご覧ください。For more information, see Duplicate detection.

セキュリティ プロトコルSecurity protocols

Service Bus は、Shared Access Signatures (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 ディザスター リカバリーGeo-disaster recovery

Azure リージョンまたはデータセンターでダウンタイムが発生すると、geo ディザスター リカバリーにより、異なるリージョンまたはデータ センターでデータ処理を継続できます。When Azure regions or datacenters experience downtime, Geo-disaster recovery enables data processing to continue operating in a different region or datacenter. 詳細については、「Azure Service Bus の geo ディザスター リカバリー」を参照してください。For more information, see Azure Service Bus Geo-disaster recovery.

セキュリティSecurity

Service Bus は、標準の AMQP 1.0 および HTTP/REST プロトコルをサポートしています。Service Bus supports standard AMQP 1.0 and HTTP/REST protocols.

クライアント ライブラリClient libraries

Service Bus は、.NETJavaJMS のクライアント ライブラリをサポートしています。Service Bus supports client libraries for .NET, Java, and 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: